Utilisation AWS Lambda avec Amazon SNS - 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 AWS Lambda avec Amazon SNS

Utilisez une fonction Lambda pour traiter les notifications Amazon Simple Notification Service (Amazon SNS). Amazon SNS prend en charge les fonctions Lambda en tant que cibles pour les messages envoyés à une rubrique. Vous pouvez abonner votre fonction à des rubriques du même compte ou d'autres comptes AWS .

Amazon SNS appelle votre fonction de façon asynchrone avec un événement contenant un message et des métadonnées.

Exemple Événement de message Amazon SNS
{ "Records": [ { "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:us-east-1:123456789012:sns-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "EventSource": "aws:sns", "Sns": { "SignatureVersion": "1", "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "SigningCertUrl": "https://sns.us-east-1.amazonaws.com/SimpleNotificationService-ac565b8b1a6c5d002d285f9598aa1d9b.pem", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", "MessageAttributes": { "Test": { "Type": "String", "Value": "TestString" }, "TestBinary": { "Type": "Binary", "Value": "TestBinary" } }, "Type": "Notification", "UnsubscribeUrl": "https://sns.us-east-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:test-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "TopicArn":"arn:aws:sns:us-east-1:123456789012:sns-lambda", "Subject": "TestInvoke" } } ] }

Pour les appels asynchrones, Lambda place le message en file d'attente et gère les nouvelles tentatives. Si Amazon SNS ne peut pas atteindre Lambda ou si le message est rejeté, Amazon SNS effectue de nouvelles tentatives à intervalles croissants pendant plusieurs heures. Pour plus de détails, consultes Fiabilité dans le FAQ sur Amazon SNS.

Avertissement

Les mappages de sources d'événements Lambda traitent chaque événement au moins une fois et le traitement par lots peut se produire en double. 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 rendre ma fonction Lambda idempotente dans le Knowledge Center. AWS

Pour effectuer des livraisons Amazon SNS entre comptes à Lambda, vous devez autoriser Amazon SNS à appeler votre fonction Lambda. À son tour, Amazon SNS doit autoriser le AWS compte doté de la fonction Lambda à s'abonner à la rubrique Amazon SNS. Par exemple, si la rubrique Amazon SNS se trouve dans un compte A et la fonction Lambda dans un compte B, les deux comptes doivent s'autoriser mutuellement à accéder à leurs ressources respectives. Étant donné que toutes les options de configuration des autorisations entre comptes ne sont pas disponibles à partir du AWS Management Console, vous devez utiliser le AWS Command Line Interface (AWS CLI) pour la configuration.

Pour plus d'informations, consultez Distribution ramifiée à des fonctions Lambda dans le Manuel du développeur Amazon Simple Notification Service.

Types d'entrées pour événements Amazon SNS

Pour des exemples de types d'entrée pour les événements Amazon SNS en Java, .NET et Go, consultez les informations suivantes sur le AWS GitHub référentiel :