SQS使用 Step Functions Express 工作流程处理来自亚马逊的大量消息 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

SQS使用 Step Functions Express 工作流程处理来自亚马逊的大量消息

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

以下是从事件源执行状态机的两种常用方法:

  • 配置 Amazon CloudWatch Events 规则,以便在事件源发出事件时启动状态机执行。有关更多信息,请参阅创建在 CloudWatch 事件上触发的事件规则

  • 将事件源映射到 Lambda 函数,并编写函数代码来执行状态机。每次事件源发出事件时,都会调用该 Amazon Lambda 函数,进而启动状态机执行。有关更多信息,请参阅在 Amazon Amazon Lambda 上使用SQS

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

有关快速工作流和 Step Functions 服务集成的更多信息,请参阅以下内容:

第 1 步:创建状态机

  1. 打开 Step Functions 控制台,然后选择创建状态机

  2. 查找并选择要使用的入门模板。选择下一步以继续。

  3. 选择 “运行演示” 以创建只读和 ready-to-deploy工作流程,或者选择 “在其上构建” 以创建可编辑的状态机定义,您可以在此基础上构建并稍后部署。

  4. 选择使用模板继续进行选择。

后续步骤取决于之前的选择:

  1. 运行演示 — 您可以先查看状态机,然后再创建只读项目,并将资源部署 Amazon CloudFormation 到您的 Amazon Web Services 账户。

    可以查看状态机定义,准备就绪后,选择部署并运行来部署项目并创建资源。

    部署可能需要最长 10 分钟来创建资源和权限。可以在 Amazon CloudFormation中使用堆栈 ID 链接来监控进度。

    部署完成后,应该在控制台中看到新的状态机。

  2. 构建依据:可以查看和编辑工作流程定义。在尝试运行自定义工作流程之前,可能需要为示例项目中的占位符设置值。

注意

部署到您的账户的服务可能会收取标准费用。

第 2 步:触发状态机执行

  1. 打开亚马逊SQS控制台

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

    该名称将类似于示例-SQSQueue-wJalr XUtnFEMI

  3. Queue Actions (队列操作) 列表中,选择 Send a Message (发送消息)

  4. 使用复制按钮复制以下消息,然后在 Send a Message (发送邮件) 窗口中输入该消息,然后选择 Send Message (发送邮件)

    注意

    在此示例消息中,已使用换行符对 input: 进行格式化以适应页面。使用复制按钮或以其他方式确保它作为一行输入,没有中断。

    { "input": "QW5kIGxpa2UgdGhlIGJhc2VsZXNzIGZhYnJpYyBvZiB0aGlzIHZpc2lvbiwgVGhlIGNsb3VkLWNhcHBlZCB0b3dlcnMsIHRoZSBnb3JnZW 91cyBwYWxhY2VzLCBUaGUgc29sZW1uIHRlbXBsZXMsIHRoZSBncmVhdCBnbG9iZSBpdHNlbGbigJQgWWVhLCBhbGwgd2hpY2ggaXQgaW5o ZXJpdOKAlHNoYWxsIGRpc3NvbHZlLCBBbmQgbGlrZSB0aGlzIGluc3Vic3RhbnRpYWwgcGFnZWFudCBmYWRlZCwgTGVhdmUgbm90IGEgcm FjayBiZWhpbmQuIFdlIGFyZSBzdWNoIHN0dWZmIEFzIGRyZWFtcyBhcmUgbWFkZSBvbiwgYW5kIG91ciBsaXR0bGUgbGlmZSBJcyByb3Vu ZGVkIHdpdGggYSBzbGVlcC4gU2lyLCBJIGFtIHZleGVkLiBCZWFyIHdpdGggbXkgd2Vha25lc3MuIE15IG9sZCBicmFpbiBpcyB0cm91Ym xlZC4gQmUgbm90IGRpc3R1cmJlZCB3aXRoIG15IGluZmlybWl0eS4gSWYgeW91IGJlIHBsZWFzZWQsIHJldGlyZSBpbnRvIG15IGNlbGwg QW5kIHRoZXJlIHJlcG9zZS4gQSB0dXJuIG9yIHR3byBJ4oCZbGwgd2FsayBUbyBzdGlsbCBteSBiZWF0aW5nIG1pbmQu" }
  5. 选择关闭

  6. 打开 Step Functions 控制台

  7. 前往您的 Amazon CloudWatch 日志组并检查日志。日志组的名称将类似于示例-ExpressLogGroup-wJalr XUtnFEMI