管理 Lambda 工作流程和事件
使用 Lambda 构建无服务器应用程序时,通常需要一些编排函数执行和处理事件的方法。AWS 提供了两项有助于协调 Lambda 函数的重要服务:
-
用于编排工作流程的 AWS Step Functions
-
用于事件管理的 Amazon EventBridge 调度器 和 Amazon EventBridge
此外,您可以将 Step Functions 和 EventBridge 一起集成到应用程序中。例如,您可以使用 EventBridge 调度器在特定事件发生时触发 Step Functions 工作流程,或者配置 Step Functions 工作流程,在定义的执行点处将事件发布到 EventBridge 调度器。本节的以下主题将详细说明如何使用这些服务。
使用 Step Functions 编排工作流程
AWS Step Functions 是一项工作流程编排服务,可帮助将多个 Lambda 函数和其他 AWS 服务整合成结构化的工作流程。这些工作流程可以保持状态,使用复杂的重试机制处理错误,以及大规模处理数据。
Step Functions 提供两种类型的工作流程来满足不同的编排需求:
- 标准工作流
-
适用于需要精确执行一次语义的长期运行且可审计的工作流程。标准工作流最长可以运行一年,并提供详细的执行历史记录和支持可视化调试。标准工作流适用于订单履行、数据处理管道或多步骤分析作业等流程。
- 快速工作流
-
专为至少执行一次语义的高事件率、短历时的工作负载而设计。快速工作流最长可以运行五分钟,非常适合高容量事件处理、流数据转换或 IoT 数据摄取场景。与标准工作流相比具有更高的吞吐量和更低的成本。
注意
有关 Step Functions 工作流程类型的更多信息,请参阅选择 Step Functions 中的工作流程类型。
在这些工作流程中,Step Functions 为并行处理提供了两种类型的 Map 状态:
- 内联 Map
-
在父工作流程的执行历史记录中处理来自 JSON 数组的项目。内联 Map 最多支持 40 次并发迭代,适用于较小的数据集或需要在一次执行中进行所有处理的情况。有关更多信息,请参阅在内联模式下使用 Map 状态。
- 分布式 Map
-
通过迭代超过 256 KiB 的数据集或需要 40 多次并发迭代的数据集,支持处理大规模并行工作负载。分布式 Map 支持执行多达 10,000 个并行子工作流程,擅长处理存储在 Amazon S3 中的半结构化数据,例如 JSON 或 CSV 文件,这使其非常适合批处理和 ETL 操作。有关更多信息,请参阅在分布式模式下使用 Map 状态。
通过将这些工作流类型和 Map 状态相结合,Step Functions 提供了一个灵活而强大的工具集来编排复杂的无服务器应用程序,从小规模操作到大规模数据处理管道等。
要开始使用 Lambda 和 Step Functions,请参阅使用 Step Functions 编排 Lambda 函数。
使用 EventBridge 和 EventBridge 调度器管理事件
Amazon EventBridge 是一项事件总线服务,可帮助您构建事件驱动的架构。它在 AWS 服务、集成应用程序和软件即服务 (SaaS) 应用程序之间路由事件。EventBridge 调度器是一个无服务器调度器,支持从一个中央服务创建、运行和管理任务,使您能够使用 cron 和 rate 表达式计划调用 Lambda 函数,或者配置一次性调用。
Amazon EventBridge 和 EventBridge 调度器可帮助您使用 Lambda 构建事件驱动的架构。EventBridge 在 AWS 服务、集成应用程序和 SaaS 应用程序之间路由事件,而 EventBridge 调度器则提供了特定的计划功能,可定期或一次性调用 Lambda 函数。
这些服务为使用 Lambda 函数提供了多种重要功能:
-
使用 EventBridge 创建规则,将事件匹配并路由至 Lambda 函数
-
使用 EventBridge 调度器通过 cron 和 rate 表达式设置定期函数调用
-
配置在特定日期和时间进行一次性函数调用
-
为计划的调用定义灵活的时间段和重试策略
有关更多信息,请参阅 按计划调用 Lambda 函数。