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

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

Compile el código de muestra para crear un paquete de implementación. Para obtener instrucciones, consulte Implementar funciones Node.js de Lambda 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 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."; } }

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

Compile el código con las dependencias de la biblioteca Lambda para crear un paquete de implementación. Para obtener instrucciones, consulte Implementar funciones de 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 el Program.cs en un proyecto .NET Core con el ejemplo anterior. Para obtener instrucciones, consulte Crear e implementar funciones de Lambda 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'])))

Compile el código de muestra para crear un paquete de implementación. Para obtener instrucciones, consulte Uso de archivos .zip para funciones de Lambda en Python.

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 funciones de Lambda en Go con archivos .zip.