Utilisation de Lambda avec Amazon MSK - 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.

Utilisation de Lambda avec Amazon MSK

Note

Si vous voulez envoyer des données à une cible autre qu’une fonction Lambda ou enrichir les données avant de les envoyer, consultez Amazon EventBridge Pipes.

Amazon Managed Streaming for Apache Kafka (Amazon MSK) est un service entièrement géré qui vous permet de créer et d’exécuter des applications qui utilisent Apache Kafka pour traiter des données en streaming. Amazon MSK simplifie la configuration, la mise à l’échelle et la gestion des clusters exécutant Kafka. Amazon MSK facilite également la configuration de votre application pour plusieurs zones de disponibilité et pour la sécurité avec AWS Identity and Access Management (IAM). Amazon MSK prend en charge plusieurs versions open source de Kafka.

Amazon MSK en tant que source d’événement fonctionne de la même manière qu’Amazon Simple Queue Service (Amazon SQS) ou Amazon Kinesis. Lambda interroge en interne les nouveaux messages de la source d’événement, puis invoque de manière synchrone la fonction Lambda cible. Lambda lit les messages par lot et les fournit à votre fonction en tant que charge utile d’événement. La taille maximale du lot est configurable (la valeur par défaut est de 100 messages). Pour en savoir plus, consultez Comportement de traitement par lots.

Par défaut, Lambda met automatiquement à l’échelle le nombre de sondeurs d’événements pour votre mappage des sources d’événements Amazon MSK. Pour optimiser le débit de votre mappage des sources d’événements Amazon MSK, configurez le mode alloué. En mode alloué, vous pouvez définir le nombre minimal et maximal de sondeurs d’événements alloués à votre mappage des sources d’événements. Cela peut améliorer la capacité de votre mappage des sources d’événements à gérer les pics de messages inattendus. Pour de plus amples informations, veuillez consulter Mode alloué.

Avertissement

Les mappages des sources d’événements Lambda traitent chaque événement au moins une fois, et le traitement des enregistrements peut être dupliqué. Pour éviter les problèmes potentiels liés à des événements dupliqués, nous vous recommandons vivement de rendre votre code de fonction idempotent. Pour en savoir plus, consultez Comment puis-je rendre ma fonction Lambda idempotente ? dans le Centre de connaissances AWS.

Pour un exemple de configuration d’Amazon MSK en tant que source d’événement, consultez Utilisation d’Amazon MSK en tant que source d’événement pour AWS Lambda sur le blog AWS Compute. Consultez Intégration Lambda Amazon MSK dans Amazon MSK Labs pour un didacticiel complet.

Exemple d’évènement

Lambda envoie le lot de messages dans le paramètre d’événement quand il invoque votre fonction. La charge utile d’un événement contient un tableau de messages. Chaque élément de tableau contient des détails de la rubrique Amazon MSK et un identifiant de partition, ainsi qu’un horodatage et un message codé en base 64.

{ "eventSource":"aws:kafka", "eventSourceArn":"arn:aws:kafka:us-east-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2", "bootstrapServers":"b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092", "records":{ "mytopic-0":[ { "topic":"mytopic", "partition":0, "offset":15, "timestamp":1545084650987, "timestampType":"CREATE_TIME", "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==", "headers":[ { "headerKey":[ 104, 101, 97, 100, 101, 114, 86, 97, 108, 117, 101 ] } ] } ] } }