使用 Step Functions 傳送訊息至 Amazon SQS佇列 - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 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": "*" } ] }