Exemple de code de fonction - AWS Lambda

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Exemple de code de fonction

Un exemple de code est disponible pour les langages suivants.

Node.js

L'exemple suivant traite les messages de DynamoDB et journalise leur contenu.

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

Compressez l'exemple de code pour créer un package de déploiement. Pour obtenir des instructions, consultez Déployer des fonctions Lambda en Node.js avec des archives de fichiers .zip.

Java 11

L'exemple suivant traite les messages de DynamoDB et journalise leur contenu. handleRequest est le gestionnaire qu'AWS Lambda invoque et auquel il fournit les données d'événements. Le gestionnaire utilise la classe DynamodbEvent qui est prédéfinie dans la bibliothèque aws-lambda-java-events.

Exemple 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 le gestionnaire ne renvoie aucune exception, Lambda considère le lot d'enregistrements entrant comme traité avec succès, et commence à lire les nouveaux enregistrements dans le flux. Si le gestionnaire renvoie une exception, Lambda considère le lot d'enregistrements entrant comme non traité, et invoque à nouveau la fonction avec le même lot d'enregistrements.

Dépendances
  • aws-lambda-java-core

  • aws-lambda-java-events

Générez le code avec les dépendances de la bibliothèque Lambda pour créer un package de déploiement. Pour obtenir des instructions, consultez Déployer des fonctions Lambda en Java avec des archives de fichiers .zip ou JAR.

C#

L'exemple suivant traite les messages de DynamoDB et journalise leur contenu. ProcessDynamoEvent est le gestionnaire qu'AWS Lambda invoque et auquel il fournit les données d'événements. Le gestionnaire utilise la classe DynamoDbEvent qui est prédéfinie dans la bibliothèque Amazon.Lambda.DynamoDBEvents.

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

Remplacez le fichier Program.cs dans un projet .NET Core par l'exemple ci-dessus. Pour obtenir des instructions, consultez Créez et déployez des fonctions Lambda C# à l’aide des archives de fichiers .zip.

Python 3

L'exemple suivant traite les messages de DynamoDB et journalise leur contenu.

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

Compressez l'exemple de code pour créer un package de déploiement. Pour obtenir des instructions, consultez Travailler avec des archives de fichiers .zip pour les fonctions Lambda Python.

Go

L'exemple suivant traite les messages de DynamoDB et journalise leur contenu.

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

Générez le fichier exécutable avec go build et créez un package de déploiement. Pour obtenir des instructions, consultez Déployer des fonctions Lambda Go avec des archives de fichiers .zip.