Código de función de ejemplo - AWS Lambda

Código de función de ejemplo

El código de muestra está disponible para los lenguajes que se indican a continuación.

Node.js

En el siguiente ejemplo, se procesan los mensajes de DynamoDB, y registra su contenido.

ejemplo 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"); };

Comprima el código de muestra para crear un paquete de implementación. Para obtener instrucciones, consulte Implementar Lambda funciones Node.js con archivos de archivo.zip.

Java 11

El siguiente ejemplo procesa mensajes desde DynamoDB y registra sus contenidos. handleRequest es el controlador que AWS Lambda invoca y proporciona datos de evento. Este controlador utiliza la clase DynamodbEvent predefinida, que se define en la biblioteca aws-lambda-java-events.

ejemplo DDBEventProcessor.java

package example; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.LambdaLogger; import com.amazonaws.services.lambda.runtime.RequestHandler; import com.amazonaws.services.lambda.runtime.events.DynamodbEvent; import com.amazonaws.services.lambda.runtime.events.DynamodbEvent.DynamodbStreamRecord; public class DDBEventProcessor implements RequestHandler<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."; } }

Si el controlador vuelve normalmente sin excepciones, Lambda considera que el lote de registros de entrada se ha procesado correctamente y empieza a leer nuevos registros en el flujo. Si el controlador genera una excepción, Lambda considera que el lote de registros de entrada no se ha procesado e invoca de nuevo la función con el mismo lote de registros.

Dependencias.

  • aws-lambda-java-core

  • aws-lambda-java-events

Cree el código con las dependencias de la biblioteca de Lambda para crear un paquete de implementación. Para obtener instrucciones, consulte Implementar funciones Lambda Java con archivos de archivo .zip o JAR.

C#

El siguiente ejemplo procesa mensajes desde DynamoDB y registra sus contenidos. ProcessDynamoEvent es el controlador que AWS Lambda invoca y proporciona datos de evento. Este controlador utiliza la clase DynamoDbEvent predefinida, que se define en la biblioteca Amazon.Lambda.DynamoDBEvents.

ejemplo 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()); } } } }

Reemplace Program.cs en un proyecto .NET Core con el ejemplo anterior. Para obtener instrucciones, consulte Implementar Lambda funciones de C# con archivos de archivo .zip.

Python 3

En el siguiente ejemplo, se procesan los mensajes de DynamoDB, y registra su contenido.

ejemplo 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'])))

Comprima el código de muestra para crear un paquete de implementación. Para obtener instrucciones, consulte Implementar funciones Lambda de Python con archivos .zip.

Go

En el siguiente ejemplo, se procesan los mensajes de DynamoDB, y registra su contenido.

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()) } } } }

Compile el ejecutable con go build y cree un paquete de implementación. Para obtener instrucciones, consulte Implementar Lambda funciones Go con archivos de archivo .zip.