本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 Step Functions 傳送訊息至 Amazon SQS佇列
了解如何使用 Step Functions 將訊息傳送到 Amazon SQS佇列。此頁面列出支援的 Amazon SQSAPI動作,並提供範例Task
狀態以傳送訊息至佇列。
若要了解如何在 Step Functions 中整合 AWS 服務,請參閱 整合 服務和 將參數傳遞至 Step Functions API中的服務。
Optimized Amazon SQS整合的主要功能
請求回應 或 使用任務權杖等待回呼整合模式沒有最佳化。
下列包含傳送 Amazon Simple Queue Service (Amazon SQS) 訊息Task
的狀態。
{
"StartAt": "Send to SQS",
"States": {
"Send to SQS": {
"Type": "Task",
"Resource": "arn:aws:states:::sqs:sendMessage",
"Parameters": {
"QueueUrl": "https://sqs.us-east-1.amazonaws.com/123456789012/myQueue",
"MessageBody.$": "$.input.message",
"MessageAttributes": {
"my_attribute_no_1": {
"DataType": "String",
"StringValue": "attribute1
"
},
"my_attribute_no_2": {
"DataType": "String",
"StringValue": "attribute2
"
}
}
},
"End": true
}
}
}
下列包含發佈至 Amazon SQS佇列,然後等待任務權杖傳回Task
的狀態。請參閱 使用任務權杖等待回呼。
{
"StartAt":"Send message to SQS",
"States":{
"Send message to SQS":{
"Type":"Task",
"Resource":"arn:aws:states:::sqs:sendMessage.waitForTaskToken",
"Parameters":{
"QueueUrl":"https://sqs.us-east-1.amazonaws.com/123456789012/myQueue",
"MessageBody":{
"Input.$":"$",
"TaskToken.$":"$$.Task.Token"
}
},
"End":true
}
}
}
若要進一步了解如何在 Amazon 中接收訊息SQS,請參閱《Amazon Simple Queue Service 開發人員指南》中的接收和刪除您的訊息。
支援的 Amazon SQS APIs
中的參數 Step Functions 以 表示 PascalCase
即使原生服務API位於 中camelCase,例如 API 動作 startSyncExecution
,您也可以在 中指定參數 PascalCase,例如:StateMachineArn
。
注意
Step Functions 中任務的最大輸入或結果資料大小有配額。當您向另一個 服務傳送或接收資料時,這會限制您將 256 KiB 的資料做為 UTF-8 編碼字串。請參閱 狀態機器執行的相關配額。
IAM 呼叫 Amazon 的政策 SQS
下列範例範本顯示 如何根據您狀態機器定義中的資源 AWS Step Functions 產生IAM政策。如需詳細資訊,請參閱 Step Functions 式如何為整合式服務產生IAM原則 和 探索 Step Functions 中的服務整合模式。
靜態資源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sqs:SendMessage"
],
"Resource": [
"arn:aws:sqs:[[region]]
:[[accountId]]
:[[queueName]]
"
]
}
]
}
動態資源
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sqs:SendMessage"
],
"Resource": "*"
}
]
}