From 3991446c4d76f6a7179915a055e2106f11c3f69d Mon Sep 17 00:00:00 2001 From: Abraham Egnor Date: Mon, 15 May 2023 10:39:20 -0400 Subject: [PATCH] RUST-1645 Fix AWS Lambda detection logic --- src/cmap/establish/handshake/mod.rs | 4 +++- src/test/spec/faas.rs | 6 ++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/cmap/establish/handshake/mod.rs b/src/cmap/establish/handshake/mod.rs index ee6029f80..d85bc5414 100644 --- a/src/cmap/establish/handshake/mod.rs +++ b/src/cmap/establish/handshake/mod.rs @@ -223,7 +223,9 @@ impl FaasEnvironmentName { fn new() -> Option { use FaasEnvironmentName::*; let mut found: Option = None; - if var_set("AWS_EXECUTION_ENV") || var_set("AWS_LAMBDA_RUNTIME_API") { + let lambda_env = env::var_os("AWS_EXECUTION_ENV") + .map_or(false, |v| v.to_string_lossy().starts_with("AWS_Lambda_")); + if lambda_env || var_set("AWS_LAMBDA_RUNTIME_API") { found = Some(AwsLambda); } if var_set("VERCEL") { diff --git a/src/test/spec/faas.rs b/src/test/spec/faas.rs index 6f8364914..8f4c42b05 100644 --- a/src/test/spec/faas.rs +++ b/src/test/spec/faas.rs @@ -114,3 +114,9 @@ async fn invalid_wrong_type() -> Result<()> { ]) .await } + +#[cfg_attr(feature = "tokio-runtime", tokio::test)] +#[cfg_attr(feature = "async-std-runtime", async_std::test)] +async fn invalid_aws_not_lambda() -> Result<()> { + check_faas_handshake(&[("AWS_EXECUTION_ENV", "EC2")]).await +}