

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 une rubrique Amazon SNS avec Step Functions
<a name="connect-sns"></a>

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

Pour en savoir plus sur l'intégration aux AWS services dans Step Functions, reportez-vous [Intégration des services ](integrate-services.md) aux sections et[Transmission de paramètres à une API de service dans Step Functions](connect-parameters.md).

**Principales fonctionnalités de l'intégration optimisée avec Amazon SNS**  
Il n'existe aucune optimisation spécifique pour les modèles d'[Attendre un rappel avec un jeton de tâche](connect-to-resource.md#connect-wait-token)intégration [Réponse à la requête](connect-to-resource.md#connect-default) ou d'intégration.

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

```
{
 "StartAt": "Publish to SNS",
 "States": {
   "Publish to SNS": {
     "Type": "Task",
     "Resource": "arn:aws:states:::sns:publish",
     "Arguments": {
       "TopicArn": "arn:aws:sns:{{region}}:{{account-id}}:myTopic",
       "Message": "{% states.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 charge utile JSON :

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

Ce qui suit définit les valeurs à l'aide d' JSONata expressions pour les `StringValue` champs :

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

Ce qui suit inclut un `Task` état qui publie sur une rubrique Amazon SNS, puis attend que le jeton de tâche soit renvoyé. Consultez [Attendre un rappel avec un jeton de tâche](connect-to-resource.md#connect-wait-token).

```
{  
   "StartAt":"Send message to SNS",
   "States":{  
      "Send message to SNS":{  
         "Type":"Task",
         "Resource":"arn:aws:states:::sns:publish.waitForTaskToken",
         "Arguments":{  
            "TopicArn":"arn:aws:sns:{{region}}:{{account-id}}:myTopic",
            "Message":{  
               "Input":"{% states.input.message %}",
               "TaskToken": "{% $states.context.Task.Token %}"
            }
         },
         "End":true
      }
   }
}
```

## Amazon SNS optimisé APIs
<a name="connect-sns-api"></a>
+ [https://docs.aws.amazon.com/sns/latest/api/API_Publish.html](https://docs.aws.amazon.com/sns/latest/api/API_Publish.html)

**Les paramètres in Step Functions sont exprimés en PascalCase**  
Même si l'API de service native se trouve dans CamelCase, par exemple l'`startSyncExecution`action d'API, vous spécifiez des paramètres PascalCase dans, tels que :. `StateMachineArn`

**Quota pour les données d'entrée ou de résultat**  
Lors de l'envoi ou de la réception de données entre services, l'entrée ou le résultat maximum pour une tâche est de 256 KiB de données sous forme de chaîne codée en UTF-8. Consultez [Quotas liés aux exécutions par les machines de l'État](service-quotas.md#service-limits-state-machine-executions).

## Politiques IAM pour appeler Amazon SNS
<a name="sns-iam"></a>

Les exemples de modèles suivants montrent comment AWS Step Functions générer des politiques IAM en fonction des ressources contenues dans la définition de votre machine d'état. Pour plus d’informations, consultez [Comment Step Functions génère des politiques IAM pour les services intégrés](service-integration-iam-templates.md) et [Découvrez les modèles d'intégration des services dans Step Functions](connect-to-resource.md).

*Ressources statiques*

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sns:Publish"
            ],
            "Resource": [
                "arn:aws:sns:{{us-east-1}}:{{123456789012}}:myTopicName"
            ]
        }
    ]
}
```

*Ressources basées sur un chemin, ou publiées dans `TargetArn` ou `PhoneNumber`*

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sns:Publish"
            ],
            "Resource": "*"
        }
    ]
}
```