Flux Amazon DynamoDB en tant que source - Amazon EventBridge

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.

Flux Amazon DynamoDB en tant que source

Vous pouvez utiliser EventBridge Pipes pour recevoir des enregistrements dans un flux DynamoDB. Ensuite, vous pouvez éventuellement filtrer ou améliorer ces enregistrements avant de les envoyer à une cible pour être traités. Vous pouvez choisir des paramètres spécifiques à Amazon DynamoDB Streams lors de la configuration du canal. EventBridge Pipes conserve l'ordre des enregistrements du flux de données lors de l'envoi de ces données vers la destination.

Important

La désactivation d'un flux DynamoDB qui est la source d'un canal rend ce canal inutilisable, même si vous réactivez le flux par la suite. Cela se produit pour les raisons suivantes :

  • Vous ne pouvez pas arrêter, démarrer ou mettre à jour un canal dont la source est désactivée.

  • Vous ne pouvez pas mettre à jour un canal avec une nouvelle source après sa création. Lorsque vous réactivez un flux DynamoDB, un nouvel Amazon Resource Name (ARN) lui est affecté et il n'est plus associé à votre canal.

Si vous réactivez le flux DynamoDB, vous devrez créer un nouveau canal à l'aide du nouvel ARN du flux.

Exemple d'évènement

L'exemple d'événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d'événements, ou pour définir la transformation d'entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d'informations sur les champs que vous pouvez filtrer, consultez Filtrage Amazon EventBridge Pipes.

[ { "eventID": "1", "eventVersion": "1.0", "dynamodb": { "Keys": { "Id": { "N": "101" } }, "NewImage": { "Message": { "S": "New item!" }, "Id": { "N": "101" } }, "StreamViewType": "NEW_AND_OLD_IMAGES", "SequenceNumber": "111", "SizeBytes": 26 }, "awsRegion": "us-west-2", "eventName": "INSERT", "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable", "eventSource": "aws:dynamodb" }, { "eventID": "2", "eventVersion": "1.0", "dynamodb": { "OldImage": { "Message": { "S": "New item!" }, "Id": { "N": "101" } }, "SequenceNumber": "222", "Keys": { "Id": { "N": "101" } }, "SizeBytes": 59, "NewImage": { "Message": { "S": "This item has changed" }, "Id": { "N": "101" } }, "StreamViewType": "NEW_AND_OLD_IMAGES" }, "awsRegion": "us-west-2", "eventName": "MODIFY", "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable", "eventSource": "aws:dynamodb" } ]

Flux d'interrogation et de mise en lots

EventBridge interroge les partitions de votre flux DynamoDB en quête d'enregistrements à une fréquence de base de quatre fois par seconde. Lorsque des enregistrements sont disponibles, EventBridge traite l'événement et attend le résultat. Si le traitement réussit, EventBridge reprend l'interrogation jusqu'à ce qu'il reçoive plus d'enregistrements.

Par défaut, EventBridge invoque votre canal dès que des enregistrements sont disponibles. Si le lot qu'EventBridge lit à partir de la source ne comprend qu'un seul enregistrement, un seul événement est traité. Pour éviter de traiter un petit nombre d'enregistrements, vous pouvez indiquer au canal de les mettre en mémoire tampon pendant cinq minutes maximum en configurant une fenêtre de traitement par lots. Avant de traiter les événements, EventBridge continue de lire les enregistrements de la source jusqu'à ce qu'il ait rassemblé un lot complet, que la fenêtre de traitement par lot expire ou que le lot atteigne la limite de charge utile de 6 Mo.

Vous pouvez également augmenter la simultanéité en traitant plusieurs lots de chaque partition en parallèle. EventBridge peut traiter simultanément jusqu'à 10 lots dans chaque partition. Si vous augmentez le nombre de lots simultanés par partition, EventBridge assure toujours un traitement dans l'ordre au niveau de la clé de partition.

Configurez le paramètre ParallelizationFactor pour traiter une partition d'un flux de données Kinesis ou DynamoDB avec plusieurs exécutions de canal simultanément. Vous pouvez spécifier le nombre de lots simultanés qu'EventBridge interroge à partir d'une partition via un facteur de parallélisation compris entre 1 (par défaut) et 10. Par exemple, lorsque vous définissez ParallelizationFactor sur 2, vous pouvez avoir jusqu'à 200 exécutions de canal EventBridge simultanées pour traiter 100 partitions de données Kinesis. Cela permet d'augmenter le débit de traitement quand le volume de données est volatil et que la valeur du paramètre IteratorAge est élevée. Notez que le facteur de parallélisation ne fonctionnera pas si vous utilisez l'agrégation Kinesis.

Position de départ du sondage et du stream

Sachez que l'interrogation des sources de flux lors de la création et des mises à jour du canal est finalement cohérente.

  • Lors de la création du canal, le démarrage de l'interrogation des événements depuis le flux peut prendre plusieurs minutes.

  • Lors des mises à jour du canal dans la configuration d'interrogation des sources, l'arrêt et le redémarrage de l'interrogation des événements depuis le flux peuvent prendre plusieurs minutes.

Cela signifie que si vous spécifiez LATEST comme position de départ du flux, le canal peut manquer des événements envoyés lors de la création ou des mises à jour du canal. Pour vous assurer de ne manquer aucun événement, définissez la position de départ du flux sur TRIM_HORIZON.

Signalement des échecs d'éléments par lot

Lorsqu'EventBridge utilise et traite des données de streaming à partir d'une source, par défaut, il effectue un point de contrôle sur le numéro de séquence le plus élevé d'un lot, mais uniquement si le lot est un succès complet. Pour éviter de retraiter les messages dont le traitement a réussi dans un lot ayant échoué, vous pouvez configurer votre enrichissement ou votre cible de sorte à renvoyer un objet en indiquant les messages qui ont réussi et ceux qui ont échoué. C'est ce que l'on appelle une réponse partielle de lot.

Pour de plus amples informations, veuillez consulter Défaillance partielle d’un lot.

Conditions de réussite et d'échec

Si vous renvoyez l'un des éléments suivants, EventBridge traite un lot comme un succès complet :

  • Une liste batchItemFailure vide

  • Une liste batchItemFailure nulle

  • Une EventResponse vide

  • Une EventResponse nulle

Si vous renvoyez l'un des éléments suivants, EventBridge traite un lot comme un échec complet :

  • Une chaîne itemIdentifier vide

  • Un itemIdentifier nul

  • Un itemIdentifier avec un nom de clé incorrect

EventBridge retente les échecs en fonction de votre politique de nouvelle tentative.