Beispiel-Amazon-SQS-Funktionscode - AWS Lambda

Beispiel-Amazon-SQS-Funktionscode

Beispiel-Code steht für die folgenden Sprachen zur Verfügung.

Node.js

Das folgende Beispiel zeigt den Beispielcode, der eine Amazon-SQS-Ereignisnachricht als Eingabe empfängt und verarbeitet. Zur Veranschaulichung schreibt der Code einige der eingehenden Ereignisdaten in CloudWatch Logs.

Beispiel index.js (Node.js 12)
exports.handler = async function(event, context) { event.Records.forEach(record => { const { body } = record; console.log(body); }); return {}; }

Komprimieren Sie den Beispielcode, um ein Bereitstellungspaket zu erstellen. Detaillierte Anweisungen finden Sie unter Bereitstellen von Node.js Lambda-Funktionen mit ZIP-Dateiarchiven.

Java

Das folgende Beispiel zeigt den Java-Beispielcode, der eine Amazon-SQS-Ereignisnachricht als Eingabe empfängt und verarbeitet. Zur Veranschaulichung schreibt der Code einige der eingehenden Ereignisdaten in CloudWatch Logs.

Im Code ist handleRequest der Handler. Der Handler verwendet die vordefinierte SQSEvent Klasse, die in der aws-lambda-java-events Bibliothek definiert ist.

Beispiel handler.java
package example; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.events.SQSEvent; import com.amazonaws.services.lambda.runtime.events.SQSEvent.SQSMessage; public class Handler implements RequestHandler<SQSEvent, Void>{ @Override public Void handleRequest(SQSEvent event, Context context) { for(SQSMessage msg : event.getRecords()){ System.out.println(new String(msg.getBody())); } return null; } }
Abhängigkeiten
  • aws-lambda-java-core

  • aws-lambda-java-events

Erstellen Sie den Code mit den Abhängigkeiten der Lambda-Bibliothek, um Bereitstellungspakete zu erstellen. Detaillierte Anweisungen finden Sie unter Bereitstellen von Java-Lambda-Funktionen mit ZIP- oder JAR-Dateiarchiven.

C#

Das folgende Beispiel zeigt den C#-Beispielcode, der eine Amazon-SQS-Ereignisnachricht als Eingabe empfängt und verarbeitet. Zur Veranschaulichung schreibt der Code einige der eingehenden Ereignisdaten in die Konsole.

Im Code ist HandleSQSEvent der Handler. Der Handler verwendet die vordefinierte SQSEvent Klasse, die in der AWS.Lambda.SQSEvents Bibliothek definiert ist.

Beispiel ProcessingSQSRecords.cs
[assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] namespace SQSLambdaFunction { public class SQSLambdaFunction { public string HandleSQSEvent(SQSEvent sqsEvent, ILambdaContext context) { Console.WriteLine($"Beginning to process {sqsEvent.Records.Count} records..."); foreach (var record in sqsEvent.Records) { Console.WriteLine($"Message ID: {record.MessageId}"); Console.WriteLine($"Event Source: {record.EventSource}"); Console.WriteLine($"Record Body:"); Console.WriteLine(record.Body); } Console.WriteLine("Processing complete."); return $"Processed {sqsEvent.Records.Count} records."; } } }

Ersetzen Sie Program.cs in einem .NET-Core-Projekt mit dem obigen Beispiel. Detaillierte Anweisungen finden Sie unter Erstellen und Bereitstellen von C#-Lambda-Funktionen mit ZIP-Dateiarchiven.

Go

Das folgende Beispiel zeigt den Go-Beispielcode, der eine Amazon-SQS-Ereignisnachricht als Eingabe empfängt und verarbeitet. Zur Veranschaulichung schreibt der Code einige der eingehenden Ereignisdaten in CloudWatch Logs.

Im Code ist handler der Handler. Der Handler verwendet die vordefinierte SQSEvent Klasse, die in der aws-lambda-go-events Bibliothek definiert ist.

Beispiel ProcessSQSRecords.go
package main import ( "context" "fmt" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" ) func handler(ctx context.Context, sqsEvent events.SQSEvent) error { for _, message := range sqsEvent.Records { fmt.Printf("The message %s for event source %s = %s \n", message.MessageId, message.EventSource, message.Body) } return nil } func main() { lambda.Start(handler) }

Erstellen Sie die ausführbare Datei mit go build und erstellen Sie ein Bereitstellungspaket. Detaillierte Anweisungen finden Sie unter Bereitstellen von Lambda-Go-Funktionen mit ZIP-Dateiarchiven.

Python

Das folgende Beispiel zeigt einen Python-Beispielcode, der einen Amazon-SQS-Datensatz als Eingabe akzeptiert und verarbeitet. Zur Veranschaulichung schreibt der Code einige der eingehenden Ereignisdaten in CloudWatch Logs.

Beispiel ProcessSQSRecords.py
from __future__ import print_function def lambda_handler(event, context): for record in event['Records']: print("test") payload = record["body"] print(str(payload))

Komprimieren Sie den Beispielcode, um ein Bereitstellungspaket zu erstellen. Detaillierte Anweisungen finden Sie unter Arbeiten mit ZIP-Dateiarchiven und Python-Lambda-Funktionen.