你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

持久任务计划程序计费

Durable Task Scheduler 是一种托管后端服务,用于持久化编排状态。 它与连接到它的业务流程框架分开计费。 持久任务计划程序不直接收取 Durable Functions 或持久任务 SDK 的费用。 总成本有两个组成部分:

  • 持久任务计划程序 — 根据你选择的 SKU(专用消耗)计费
  • 计算资源:由托管应用程序的平台单独计费,无论是Azure Functions(适用于 Durable Functions)还是容器/VM 平台(适用于 Durable Task SDKs

下表一目了然地比较这两种定价模型。

专属 消耗
计费模型 每个容量单位的每月固定成本(CU) 按触发的操作付费
最大吞吐量 每个 CU 每秒 2,000 次操作(最多 3 个 CU) 500 个操作/秒
数据保留 最多 90 天 最多 30 天
高可用性 支持(需要 3 个 CU) 不可用
最适用于 具有可预测规模的生产工作负载 开发/测试和变量工作负荷

有关当前定价,请参阅 持久任务调度器定价页

什么是动作?

操作是持久任务计划程序发送到你的应用程序的消息,触发业务流程协调程序、活动或实体函数的执行。 操作包括:

  • 启动业务流程或子业务流程
  • 启动活动
  • 完成计时器
  • 触发外部事件
  • 执行实体操作
  • 暂停、恢复或终止编排
  • 处理活动、实体调用、实体锁定或子业务流程的结果

下图显示如何计算业务流程中的操作。

显示如何在持久任务计划程序业务流程中计算计费操作数的关系图。

示例

调用三个不同活动的业务流程会产生以下操作:

Durable Task Scheduler 编排代码的屏幕截图,其中显示了三个活动函数调用及其相应的操作细分。

在此示例中,Durable Task Scheduler 按如下所示处理每个操作:

  • 业务流程协调程序开始 (RunOrchestrator) 使用一个操作
  • 活动 1 ((nameof(SayHello), "Tokyo")) 使用两个动作:
    • 计划活动
    • 处理结果
  • 活动 2 ((nameof(SayHello), "Seattle")) 使用两个操作:
    • 计划活动
    • 处理结果
  • 活动 3 ((nameof(SayHello), "London")) 使用两个操作:
    • 计划活动
    • 处理结果

专用 SKU 定价和容量

专用 SKU 通过预分配的容量单位(OU)提供可预测的性能。 每个部署最多支持三个 CU。 你可以在每个订阅的每个区域中通过专用 SKU 最多创建 25 个计划程序和 25 个任务中心。 如需更多配额,联系客户支持

主要功能

功能 说明
基本成本 固定每个 CU 的每月成本(区域定价)。 不是“按动作”计费。
性能 每个 CU 每秒最多支持 2,000 个操作和 50 GB 的编排数据存储。
业务流程数据保留 最多 90 天。
自定义缩放 将 CU 配置为符合您的工作负荷需求。 每个部署需要一个 CU。
高可用性 通过部署多个CU,实现高可用性。 至少需要三个 CU。

注释

对于高可用性部署,请配置三个 CU。 Single-CU 部署不提供冗余。

计算专用 SKU 的容量单位

示例 1

你有一个包含五个活动的业务流程,加上错误处理,每个业务流程平均 12 个操作(业务流程协调程序和活动调用)。 接下来按照每个月运行 2000 万个业务流程来计算。

Step 计算 结果
每月行动 20,000,000 × 12 240,000,000 动作
每秒动作次数 240,000,000 ÷ 2,628,000 (一个月的秒数) 约 91 次操作/秒
所需的 CU 91 ÷ 2,000 需要 CU:0.046 → 1 CU 足够

示例 2

一家大型企业每月运行 5 亿个复杂操作编排,每个编排平均有 15 个动作(多个活动由协调器协调)。

Step 计算 结果
每月行动 5 亿× 15 75 亿次操作
每秒动作次数 75亿÷ 2,628,000 ≈ 每秒 2,854 个动作
所需的 CU 2,854 ÷ 2,000 需要 CU:1.43 → 2 个 CU 足够

示例 3

软件即服务(SaaS)平台每月支持 8 亿个业务流程,每个业务流程平均有 15 个作(用户交互、后台处理和外部 API 调用)。

Step 计算 结果
每月行动 8亿× 15 120 亿次操作
每秒动作次数 120亿÷ 2,628,000 ≈ 4,571 个操作/秒
所需的 CU 4,571 ÷ 2,000 需要 计算单位:2.29 → 3 个 计算单位 足够

消耗 SKU

消耗型 SKU 提供按用量付费模型,非常适合波动性工作负载和开发方案。

你可以在每个订阅的每个区域中通过消耗 SKU 最多创建 10 个计划程序和 5 个任务中心。 如需更多配额,联系客户支持

主要功能

功能 说明
按使用付费 仅支付已执行操作的费用。 无需前期成本、最低承诺或基本费用。
性能 最多支持每秒 500 项操作。
数据保留期 最多保留 30 天的数据。

示例 1

开发团队正在测试简单的业务流程,每个业务流程都有三个操作(使用 “Hello City”模式),每月运行 10,000 个业务流程。

Step 计算 结果
每月行动 10,000 × 3 30,000 个动作

示例 2

电子商务应用程序在促销销售活动期间体验动态扩展。 它使用一个总共有七个操作的业务流程,每月运行约 20,000 次。

Step 计算 结果
每月行动 20,000 × 7 140,000 个动作

计算成本

除了持久任务计划程序,还需为托管应用程序的计算平台付费。 计算成本取决于使用的编排框架。

Durable Functions

Durable Functions在 Azure Functions 上运行。 计算成本取决于所选Azure Functions托管计划:

托管计划 说明
消耗计划 您只需为函数实际运行的时间付费。 包括自动伸缩和每月免费额度。
灵活消费计划 事件驱动的扩展与虚拟网络集成。 为请求处理期间的实例付费,加上始终就绪的基线。
高级计划 预预热实例以避免冷启动,具有虚拟网络连接。 按 vCPU 和内存秒计费。
专用(应用服务)计划 在应用服务计划内的专用虚拟机上运行函数。 最适合你有未充分利用且已运行其他应用服务实例的 VM 的情况。

有关 Durable Functions 的详细计费行为(包括重播计费、等待、HTTP 轮询),请参阅Durable Functions 计费。 有关Azure Functions定价,请参阅 Azure Functions 定价

持久任务软件开发工具包

Durable Task SDK 与平台无关,可在不同的计算平台上运行:

计算平台 说明
Azure 容器应用 使用基于消耗或专用定价的无服务器容器托管。 针对 vCPU 和内存使用情况计费。
Azure Kubernetes 服务 (AKS) 托管 Kubernetes 群集,您需要为群集中的虚拟机(节点)付费。
Azure 应用服务 完全托管的平台,用于托管具有不同定价层的 Web 应用程序,具体取决于功能和规模。

有关详细的定价信息,请参阅每个计算服务的计费文档: