管理 Lambda 工作流程和事件 - AWS Lambda

管理 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 函数