Utilisation d'Amazon SNS avec un kit SDK AWS Lambda - AWS Lambda

Utilisation d'Amazon SNS avec un kit SDK AWS Lambda

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.

Pour effectuer des livraisons Amazon SNS entre comptes à Lambda, vous devez autoriser Amazon SNS à appeler votre fonction Lambda. Amazon SNS doit à son tout autoriser le compte AWS avec 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. Dans la mesure où les options de configuration des autorisations entre comptes ne sont pas toutes disponibles à partir de la AWS Management Console, vous devez utiliser l'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ées pour événements Amazon SNS dans Java, .NET et Go, consultez ce qui suit sur le référentiel GitHub AWS :