本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Step Functions 將消息發佈到 Amazon SNS 主題
了解如何使用 Step Functions 將訊息發佈到 Amazon SNS 主題。此頁面列出支援的 Amazon SNS API 動作,並提供將訊息發佈到 Amazon 的範例Task
狀態SNS。
Step Functions 可以直接從Amazon States Language(ASL)控制某些 AWS 服務。如需了解詳細資訊,請參閱 整合其他服務 和 將參數傳遞給 Step Functions 數API中的服務。
優化的 Amazon SNS 集成與 Amazon 集成有何不同 SNS AWS SDK
請求回應或等候傳回任務字符的回呼整合模式沒有最佳化。
支持的 Amazon SNSAPIs:
注意
「Step Functions 數」中的工作有最大輸入或結果資料大小的配額。當您傳送至其他服務或從其他服務接收資料時,這會將您限制為 256 KB 的資料,以 UTF -8 編碼的字串形式。請參閱 與狀態機器執行相關的配額。
中的參Step Functions數表示 PascalCase
即使原生服務位API於中 camelCase (例如API動作)startSyncExecution
,您也可以在中指定參數 PascalCase,例如:StateMachineArn
。
以下內容包括發佈到 Amazon 簡單通知服務 (AmazonSNS) 主題的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
}
}
}
如需Step Functions與其他 AWS 服務搭配使用時如何設定IAM權限的相關資訊,請參閱Step Functions 式如何為整合式服務產生IAM原則。