

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

# 使用 Step Functions 快速工作流程处理来自 Amazon SQS 的大量消息
<a name="sample-project-express-high-volume-sqs"></a>

此示例项目演示了如何使用 AWS Step Functions Express Workflow 来处理来自高容量事件源（例如亚马逊简单队列服务 (Amazon SQS)）的消息或数据。由于快速工作流可以非常高的速率启动，因此它们非常适合大批量事件处理或流数据工作负载。

以下是从事件源执行状态机的两种常用方法：
+ **配置 Amazon CloudWatch Events 规则，以便在事件源发出事件时启动状态机执行。**有关更多信息，请参阅[创建在 CloudWatch 事件上触发的事件规则](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html)。
+ **将事件源映射到 Lambda 函数，并编写函数代码来执行状态机。**每次事件源发出事件时，都会调用该 AWS Lambda 函数，进而启动状态机执行。有关更多信息，请参阅[结合使用 AWS Lambda 与 Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html)。

此示例项目使用第二种方法在 Amazon SQS 队列每次发送消息时启动执行。您可以使用类似的配置，触发来自其他事件源的快速工作流执行，比如 Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB 和 Amazon Kinesis。

有关快速工作流和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [在 Step Functions 中选择工作流程类型](choosing-workflow-type.md)
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [Step Functions 服务配额](service-quotas.md)

## 第 1 步：创建状态机
<a name="sample-project-high-volume-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：触发状态机执行
<a name="trigger-execution"></a>

1. 打开 [Amazon SQS 控制台](https://console.aws.amazon.com/sqs)。

1. 选择示例项目创建的队列。

   该名称将类似于 Example **SQSQueue-wja XUtn** LR FEMI。

1. 在 **Queue Actions (队列操作)** 列表中，选择 **Send a Message (发送消息)**。

1. 使用复制按钮复制以下消息，然后在 **Send a Message (发送邮件)** 窗口中输入该消息，然后选择 **Send Message (发送邮件)**。
**注意**  
在此示例消息中，已使用换行符对 `input:` 进行格式化以适应页面。使用复制按钮或以其他方式确保它作为一行输入，没有中断。

   ```
   {
         "input": "QW5kIGxpa2UgdGhlIGJhc2VsZXNzIGZhYnJpYyBvZiB0aGlzIHZpc2lvbiwgVGhlIGNsb3VkLWNhcHBlZCB0b3dlcnMsIHRoZSBnb3JnZW
                   91cyBwYWxhY2VzLCBUaGUgc29sZW1uIHRlbXBsZXMsIHRoZSBncmVhdCBnbG9iZSBpdHNlbGbigJQgWWVhLCBhbGwgd2hpY2ggaXQgaW5o
                   ZXJpdOKAlHNoYWxsIGRpc3NvbHZlLCBBbmQgbGlrZSB0aGlzIGluc3Vic3RhbnRpYWwgcGFnZWFudCBmYWRlZCwgTGVhdmUgbm90IGEgcm
                   FjayBiZWhpbmQuIFdlIGFyZSBzdWNoIHN0dWZmIEFzIGRyZWFtcyBhcmUgbWFkZSBvbiwgYW5kIG91ciBsaXR0bGUgbGlmZSBJcyByb3Vu
                   ZGVkIHdpdGggYSBzbGVlcC4gU2lyLCBJIGFtIHZleGVkLiBCZWFyIHdpdGggbXkgd2Vha25lc3MuIE15IG9sZCBicmFpbiBpcyB0cm91Ym
                   xlZC4gQmUgbm90IGRpc3R1cmJlZCB3aXRoIG15IGluZmlybWl0eS4gSWYgeW91IGJlIHBsZWFzZWQsIHJldGlyZSBpbnRvIG15IGNlbGwg
                   QW5kIHRoZXJlIHJlcG9zZS4gQSB0dXJuIG9yIHR3byBJ4oCZbGwgd2FsayBUbyBzdGlsbCBteSBiZWF0aW5nIG1pbmQu"
   }
   ```

1. 选择**关闭**。

1. 打开 [Step Functions 控制台]()。

1.  前往您的 [Amazon CloudWatch 日志组](https://console.aws.amazon.com/cloudwatch/home?#logs:)并检查日志。日志组的名称将类似于**示例 ExpressLogGroup-wja XUtn** LR FEMI。