Publier des messages sur un SNS sujet Amazon avec Step Functions - AWS Step Functions

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.

Publier des messages sur un SNS sujet Amazon avec Step Functions

Découvrez comment utiliser Step Functions pour publier des messages sur un SNS sujet Amazon. Cette page répertorie les SNS API actions Amazon prises en charge et fournit des exemples d'Taskétats pour publier un message sur AmazonSNS.

Step Functions peut contrôler certains AWS services directement depuis Amazon States Language (ASL). Pour en savoir plus, consultez Intégration d’autres services et Transmission de paramètres à un service API dans Step Functions.

En quoi l'SNSintégration Amazon optimisée est différente de l'SNS AWS SDKintégration Amazon

Il n'y a aucune optimisation pour les modèles Réponse à la requête d'Attendre un rappel avec le jeton de tâcheintégration.

Amazon pris en charge SNS APIs :

Note

Il existe un quota pour la taille maximale des données d'entrée ou de résultat pour une tâche dans Step Functions. Cela vous limite à 256 Ko de données sous forme de chaîne codée en UTF -8 lorsque vous envoyez ou recevez des données d'un autre service. Consultez Quotas liés aux exécutions par les machines de l'État.

Les paramètres in Step Functions sont exprimés en PascalCase

Même si le service natif API est activécamelCase, par exemple l'APIactionstartSyncExecution, vous spécifiez des paramètres dans PascalCase, tels que :StateMachineArn.

Ce qui suit inclut un Task état qui publie sur une rubrique Amazon Simple Notification Service (AmazonSNS).

{ "StartAt": "Publish to SNS", "States": { "Publish to SNS": { "Type": "Task", "Resource": "arn:aws:states:::sns:publish", "Parameters": { "TopicArn": "arn:aws:sns:us-east-1:123456789012:myTopic", "Message.$": "$.input.message", "MessageAttributes": { "my_attribute_no_1": { "DataType": "String", "StringValue": "value of my_attribute_no_1" }, "my_attribute_no_2": { "DataType": "String", "StringValue": "value of my_attribute_no_2" } } }, "End": true } } }

Transmission de valeurs dynamiques. Vous pouvez modifier l'exemple ci-dessus pour transmettre dynamiquement un attribut à partir de cette JSON charge utile :

{ "input": { "message": "Hello world" }, "SNSDetails": { "attribute1": "some value", "attribute2": "some other value", } }

Ajoutez le .$ au StringValue champ :

"MessageAttributes": { "my_attribute_no_1": { "DataType": "String", "StringValue.$": "$.SNSDetails.attribute1" }, "my_attribute_no_2": { "DataType": "String", "StringValue.$": "$.SNSDetails.attribute2" }

Ce qui suit inclut un Task état qui publie sur une SNS rubrique Amazon, puis attend que le jeton de tâche soit renvoyé. Consultez Attendre un rappel avec le jeton de tâche.

{ "StartAt":"Send message to SNS", "States":{ "Send message to SNS":{ "Type":"Task", "Resource":"arn:aws:states:::sns:publish.waitForTaskToken", "Parameters":{ "TopicArn":"arn:aws:sns:us-east-1:123456789012:myTopic", "Message":{ "Input.$":"$", "TaskToken.$":"$$.Task.Token" } }, "End":true } } }

Pour plus d'informations sur la configuration IAM des autorisations lors de l'utilisation Step Functions avec d'autres AWS services, consultezComment Step Functions génère IAM des politiques pour les services intégrés.