在 Step Functions 中处理来自处于地图状态的队列的数据 - AWS Step Functions

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

在 Step Functions 中处理来自处于地图状态的队列的数据

在此示例工作流程中,映射工作流程状态状态处理队列中的数据,向订阅者发送消息并将其存储在数据库中。

Step Functions 使用经过优化的集成从亚马逊SQS队列中提取消息。当消息可用时,Choice状态会将一组JSON消息传递到一个Map状态进行处理。对于每条消息,状态机都会将消息写入 DynamoDB,从队列中删除消息,然后将消息发布到 Amazon 主题。SNS

此示例项目包括以下资源:

  • 网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的 AWS Step Functions 状态机

  • 一个 Amazon SQS 队列,Map 状态可以迭代地从中读取和删除消息。

  • 一个 DynamoDB 表,Map 状态以迭代方式将消息写入其中。

  • 一个亚马逊SNS主题,Step Functions 将它从亚马逊SQS队列中读取的消息发布到该主题。

  • 相关 AWS Identity and Access Management (IAM) 角色

第 1 步:创建状态机

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

  2. 查找并选择使用地图状态动态处理数据。选择下一步以继续。

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

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

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

  1. 运行演示 — 您可以先查看状态机,然后再使用部署的资源创建只读项目 AWS CloudFormation 给你的 AWS 账户.

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

    部署最多可能需要 10 分钟才能创建资源和权限。您可以使用堆栈 ID 链接来监控进度 AWS CloudFormation.

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

  2. 在此基础上再接再厉 — 您可以查看和编辑工作流程定义。在尝试运行自定义工作流程之前,您可能需要为示例项目中的占位符设置值。

注意

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

第 2 步:订阅 Amazon SNS 主题

提示

在运行状态机之前,请订阅 Amazon SNS 主题并将项目添加到亚马逊SQS队列中。

  1. 打开亚马逊SNS控制台

  2. 选择 “主题”,然后找到由示例项目创建的主题。

  3. 选择 “创建订阅”,在 “协议” 中选择 “电子邮件”。

  4. 在 En dpoint 下,输入您的电子邮件地址以订阅该主题。

  5. 选择创建订阅

  6. 在电子邮件中确认订阅以激活订阅。

步骤 3:向 Amazon SQS 队列添加消息

  1. 打开亚马逊SQS控制台

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

  3. 选择 “发送和接收消息”,输入一条消息,然后选择 “发送消息”。重复此步骤,向队列中添加多条消息。

第 4 步:运行状态机

提示

Amazon 中的队SNS列最终是一致的。向队列发送消息后,可能需要等待几分钟,然后才能运行状态机。

  1. 状态机页面上,选择您的示例项目。

  2. 在示例项目页面上,选择启动执行

  3. 启动执行对话框中,执行以下操作:

    1. (可选)输入自定义执行名称以覆盖生成的默认值。

      非ASCII姓名和日志

      Step Functions 接受状态机、执行、活动和包含非ASCII字符的标签的名称。由于此类字符不适用于亚马逊 CloudWatch,因此我们建议您仅使用ASCII字符,以便您可以跟踪中的指标 CloudWatch。

    2. (可选)在输入框中,将输入值输入为JSON。如果您正在运行演示,则可以跳过此步骤。

    3. 选择启动执行

    Step Functions 控制台将引导您进入执行详情页面,您可以在图表视图中选择状态以浏览步骤详细信息窗格中的相关信息。

恭喜您!

现在,你应该有一个正在运行的演示或者一个可以自定义的状态机定义。