使用 Step Functions 调用 Amazon SQS - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Step Functions 调用 Amazon SQS

Step Functions 可以直接从 Amazon States Language (ASL) 控制某些 Amazon 服务。有关使用 Amazon Step Functions 及其集成的更多信息,请参阅以下内容:

优化的 Amazon SQS 集成与 Amazon SQS Amazon 开发工具包集成有何不同

没有针对请求响应等待具有任务令牌的回调集成模式的优化。

支持的 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 Simple Queue Service 开发商指南》中的接收和删除消息

有关在将 Step Functions 与其他 Amazon 服务一起使用时如何配置 IAM 权限的信息,请参阅集成服务的 IAM 策略