From 46fa37d5d621aca4ea226ab616d05751d5aec2b7 Mon Sep 17 00:00:00 2001 From: Rene Buchmayer Date: Thu, 23 May 2024 14:46:19 +0200 Subject: [PATCH 1/2] fix: consider status codes 200-299 successful in Extension API --- lambda-extension/src/extension.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lambda-extension/src/extension.rs b/lambda-extension/src/extension.rs index cac1c7ec..e57940ae 100644 --- a/lambda-extension/src/extension.rs +++ b/lambda-extension/src/extension.rs @@ -272,7 +272,7 @@ where self.log_port_number, )?; let res = client.call(req).await?; - if res.status() != http::StatusCode::OK { + if !res.status().is_success() { let err = format!("unable to initialize the logs api: {}", res.status()); return Err(ExtensionError::boxed(err)); } @@ -318,7 +318,7 @@ where self.telemetry_port_number, )?; let res = client.call(req).await?; - if res.status() != http::StatusCode::OK { + if !res.status().is_success() { let err = format!("unable to initialize the telemetry api: {}", res.status()); return Err(ExtensionError::boxed(err)); } @@ -491,7 +491,7 @@ async fn register<'a>( let req = requests::register_request(&name, events)?; let res = client.call(req).await?; - if res.status() != http::StatusCode::OK { + if !res.status().is_success() { let err = format!("unable to register the extension: {}", res.status()); return Err(ExtensionError::boxed(err)); } From abe562552327d9f40dcb07c65741ec968a914369 Mon Sep 17 00:00:00 2001 From: Rene Buchmayer Date: Thu, 23 May 2024 15:02:44 +0200 Subject: [PATCH 2/2] fix: Make `tracing` JSON field optional --- lambda-extension/src/events.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lambda-extension/src/events.rs b/lambda-extension/src/events.rs index c61fc9f0..db872d96 100644 --- a/lambda-extension/src/events.rs +++ b/lambda-extension/src/events.rs @@ -1,7 +1,7 @@ use serde::Deserialize; /// Request tracing information -#[derive(Debug, Deserialize)] +#[derive(Debug, Default, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Tracing { /// The type of tracing exposed to the extension @@ -20,6 +20,7 @@ pub struct InvokeEvent { /// The function's Amazon Resource Name pub invoked_function_arn: String, /// The request tracing information + #[serde(default)] pub tracing: Tracing, }