使用分布式 Map 处理来自 Amazon S3 的 CSV 文件 - AWS Step Functions

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

使用分布式 Map 处理来自 Amazon S3 的 CSV 文件

本示例项目演示了如何使用分布式 Map 状态迭代使用 Lambda 函数生成的 CSV 文件的 1 万行。CSV 文件包含客户订单的配送信息,并存储在 Amazon S3 存储桶中。分布式 Map 对 CSV 文件中的 10 行进行批量迭代,以进行数据分析。

分布式 Map 包含一个 Lambda 函数,用于检测任何延迟订单。分布式 Map 还包含一个内联 Map,用于处理批次中的延迟订单,并以数组形式返回这些延迟订单。对于每个延迟订单,内联 Map 都会向 Amazon SQS 队列发送一条消息。最后,本示例项目会将 Map Run 结果存储到 AWS 账户中的另一个 Amazon S3 存储桶中。

使用分布式 Map,一次最多可运行 1 万个并行子工作流。在本示例项目中,分布式 Map 的最大并发量设置为 1000,即限制为 1000 个并行子工作流执行。

此示例项目创建状态机、支持 AWS 资源并配置相关的 IAM 权限。探索此示例项目,了解如何使用分布式 Map 编排大规模并行工作负载,或将其作为您自己项目的起点。

第 1 步:创建状态机

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

  2. 选择 “从模板创建”,然后找到相关的入门模板。选择下一步以继续。

  3. 选择如何使用模板:

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

    2. 在此基础上构建 — 提供可编辑的工作流程定义,您可以使用自己的资源对其进行查看、自定义和部署。(不会自动创建函数或队列等相关资源。)

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

    注意

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

步骤 2:运行演示状态机

如果您选择 “运行演示” 选项,则所有相关资源都将部署并准备好运行。如果您选择了 B uild on it 选项,则可能需要先设置占位符值并创建其他资源,然后才能运行自定义工作流程。

  1. 选择 “部署并运行”

  2. 等待 AWS CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

  3. 出现开始执行选项后,查看输入并选择开始执行

恭喜您!

你现在应该有一个状态机的运行演示。您可以在图表视图中选择状态来查看输入、输出、变量、定义和事件。