配置 Vercel Workflows 中运行状态的存储位置

配置 Vercel Workflows 中运行状态的存储位置

💡 原文英文,约200词,阅读约需1分钟。
📝

内容提要

Vercel Workflows 现支持区域化运行,将每次运行的状态、队列和输出流保存在单一主区域(默认或指定区域),确保代理全程靠近用户,如悉尼用户由悉尼执行。区域故障时自动切换至最近区域。更新至 workflow@5.0.0-beta.33 或更高版本,通过 start() 的 region 选项指定区域,现有工作流无需迁移即可自动启用。

🔎

延伸解读

区域化运行的实际意义

将运行状态、队列和输出流保存在单一主区域,意味着代理的整个执行循环都靠近用户。例如,悉尼用户触发的运行会在悉尼执行并输出,减少跨区域延迟。对于需要实时交互的代理,这种就近性可以显著提升响应速度。

故障转移与可用性

当主区域发生故障时,工作流会自动切换到最近区域。这提供了高可用性,但需要注意,故障转移可能带来短暂的延迟或状态同步问题。对于关键任务,建议了解故障转移的具体机制和恢复时间。

升级与配置要点

要使用区域化运行,需将 SDK 升级到 workflow@5.0.0-beta.33 或更高版本。通过 start() 的 region 选项可指定区域,如 'sfo1'。现有工作流无需迁移,下次运行自动启用。但需注意,这是 beta 版本,生产环境使用需谨慎。

Q&A

Vercel Workflows 现在如何存储每次运行的状态?

Vercel Workflows 现在将每次运行的状态、队列调度和输出流存储在单一主区域中,默认是运行开始的区域,也可以指定其他区域。

如何为 Vercel Workflows 指定运行区域?

在 start() 函数中传入 region 选项,例如 start(myWorkflow, [input], { region: 'sfo1' }),即可将运行数据存储在指定区域(如 sfo1)并从该区域调度队列消息。

Vercel Workflows 的区域化存储对用户有什么好处?

区域化存储确保代理的整个执行循环靠近用户,例如为悉尼用户服务的代理会在悉尼执行、检查点进度并流式输出,从而降低延迟,提升用户体验。

如果 Vercel Workflows 的区域发生故障,会发生什么?

在区域故障期间,工作流流量会自动故障转移到最近的其他区域,确保服务可用性。

如何升级到支持区域化存储的 Vercel Workflows 版本?

需要将 Workflow SDK 升级到 workflow@5.0.0-beta.33 或更高版本,可以使用命令 pnpm i workflow@beta 安装最新的 beta 版本。

现有 Vercel Workflows 需要迁移才能使用区域化存储吗?

不需要。现有工作流会在下次运行时自动启用区域化存储,无需迁移或修改代码。

🏷️

标签

➡️

继续阅读