From 4580f597b9a922257be8171087cb593007dd29e1 Mon Sep 17 00:00:00 2001 From: Julian Wood Date: Fri, 7 Mar 2025 11:46:22 +0000 Subject: [PATCH 1/5] Fix Python: lambda-function-sqs-report-batch-item-failures --- lambda-function-sqs-report-batch-item-failures/example.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lambda-function-sqs-report-batch-item-failures/example.py b/lambda-function-sqs-report-batch-item-failures/example.py index cdd8c27..f8f3ccc 100644 --- a/lambda-function-sqs-report-batch-item-failures/example.py +++ b/lambda-function-sqs-report-batch-item-failures/example.py @@ -8,7 +8,7 @@ def lambda_handler(event, context): for record in event["Records"]: try: - # process message + print(f"Processed message: {record['body']}") except Exception as e: batch_item_failures.append({"itemIdentifier": record['messageId']}) From c658b8ab46a2a59687fb227f3226df2a350068b7 Mon Sep 17 00:00:00 2001 From: Julian Wood Date: Fri, 7 Mar 2025 15:56:10 +0000 Subject: [PATCH 2/5] Fix Golang: lambda-function-sqs-report-batch-item-failures --- .../example.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lambda-function-sqs-report-batch-item-failures/example.go b/lambda-function-sqs-report-batch-item-failures/example.go index 2fb9a92..f4e99e5 100644 --- a/lambda-function-sqs-report-batch-item-failures/example.go +++ b/lambda-function-sqs-report-batch-item-failures/example.go @@ -4,7 +4,6 @@ package main import ( "context" - "encoding/json" "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" @@ -14,8 +13,12 @@ func handler(ctx context.Context, sqsEvent events.SQSEvent) (map[string]interfac batchItemFailures := []map[string]interface{}{} for _, message := range sqsEvent.Records { - - if /* Your message processing condition here */ { + if len(message.Body) > 0 { + // Your message processing condition here + fmt.Printf("Successfully processed message: %s\n", message.Body) + } else { + // Message processing failed + fmt.Printf("Failed to process message %s\n", message.Body) batchItemFailures = append(batchItemFailures, map[string]interface{}{"itemIdentifier": message.MessageId}) } } From 097c928f3f239ee97930ae23c2f845c09ff64af0 Mon Sep 17 00:00:00 2001 From: Julian Wood Date: Fri, 7 Mar 2025 16:06:39 +0000 Subject: [PATCH 3/5] Revert "Fix Golang: lambda-function-sqs-report-batch-item-failures" This reverts commit c658b8ab46a2a59687fb227f3226df2a350068b7. --- .../example.go | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lambda-function-sqs-report-batch-item-failures/example.go b/lambda-function-sqs-report-batch-item-failures/example.go index f4e99e5..2fb9a92 100644 --- a/lambda-function-sqs-report-batch-item-failures/example.go +++ b/lambda-function-sqs-report-batch-item-failures/example.go @@ -4,6 +4,7 @@ package main import ( "context" + "encoding/json" "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" @@ -13,12 +14,8 @@ func handler(ctx context.Context, sqsEvent events.SQSEvent) (map[string]interfac batchItemFailures := []map[string]interface{}{} for _, message := range sqsEvent.Records { - if len(message.Body) > 0 { - // Your message processing condition here - fmt.Printf("Successfully processed message: %s\n", message.Body) - } else { - // Message processing failed - fmt.Printf("Failed to process message %s\n", message.Body) + + if /* Your message processing condition here */ { batchItemFailures = append(batchItemFailures, map[string]interface{}{"itemIdentifier": message.MessageId}) } } From 47202fe951be206ff721410f05490a08b0eecc88 Mon Sep 17 00:00:00 2001 From: Julian Wood Date: Fri, 7 Mar 2025 22:15:57 +0000 Subject: [PATCH 4/5] Amend Java: lambda-function-sqs-report-batch-item-failures --- lambda-function-sqs-report-batch-item-failures/example.java | 1 + 1 file changed, 1 insertion(+) diff --git a/lambda-function-sqs-report-batch-item-failures/example.java b/lambda-function-sqs-report-batch-item-failures/example.java index 1f15ee8..03fd64e 100644 --- a/lambda-function-sqs-report-batch-item-failures/example.java +++ b/lambda-function-sqs-report-batch-item-failures/example.java @@ -17,6 +17,7 @@ public SQSBatchResponse handleRequest(SQSEvent sqsEvent, Context context) { for (SQSEvent.SQSMessage message : sqsEvent.getRecords()) { try { //process your message + System.out.println("Processed message: " + message.getBody()); } catch (Exception e) { //Add failed message identifier to the batchItemFailures list batchItemFailures.add(new SQSBatchResponse.BatchItemFailure(message.getMessageId())); From eaef03567e97b39c2348e2648cad81a963fb23e9 Mon Sep 17 00:00:00 2001 From: Julian Wood Date: Tue, 18 Mar 2025 17:10:37 +0000 Subject: [PATCH 5/5] Suggest using ESModiles, not CommonJS for SNS-Lambda example --- integration-sns-to-lambda/example.js | 19 ------------------- integration-sns-to-lambda/example.mjs | 21 +++++++++++++++++++++ 2 files changed, 21 insertions(+), 19 deletions(-) delete mode 100644 integration-sns-to-lambda/example.js create mode 100644 integration-sns-to-lambda/example.mjs diff --git a/integration-sns-to-lambda/example.js b/integration-sns-to-lambda/example.js deleted file mode 100644 index 06e5734..0000000 --- a/integration-sns-to-lambda/example.js +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 -exports.handler = async (event, context) => { - for (const record of event.Records) { - await processMessageAsync(record); - } - console.info("done"); -}; - -async function processMessageAsync(record) { - try { - const message = JSON.stringify(record.Sns.Message); - console.log(`Processed message ${message}`); - await Promise.resolve(1); //Placeholder for actual async work - } catch (err) { - console.error("An error occurred"); - throw err; - } -} diff --git a/integration-sns-to-lambda/example.mjs b/integration-sns-to-lambda/example.mjs new file mode 100644 index 0000000..4674d3a --- /dev/null +++ b/integration-sns-to-lambda/example.mjs @@ -0,0 +1,21 @@ +// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 +export const handler = async (event, context) => { + for (const record of event.Records) { + await processMessageAsync(record); + } + console.info("done"); + }; + + async function processMessageAsync(record) { + try { + const message = JSON.stringify(record.Sns.Message); + console.log(`Processed message ${message}`); + await Promise.resolve(1); //Placeholder for actual async work + } catch (err) { + console.error("An error occurred"); + throw err; + } + } + + \ No newline at end of file