使用 Step Functions 呼叫 Amazon SQS - AWS Step Functions

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

使用 Step Functions 呼叫 Amazon SQS

Step Functions 可以直接從Amazon States Language(ASL)控制某些 AWS 服務。如需了解詳細資訊,請參閱 使用其他 服務將參數傳遞至服務 API

最佳化的 Amazon SQS 整合與 Amazon SQS AWS 開發套件整合有何不同

請求回應等候傳回任務字符的回呼整合模式沒有最佳化。

支援的 Amazon SQS API:

注意

「Step Functions 數」中的工作有最大輸入或結果資料大小的配額。當您傳送至其他服務或從其他服務接收資料時,這會將您限制為 256 KB 的資料,做為 UTF-8 編碼字串。請參閱與狀態機器執行相關的配額

注意

中的參數Step Functions會以表示 PascalCase,即使原生服務 API 位於 camelCase 中。例如,您可以使用 Step Functions API 動作startSyncExecution並將其參數指定為StateMachineArn

以下內容包括傳送 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 簡單佇列服務開發人員指南中的接收和刪除訊息。

如需Step Functions與其他 AWS 服務搭配使用時如何設定IAM權限的相關資訊,請參閱整合式服務的 IAM 政策