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 +}