全新 AWS Lambda Durable Functions——它们会取代 Step Functions 吗?

发布: (2025年12月15日 GMT+8 00:06)
6 min read
原文: Dev.to

Source: Dev.to

引言

无服务器领域刚刚在我们脚下发生了变化。随着 AWS Lambda Durable Functions 于 2025 年12月发布,亚马逊推出了一个自 FaaS(函数即服务)诞生以来开发者一直在期待的功能。

Durable Functions 让你能够在 Lambda 代码中使用熟悉的 await 语法编写有状态、长时间运行的工作流。你可以暂停执行数天、数周,甚至长达一年而无需为空闲计算付费,然后在本地状态保持完整的情况下继续运行。

可用性 – 当前仅在 us-east-2(俄亥俄) 区域独占提供,计划在 2026 年第二季度进行全球 rollout。

背景:Lambda 与 Step Functions

AWS Lambda 与 AWS Step Functions 长期以来一直是无服务器架构的两大支柱:

方面AWS LambdaAWS Step Functions
主要角色业务逻辑的原始计算编排与低代码工作流定义
典型使用编写实际执行任务的代码定义状态机(ASL),协调多个 Lambda 与其他服务
Step Functions 解决的历史痛点“Lambda 调用 Lambda” 反模式(脆弱、难调试、成本高)托管的状态跟踪、错误处理、重试

Step Functions 引入了先配置后代码的方式,并提供可视化编辑器,使非程序员或运维团队能够通过拖拽方式集成(S3 → DynamoDB → SQS 等),无需编写代码。

Step Functions 的局限性

  • 步骤之间无状态 – 必须传递大型 JSON 负载来保持上下文。
  • 先配置后代码的门槛 – 调试需要云端部署、执行运行、控制台日志检查以及迭代编辑 ASL JSON,导致反馈循环缓慢。

功能重叠

两项服务现在共享若干能力:

  • 等待零成本 – 暂停执行最长可达一年而不为空闲计算付费。
  • 内置弹性 – 自动错误处理,带指数退避和重试。
  • 状态持久化 – 工作流在等待或崩溃后能够在相同位置恢复。

人体工学与开发生命周期

AWS Lambda Durable Functions(代码优先)

  • 使用标准编程结构(iffortry/catch)。
  • 代码中等待的示例:
# Python example
await step.sleep('7 days')
  • 本地调试 – 使用 Jest、Pytest 或你喜欢的框架进行单元测试;模拟 durable 步骤;在本地设置断点。
  • 共享库,应用熟悉的软件工程模式,并可在笔记本电脑上运行完整的集成测试(使用临时 AWS 凭证)。

AWS Step Functions(配置优先)

  • 可视化可观测性 – 值班工程师可以在控制台查看状态机图,看到哪个状态失败,并直接检查输入/输出数据。
  • 零代码集成 – 将 AWS 服务粘合在一起(S3 → Transcribe → DynamoDB → SES),无需编写 SDK 调用。
  • 适用于主要是服务编排而非复杂业务逻辑的工作流。

价格对比

服务计费模型典型成本驱动因素
Step Functions(标准工作流)每 1 M 次状态转换 $25转换次数(例如循环)
Lambda Durable Functions请求数 + 计算时长代码执行期间的 CPU 时间

示例:高吞吐循环

工作流:循环 10,000 次处理小项。

  • Step Functions – 每次迭代 3 个状态(Task、Choice、Wait)→ 30,000 次状态转换。成本随转换次数线性增长。
  • Durable Functions – 只为循环的累计计算时间付费。等待几乎免费,使得该循环相较于成千上万次转换更为廉价。

示例:长等待 + 单一操作

工作流:等待 6 个月,然后发送一封邮件。

  • Step Functions – 仅几次转换 → 成本极低。
  • Durable Functions – 等待期间无计算,也同样廉价,管理开销最小。

何时选择哪种方案

视角推荐服务
开发者中心(代码复用、本地测试、复杂逻辑)AWS Lambda Durable Functions
运维/架构中心(可视化监控、低代码服务编排)AWS Step Functions

结论

AWS Lambda Durable Functions 将工作流编排引入代码层,提供强大的本地调试能力以及对计算密集型循环的成本优势。AWS Step Functions 仍然是实现可视化可观测性和零代码集成 AWS 服务的首选方案。

  • 如果你是开发者 – Durable Functions 很可能满足你的大多数需求。
  • 如果你是架构师或运维团队 – Step Functions 仍然提供有价值的可视化工具和对服务粘合工作流的简易性。

这两种工具将共存,各自服务于不断演进的无服务器生态系统中的不同使用场景。

Back to Blog

相关文章

阅读更多 »