

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Publikasikan pesan ke topik Amazon SNS dengan Step Functions
<a name="connect-sns"></a>

Pelajari cara menggunakan Step Functions untuk mempublikasikan pesan ke topik Amazon SNS. Halaman ini mencantumkan tindakan API Amazon SNS yang didukung dan memberikan contoh `Task` status untuk mempublikasikan pesan ke Amazon SNS.

Untuk mempelajari tentang mengintegrasikan dengan AWS layanan di Step Functions, lihat [Integrasi layanan ](integrate-services.md) dan[Meneruskan parameter ke API layanan di Step Functions](connect-parameters.md).

**Fitur utama integrasi Amazon SNS yang Dioptimalkan**  
Tidak ada pengoptimalan khusus untuk pola [Minta Tanggapan](connect-to-resource.md#connect-default) atau [Tunggu Callback dengan Task Token](connect-to-resource.md#connect-wait-token) integrasi.

Berikut ini mencakup status `Task` yang menerbitkan ke topik 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
    }
  }
}
```

**Meneruskan nilai dinamis**. Anda dapat memodifikasi contoh di atas untuk secara dinamis melewati atribut dari muatan JSON ini:

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

Berikut ini menetapkan nilai menggunakan JSONata ekspresi untuk `StringValue` bidang:

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

Berikut ini mencakup status `Task` yang menerbitkan topik Amazon SNS, dan kemudian menunggu token tugas dikembalikan. Lihat [Tunggu Callback dengan 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 yang dioptimalkan 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)

**Parameter Step Functions dalam dinyatakan dalam PascalCase**  
Bahkan jika API layanan asli ada di camelCase, misalnya `startSyncExecution` tindakan API, Anda menentukan parameter PascalCase, seperti:. `StateMachineArn`

**Kuota untuk data masukan atau hasil**  
Saat mengirim atau menerima data antar layanan, input atau hasil maksimum untuk suatu tugas adalah 256 KiB data sebagai string yang dikodekan UTF-8. Lihat [Kuota yang berkaitan dengan eksekusi mesin status](service-quotas.md#service-limits-state-machine-executions).

## Kebijakan IAM untuk memanggil Amazon SNS
<a name="sns-iam"></a>

Contoh templat berikut menunjukkan cara AWS Step Functions menghasilkan kebijakan IAM berdasarkan sumber daya dalam definisi mesin status Anda. Untuk informasi selengkapnya, lihat [Bagaimana Step Functions menghasilkan kebijakan IAM untuk layanan terintegrasi](service-integration-iam-templates.md) dan [Temukan pola integrasi layanan di Step Functions](connect-to-resource.md).

*Sumber daya statis*

****  

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

*Sumber daya berdasarkan Path, atau penerbitan ke `TargetArn` atau `PhoneNumber`*

****  

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