持久性函数或 Step Functions - AWS Lambda

持久性函数或 Step Functions

Lambda 持久性函数和 AWS Step Functions 都能够实现可靠的工作流编排,并具有自动状态管理和故障恢复功能。它们服务于不同的开发人员偏好和架构模式。持久性函数针对 Lambda 中的应用程序开发进行了优化,而 Step Functions 则专为跨 AWS 服务的工作流编排而构建。

何时使用持久性函数

在以下情况下使用持久性函数:

  • 您的团队更喜欢使用标准编程语言和熟悉的开发工具

  • 您的应用程序逻辑主要在 Lambda 函数中

  • 您想要精细控制代码中的执行状态

  • 您正在构建以 Lambda 为中心的应用程序,工作流和业务逻辑紧密耦合

  • 您想要快速迭代,而不在代码和可视化/JSON 设计器之间切换

何时使用 Step Functions

在以下情况下使用 Step Functions:

  • 您需要可视化工作流表示来实现跨团队可见性

  • 您正在编排多个 AWS 服务,想要在没有自定义 SDK 代码的情况下进行本机集成

  • 您需要零维护基础设施(无修补、运行时更新)

  • 非技术利益相关者需要了解和验证工作流逻辑

决策框架

使用下面的问题确定哪项服务适合您的使用案例:

  • 您的主要关注点是什么? Lambda 中的应用程序开发 → 持久性函数。跨 AWS 的工作流编排 → Step Functions。

  • 您的首选编程模型是什么? 标准编程语言 → 持久性函数。基于图形的 DSL 或可视化设计器 → Step Functions。

  • 涉及多少项 AWS 服务? 主要是 Lambda → 持久性函数。多项 AWS 服务 → Step Functions。

  • 您使用什么开发工具? Lambda 开发人员体验、带有 LLM 代理的 IDE、编程语言特定的单元测试框架、AWS SAM、AWS CDK、AWS Toolkit → 持久性函数。可视化工作流生成器,AWS CDK 用于建模工作流 → Step Functions。

  • 谁管理基础设施? 想要在 Lambda 中实现灵活性 → 持久性函数。想要完全托管、零维护 → Step Functions。

功能对比

下表比较了 Step Functions 和 Lambda 持久性函数之间的主要功能:

功能 AWS Step Functions Lambda 持久性函数
主要关注点 跨 AWS 的工作流编排 Lambda 中的应用程序开发
服务类型 独立的专用工作流服务 在 Lambda 内运行
编程模型 基于图形的 Amazon States Language DSL 或 AWS CDK 标准编程语言(JavaScript/TypeScript、Python)
开发工具 控制台/AWS Toolkit IDE 扩展中的可视化生成器,AWS CDK IDE 和 LLM 代理中的 Lambda DX、单元测试框架、AWS SAM、AWS Toolkit IDE 扩展
集成 220 多项 AWS 服务,16000 个 API Lambda 事件驱动编程模型扩展(事件源)
管理 完全托管、运行时不可知、零维护(无修补、运行时更新) 在 Lambda 环境中进行管理
适用于 业务流程和 IT 自动化、数据处理、AI 工作流 分布式事务、有状态应用程序逻辑、函数编排、数据处理、AI 工作流

混合架构

许多应用程序都能从同时使用这两项服务中受益。一种常见模式是在 Lambda 中对应用程序级逻辑使用持久性函数,而 Step Functions 在 Lambda 函数之外的多个 AWS 服务之间协调高级工作流。

迁移注意事项

从简单入手,日益复杂:对于以 Lambda 为中心的工作流从持久性函数开始。当您需要多服务编排或可视化工作流设计时,请添加 Step Functions。

现有 Step Functions 用户:对已建立的跨服务工作流保留 Step Functions。对于需要可靠性的新 Lambda 应用程序逻辑,请考虑使用持久性函数。