

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Pubblica messaggi su un argomento Amazon SNS con Step Functions
<a name="connect-sns"></a>

Scopri come usare Step Functions per pubblicare messaggi su un argomento di Amazon SNS. Questa pagina elenca le azioni API di Amazon SNS supportate e fornisce esempi di `Task` stati per pubblicare messaggi su Amazon SNS.

Per ulteriori informazioni sull'integrazione con AWS i servizi in Step Functions, vedere [Integrazione dei servizi ](integrate-services.md) e[Passaggio di parametri a un'API di servizio in Step Functions](connect-parameters.md).

**Caratteristiche principali dell'integrazione ottimizzata di Amazon SNS**  
Non esistono ottimizzazioni specifiche per i modelli [Richiesta e risposta](connect-to-resource.md#connect-default) di [Attendi una richiamata con Task Token](connect-to-resource.md#connect-wait-token) integrazione.

Quanto segue include uno `Task` stato che pubblica su un argomento di 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
    }
  }
}
```

**Passaggio di valori dinamici**. Puoi modificare l'esempio precedente per passare dinamicamente un attributo da questo payload JSON:

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

Quanto segue imposta i valori utilizzando JSONata le espressioni per i campi: `StringValue`

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

Quanto segue include uno `Task` stato che pubblica su un argomento di Amazon SNS e quindi attende la restituzione del token dell'attività. Per informazioni, consulta [Attendi una richiamata con Task Token](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 ottimizzato 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)

**I parametri in Step Functions sono espressi in PascalCase**  
Anche se l'API del servizio nativo è in CamelCase, ad esempio l'`startSyncExecution`azione API, si specificano parametri PascalCase in, ad esempio:. `StateMachineArn`

**Quota per i dati di input o di risultato**  
Quando si inviano o si ricevono dati tra servizi, l'input o il risultato massimo per un'attività è di 256 KB di dati come stringa con codifica UTF-8. Per informazioni, consulta [Quote relative alle esecuzioni di macchine a stati](service-quotas.md#service-limits-state-machine-executions).

## Politiche IAM per le chiamate ad Amazon SNS
<a name="sns-iam"></a>

I seguenti modelli di esempio mostrano come AWS Step Functions generare le politiche IAM in base alle risorse nella definizione della macchina a stati. Per ulteriori informazioni, consultare [In che modo Step Functions genera policy IAM per servizi integrati](service-integration-iam-templates.md) e [Scopri i modelli di integrazione dei servizi in Step Functions](connect-to-resource.md).

*Risorse statiche*

****  

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

*Risorse basate su un percorso o che pubblicano in `TargetArn` o `PhoneNumber`*

****  

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