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.
Pour en savoir plus sur l'intégration avec AWS services dans Step Functions, voir Intégration des services et. Transmission de paramètres à un service API dans Step Functions
Principales fonctionnalités de l'SNSintégration optimisée avec Amazon
Il n'y a aucune optimisation pour les modèles Réponse à la requête d'Attendre un rappel avec un jeton de tâcheintégration.
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 un 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
}
}
}
Amazon pris en charge SNS APIs
-
-
Paramètres pris en charge
Paramètres dans 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
.
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.
IAMpolitiques relatives aux appels d'Amazon SNS
Les exemples de modèles suivants montrent comment AWS Step Functions génère IAM des politiques basées sur les ressources contenues dans la définition de votre machine à états. Pour plus d’informations, consultez Comment Step Functions génère IAM des politiques pour les services intégrés et Découvrez les modèles d'intégration des services dans Step Functions.
Ressources statiques
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": [
"arn:aws:sns:[[region]]
:[[accountId]]
:[[topicName]]
"
]
}
]
}
Ressources basées sur un chemin, ou publiées dans TargetArn
ou PhoneNumber
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": "*"
}
]
}