管理 Lambda 工作流程和事件
使用 Lambda 构建无服务器应用程序时,通常需要一些编排函数执行和处理事件的方法。Amazon 提供了几条协调 Lambda 函数的方法:
-
Lambda 持久性函数,用于在 Lambda 中进行代码优先的工作流编排
-
用于跨多个服务进行可视化工作流编排的 Amazon Step Functions
-
用于事件驱动型架构和计划的 Amazon EventBridge 调度器和 Amazon EventBridge
您也可以将这些方法整合在一起。例如,您可以使用 EventBridge 调度器在特定事件发生时触发持久性函数 Step Functions 工作流程,或者配置工作流程,在定义的执行点处将事件发布到 EventBridge 调度器。本节的以下主题将详细说明如何使用这些编排选项。
具有持久性函数的代码优先编排
Lambda 持久性函数提供了一种代码优先的工作流程编排方法,使您能够直接在 Lambda 函数中构建有状态、长时间运行的工作流程。与外部编排服务不同,持久性函数将您的工作流程逻辑保留在代码中,以便可以更轻松地与业务逻辑一起进行版本控制、测试和维护。
持久性函数在以下情况下尤为适用:
-
使用标准编程语言:使用熟悉的编程语言(如 JavaScript 和 Python)定义工作流
-
长时间运行的进程:执行可运行最长一年的工作流程,远远超过标准 Lambda 函数的 15 分钟限制
-
简化开发:将工作流程逻辑和业务逻辑保存在同一个代码库中,以便于维护和测试
-
经济高效的等待:在等待状态期间暂停执行,同时不消耗计算资源
-
内置状态管理:无需外部存储配置即可实现自动检查点存储和状态持久化功能
有关在持久性函数和 Step Functions 之间进行选择的帮助,请参阅持久性函数或 Step Functions。
有关持久性函数的更多信息,请参阅 Lambda 持久性函数。
使用 Step Functions 编排工作流程
Amazon Step Functions 是一项工作流程编排服务,可帮助将多个 Lambda 函数和其他 Amazon 服务整合成结构化的工作流程。这些工作流程可以保持状态,使用复杂的重试机制处理错误,以及大规模处理数据。
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 是一项事件总线服务,可帮助您构建事件驱动的架构。它在 Amazon 服务、集成应用程序和软件即服务(SaaS)应用程序之间路由事件。EventBridge 调度器是一个无服务器调度器,支持从一个中央服务创建、运行和管理任务,使您能够使用 cron 和 rate 表达式计划调用 Lambda 函数,或者配置一次性调用。
Amazon EventBridge 和 EventBridge 调度器可帮助您使用 Lambda 构建事件驱动的架构。EventBridge 在 Amazon 服务、集成应用程序和 SaaS 应用程序之间路由事件,而 EventBridge 调度器则提供了特定的计划功能,可定期或一次性调用 Lambda 函数。
这些服务为使用 Lambda 函数提供了多种重要功能:
-
使用 EventBridge 创建规则,将事件匹配并路由至 Lambda 函数
-
使用 EventBridge 调度器通过 cron 和 rate 表达式设置定期函数调用
-
配置在特定日期和时间进行一次性函数调用
-
为计划的调用定义灵活的时间段和重试策略
有关更多信息,请参阅 按计划调用 Lambda 函数。