Streams et déclencheurs DynamoDB AWS Lambda - Amazon DynamoDB

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.

Streams et déclencheurs DynamoDB AWS Lambda

Amazon DynamoDB est intégré afin que vous puissiez créer AWS Lambda des déclencheurs, des éléments de code qui répondent automatiquement aux événements dans DynamoDB Streams. Avec des déclencheurs, vous pouvez créer des applications qui réagissent à des modifications de données dans des tables DynamoDB.

Si vous activez DynamoDB Streams sur une table, vous pouvez associer le flux Amazon Resource Name (ARN) à une AWS Lambda fonction que vous écrivez. Toutes les actions de mutation vers cette table DynamoDB peuvent ensuite être capturées en tant qu'élément dans le flux. Par exemple, vous pouvez définir un déclencheur pour que, lorsqu'un élément de table est modifié, un nouvel enregistrement apparaisse immédiatement dans le flux de cette table.

Note

Si vous abonnez plus de deux fonctions Lambda à un flux DynamoDB, une limitation de lecture peut se produire.

Le service AWS Lambda interroge le flux à la recherche de nouveaux enregistrements quatre fois par seconde. Lorsque de nouveaux enregistrements de flux sont disponibles, votre fonction Lambda est invoquée de manière synchrone. Vous pouvez abonner jusqu'à deux fonctions Lambda au même flux DynamoDB. Si vous abonnez plus de deux fonctions Lambda au même flux DynamoDB, une limitation de lecture peut se produire.

La fonction Lambda peut envoyer une notification, lancer un flux de travail ou effectuer un grand nombre d'actions spécifiées par vos soins. Vous pouvez écrire une fonction Lambda simplement afin de copier chaque enregistrelent de flux vers un stockage permanent tel qu'Amazon S3 File Gateway (Amazon S3) et créer une piste d'audit permanente de l'activité d'écriture dans votre table. Ou supposons que vous ayez une application de jeux pour appareils mobiles qui écrive dans une table GameScores. Chaque fois que l'attribut TopScore de la table GameScores est mis à jour, un enregistrement de flux correspondant est écrit dans le flux de la table. Cet événement peut alors déclencher une fonction Lambda qui publie un message de félicitations sur un réseau social. Cette fonction ignorerait simplement tout enregistrement de flux qui ne serait pas une mise à jour de GameScores, ou qui ne modifierait pas l'attribut TopScore.

Si votre fonction renvoie une erreur, Lambda réessaie de traiter le lot jusqu'à ce que le traitement réussisse ou que les données expirent. Vous pouvez également configurer Lambda pour effectuer de nouvelles tentatives avec un lot plus petit, limiter le nombre de tentatives, supprimer les enregistrements une fois qu'ils sont trop anciens et d'autres options.

Afin de respecter les bonnes pratiques en matière de performances, la fonction Lambda doit être de courte durée. Pour éviter d'introduire des retards de traitement inutiles, elle ne doit pas non plus exécuter de logique complexe. Pour un flux à haute vitesse en particulier, il est préférable de déclencher des flux de travail asynchrones avec des fonctions de post-traitement par étapes plutôt que des Lambdas synchrones de longue durée.

Vous ne pouvez pas utiliser le même déclencheur Lambda sur différents comptes. AWS La table DynamoDB et les fonctions Lambda doivent appartenir au même compte. AWS

Pour plus d'informations AWS Lambda, consultez le guide du AWS Lambda développeur.