使用 Step Functions 快速工作流程处理来自 Amazon SQS 的大量消息
此示例项目演示如何使用 Amazon Step Functions 快速工作流处理来自大批量事件源(如 Amazon Simple Queue Service (Amazon SQS))的消息或数据。由于快速工作流可以非常高的速率启动,因此它们非常适合大批量事件处理或流数据工作负载。
以下是从事件源执行状态机的两种常用方法:
-
配置 Amazon CloudWatch Events 规则,以便在事件源发出事件时启动状态机执行。有关更多信息,请参阅创建触发事件的 CloudWatch Events 规则。
-
将事件源映射到 Lambda 函数,并编写函数代码来执行状态机。每次事件源发出事件时都会调用 Amazon Lambda 函数,从而启动状态机执行。有关更多信息,请参阅结合使用 Amazon Lambda 与 Amazon SQS。
此示例项目使用第二种方法在 Amazon SQS 队列每次发送消息时启动执行。您可以使用类似的配置,触发来自其他事件源的快速工作流执行,比如 Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB 和 Amazon Kinesis。
有关快速工作流和 Step Functions 服务集成的更多信息,请参阅以下内容:
第 1 步:创建状态机
-
打开 Step Functions 控制台
,然后选择创建状态机。 -
选择从模板创建,然后找到相关的入门模板。选择下一步以继续。
-
选择模板使用方式:
-
运行演示 — 创建只读状态机。审核后,您可以创建工作流和所有相关资源。
-
构建依据 — 提供可编辑的工作流定义,您可借助自有资源对其进行审核、定制并部署。(不会自动创建函数或队列等相关资源。)
-
-
选择使用模板继续进行选择。
注意
部署到您的账户的服务将会收取标准费用。
第 2 步:触发状态机执行
-
打开 Amazon SQS 控制台
。 -
选择示例项目创建的队列。
该名称将类似于 Example-SQSQueue-wJalrXUtnFEMI。
-
在 Queue Actions (队列操作) 列表中,选择 Send a Message (发送消息)。
-
使用复制按钮复制以下消息,然后在 Send a Message (发送邮件) 窗口中输入该消息,然后选择 Send Message (发送邮件)。
注意
在此示例消息中,已使用换行符对
input:进行格式化以适应页面。使用复制按钮或以其他方式确保它作为一行输入,没有中断。{ "input": "QW5kIGxpa2UgdGhlIGJhc2VsZXNzIGZhYnJpYyBvZiB0aGlzIHZpc2lvbiwgVGhlIGNsb3VkLWNhcHBlZCB0b3dlcnMsIHRoZSBnb3JnZW91cyBwYWxhY2VzLCBUaGUgc29sZW1uIHRlbXBsZXMsIHRoZSBncmVhdCBnbG9iZSBpdHNlbGbigJQgWWVhLCBhbGwgd2hpY2ggaXQgaW5oZXJpdOKAlHNoYWxsIGRpc3NvbHZlLCBBbmQgbGlrZSB0aGlzIGluc3Vic3RhbnRpYWwgcGFnZWFudCBmYWRlZCwgTGVhdmUgbm90IGEgcmFjayBiZWhpbmQuIFdlIGFyZSBzdWNoIHN0dWZmIEFzIGRyZWFtcyBhcmUgbWFkZSBvbiwgYW5kIG91ciBsaXR0bGUgbGlmZSBJcyByb3VuZGVkIHdpdGggYSBzbGVlcC4gU2lyLCBJIGFtIHZleGVkLiBCZWFyIHdpdGggbXkgd2Vha25lc3MuIE15IG9sZCBicmFpbiBpcyB0cm91YmxlZC4gQmUgbm90IGRpc3R1cmJlZCB3aXRoIG15IGluZmlybWl0eS4gSWYgeW91IGJlIHBsZWFzZWQsIHJldGlyZSBpbnRvIG15IGNlbGwgQW5kIHRoZXJlIHJlcG9zZS4gQSB0dXJuIG9yIHR3byBJ4oCZbGwgd2FsayBUbyBzdGlsbCBteSBiZWF0aW5nIG1pbmQu" } -
选择关闭。
-
前往您的 Amazon CloudWatch Logs 日志组
并检查日志。日志组的名称将类似于 example-ExpressLogGroup-wJalrXUtnFEMI。