翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions を使用して Amazon SNS トピックにメッセージを発行する方法について説明します。このページでは、サポートされている Amazon SNS API アクションを一覧表示し、Amazon SNS にメッセージを公開するための Task
状態の例を示します。
Step Functions での AWS サービスとの統合については、 サービスとの統合「」および「」を参照してくださいStep Functions でサービス API にパラメータを渡す。
最適化された Amazon SNS 統合の主な機能
レスポンスのリクエスト または タスクトークンのコールバックまで待機する 統合パターンの最適化はありません。
以下には、Amazon Simple Notification Service (Amazon SNS) トピックに発行する Task
状態が含まれます。
{
"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
}
}
}
動的な値を渡す。上記の例を変更して、この JSON ペイロードから属性を動的に渡すことができます。
{
"input": {
"message": "Hello world"
},
"SNSDetails": {
"attribute1": "some value",
"attribute2": "some other value",
}
}
.$
を StringValue
フィールドに追加:
"MessageAttributes": {
"my_attribute_no_1": {
"DataType": "String",
"StringValue.$": "$.SNSDetails.attribute1"
},
"my_attribute_no_2": {
"DataType": "String",
"StringValue.$": "$.SNSDetails.attribute2"
}
以下には、Amazon SNS トピックに発行され、その後タスクトークンが返されるまで待機する Task
状態が含まれます。「タスクトークンのコールバックまで待機する」を参照してください。
{
"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 SNS APIs
Step Functions のパラメータは PascalCase で表されます。
ネイティブサービス API が、API アクション startSyncExecution
などの camelCase である場合でも、StateMachineArn
などの PascalCase でパラメータを指定します。
注記
Step Functions のタスクには入力データまたは結果データの最大サイズにはクォータがあります。これにより、別のサービスとの間でデータを送受信するときに、UTF-8 でエンコードされた文字列として 256 KiB のデータに制限されます。「ステートマシンの実行に関連するクォータ」を参照してください。
Amazon SNS を呼び出すための IAM ポリシー
次のサンプルテンプレートは、 がステートマシン定義のリソースに基づいて IAM ポリシー AWS Step Functions を生成する方法を示しています。詳細については、Step Functions が統合サービスの IAM ポリシーを生成する方法およびStep Functions でサービス統合パターンを検出するを参照してください。
静的リソース
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": [
"arn:aws:sns:[[region]]
:[[accountId]]
:[[topicName]]
"
]
}
]
}
パスに基づくリソース、または TargetArn
か PhoneNumber
に発行する
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sns:Publish"
],
"Resource": "*"
}
]
}