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.
Amazon Kinesis Stream en tant que source pour Pipes EventBridge
Vous pouvez utiliser EventBridge Pipes pour recevoir des enregistrements dans un flux de données Kinesis. Ensuite, vous pouvez éventuellement filtrer ou améliorer ces enregistrements avant de les envoyer à l’une des destinations disponibles pour être traités. Vous pouvez choisir des paramètres spécifiques à Kinesis 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.
Un flux de données Kinesis est un ensemble de partitions. Chaque partition contient une séquence d’enregistrements de données. Un consommateur est une application qui traite les données d’un flux de données Kinesis. Vous pouvez mapper un EventBridge canal à un consommateur à débit partagé (itérateur standard) ou à un consommateur à débit dédié doté d'un ventilateur amélioré.
Pour les itérateurs standard, EventBridge utilise le HTTP protocole pour interroger chaque partition de votre flux Kinesis à la recherche d'enregistrements. Le canal partage le débit de lecture avec d’autres consommateurs de la partition.
Pour réduire la latence et optimiser le débit en lecture, vous pouvez créer un consommateur de flux de données avec diffusion améliorée. Les consommateurs de flux obtiennent une connexion dédiée pour chaque partition qui n’a pas d’impact sur les autres applications lisant sur le flux. Le débit dédié peut aider si vous avez de nombreuses applications lisant les mêmes données, ou si vous retraitez un flux avec de gros enregistrements. Kinesis pousse les enregistrements à plus de /2. EventBridge HTTP Pour en savoir plus sur les flux de données Kinesis, consultez Lecture de données à partir d’Amazon Kinesis Data Streams.
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 des événements dans Amazon EventBridge Pipes.
[ { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49590338271490256608559692538361571095921575989136588898", "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "approximateArrivalTimestamp": 1545084650.987 "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" }, { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49590338271490256608559692540925702759324208523137515618", "data": "VGhpcyBpcyBvbmx5IGEgdGVzdC4=", "approximateArrivalTimestamp": 1545084711.166 "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000006:49590338271490256608559692540925702759324208523137515618", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" } ]
Flux d’interrogation et de mise en lots
EventBridge interroge les partitions de votre flux Kinesis à la recherche d'enregistrements à une fréquence de base de quatre fois par seconde. Lorsque les enregistrements sont disponibles, EventBridge traite l'événement et attend le résultat. Si le traitement aboutit, EventBridge reprend le sondage jusqu'à ce qu'il reçoive d'autres enregistrements.
Par défaut, EventBridge invoque votre canal dès que les enregistrements sont disponibles. Si le lot qui EventBridge lit à partir de la source ne contient 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 depuis la source jusqu'à ce que le lot soit complet, que la fenêtre de traitement par lots 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 par partition. Si vous augmentez le nombre de lots simultanés par partition, vous garantissez EventBridge toujours le 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 qui partent d'une EventBridge partition via un facteur de parallélisation compris entre 1 (par défaut) et 10. Par exemple, lorsque vous définissez cette valeur ParallelizationFactor
sur 2, vous pouvez avoir 200 exécutions de EventBridge Pipe simultanées au maximum pour traiter 100 fragments 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, spécifiez la position de départ du flux comme TRIM_HORIZON
ou AT_TIMESTAMP
.
Signalement des échecs d’articles par lots
Lorsqu'il EventBridge consomme et traite des données en streaming à partir d'une source, il vérifie par défaut le numéro de séquence le plus élevé d'un lot, mais uniquement lorsque le lot est totalement réussi. 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 plus d’informations, consultez Défaillance partielle d’un lot.
Conditions de réussite et d’échec
Si vous renvoyez l'un des éléments suivants, EventBridge considère un lot comme une réussite totale :
Une liste
batchItemFailure
videUne liste
batchItemFailure
nulleUne
EventResponse
videUne
EventResponse
nulle
Si vous renvoyez l'un des éléments suivants, EventBridge considère un lot comme un échec total :
Une chaîne
itemIdentifier
videUn
itemIdentifier
nulUn
itemIdentifier
avec un nom de clé incorrect
EventBridge les nouvelles tentatives échouent en fonction de votre stratégie de relance.