Codice della funzione di esempio - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Codice della funzione di esempio

Il codice di esempio è disponibile per i seguenti linguaggi.

Node.js

Nell'esempio seguente vengono elaborati i messaggi da DynamoDB e ne viene registrato il contenuto.

Esempio ProcessDynamoDBStream.js
console.log('Loading function'); exports.lambda_handler = function(event, context, callback) { console.log(JSON.stringify(event, null, 2)); event.Records.forEach(function(record) { console.log(record.eventID); console.log(record.eventName); console.log('DynamoDB Record: %j', record.dynamodb); }); callback(null, "message"); };

Comprimere il codice di esempio per creare un pacchetto di distribuzione. Per istruzioni, consultare Distribuisci funzioni Lambda in Node.js con archivi di file .zip.

Java 11

Nell'esempio seguente vengono elaborati i messaggi da DynamoDB e ne viene registrato il contenuto. handleRequest è il gestore che viene richiamato da AWS Lambda e che fornisce i dati degli eventi. Il gestore utilizza la classe DynamodbEvent predefinita indicata nella libreria aws-lambda-java-events.

Esempio DDB.java EventProcessor
package example; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler2; import com.amazonaws.services.lambda.runtime.events.DynamodbEvent; import com.amazonaws.services.lambda.runtime.events.DynamodbEvent.DynamodbStreamRecord; public class DDBEventProcessor implements RequestHandler2<DynamodbEvent, String> { public String handleRequest(DynamodbEvent ddbEvent, Context context) { for (DynamodbStreamRecord record : ddbEvent.getRecords()){ System.out.println(record.getEventID()); System.out.println(record.getEventName()); System.out.println(record.getDynamodb().toString()); } return "Successfully processed " + ddbEvent.getRecords().size() + " records."; } }

Se il gestore termina normalmente senza eccezioni, Lambda considera il batch di record di input come elaborato correttamente e inizia a leggere nuovi record nel flusso. Se il gestore genera un'eccezione, Lambda considera il batch di record di input come non elaborato e richiama nuovamente la funzione con lo stesso batch di record.

Dipendenze
  • aws-lambda-java-core

  • aws-lambda-java-events

Crea il codice con le dipendenze della libreria Lambda per creare un pacchetto di implementazione. Per istruzioni, consultare Distribuisci funzioni Lambda per Java con archivi di file .zip o JAR.

C#

Nell'esempio seguente vengono elaborati i messaggi da DynamoDB e ne viene registrato il contenuto. ProcessDynamoEvent è il gestore che viene richiamato da AWS Lambda e che fornisce i dati degli eventi. Il gestore utilizza la classe DynamoDbEvent predefinita indicata nella libreria Amazon.Lambda.DynamoDBEvents.

Esempio ProcessingDynamoDBStreams.cs
using System; using System.IO; using System.Text; using Amazon.Lambda.Core; using Amazon.Lambda.DynamoDBEvents; using Amazon.Lambda.Serialization.Json; namespace DynamoDBStreams { public class DdbSample { private static readonly JsonSerializer _jsonSerializer = new JsonSerializer(); public void ProcessDynamoEvent(DynamoDBEvent dynamoEvent) { Console.WriteLine($"Beginning to process {dynamoEvent.Records.Count} records..."); foreach (var record in dynamoEvent.Records) { Console.WriteLine($"Event ID: {record.EventID}"); Console.WriteLine($"Event Name: {record.EventName}"); string streamRecordJson = SerializeObject(record.Dynamodb); Console.WriteLine($"DynamoDB Record:"); Console.WriteLine(streamRecordJson); } Console.WriteLine("Stream processing complete."); } private string SerializeObject(object streamRecord) { using (var ms = new MemoryStream()) { _jsonSerializer.Serialize(streamRecord, ms); return Encoding.UTF8.GetString(ms.ToArray()); } } } }

Sostituire Program.cs in un progetto .NET Core con l'esempio precedente. Per istruzioni, consultare Crea e implementa le funzioni Lambda C# con gli archivi di file .zip.

Python 3

Nell'esempio seguente vengono elaborati i messaggi da DynamoDB e ne viene registrato il contenuto.

Esempio ProcessDynamoDBStream.py
from __future__ import print_function def lambda_handler(event, context): for record in event['Records']: print(record['eventID']) print(record['eventName']) print('Successfully processed %s records.' % str(len(event['Records'])))

Comprimere il codice di esempio per creare un pacchetto di distribuzione. Per istruzioni, consultare Utilizzo di archivi di file .zip per le funzioni Lambda in Python.

Go

Nell'esempio seguente vengono elaborati i messaggi da DynamoDB e ne viene registrato il contenuto.

import ( "strings" "github.com/aws/aws-lambda-go/events" ) func handleRequest(ctx context.Context, e events.DynamoDBEvent) { for _, record := range e.Records { fmt.Printf("Processing request data for event ID %s, type %s.\n", record.EventID, record.EventName) // Print new values for attributes of type String for name, value := range record.Change.NewImage { if value.DataType() == events.DataTypeString { fmt.Printf("Attribute name: %s, value: %s\n", name, value.String()) } } } }

Creare l'eseguibile con go build e creare un pacchetto di distribuzione. Per istruzioni, consultare Distribuisci funzioni Lambda per Go con gli archivi di file .zip.