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.