Durable Task Scheduler 是一种托管后端服务,用于持久化编排状态。 它的计费与连接到它的编排框架是分开的。 持久化任务调度程序不会直接为 Durable Functions 或 Durable Task SDK 收费。 总成本有两个组成部分:
- 持久任务计划程序 - 根据所选 SKU 计费(专用 或 消耗)
- 计算资源:由托管应用程序的平台单独计费,无论是Azure Functions(适用于 Durable Functions)还是容器/VM 平台(适用于 Durable Task SDKs)
持久任务计划程序的定价
Durable Task Scheduler 是一种专用构建的后端即服务,用于持久保存 Durable Task SDK 应用程序的业务流程状态。 Durable Task Scheduler 提供两种定价模型,以满足不同的服务要求、使用模式和首选计费模型:
什么是动作?
操作是由 Durable 任务调度器调度给应用程序的消息,用于触发协调器函数、活动或实体函数的执行。 操作包括:
- 启动编排或子编排
- 启动活动
- 完成计时器
- 触发外部事件
- 执行实体操作
- 暂停、恢复或结束编排
- 处理活动、实体调用、实体锁定或子业务流程的结果
下图显示了如何计算您的编排中的操作。
示例
调用三个不同活动的编排操作会产生以下操作:
在此示例中,Durable Task Scheduler 按如下所示处理每个操作:
- Orchestrator start (
RunOrchestrator) 使用一个动作 - 活动 1 (
(nameof(SayHello), "Tokyo")) 使用两个动作:- 计划活动
- 处理结果
- 活动 2 (
(nameof(SayHello), "Seattle")) 使用两个操作:- 计划活动
- 处理结果
- 活动 3 (
(nameof(SayHello), "London")) 使用两个操作:- 计划活动
- 处理结果
专用 SKU
专用 SKU 通过预先分配的容量单位(OU)提供性能和定价。 最多购买三个 OU。
目前,当您使用专用 SKU 时,每个订阅在每个区域内最多可拥有 25 个计划程序和 25 个任务中心。 如需更多配额,请联系支持团队。
主要功能
| 功能 | 说明 |
|---|---|
| 基本成本 | 固定每个 CU 的每月成本(区域定价)。 不是“按动作”计费。 |
| 性能 | 每个 CU 每秒最多支持 2,000 个操作和 50 GB 的编排数据存储。 |
| 业务流程数据保留 | 最多 90 天。 |
| 自定义缩放 | 将 CU 配置为符合您的工作负荷需求。 每个部署需要一个 CU。 |
| 高可用性 | 通过部署多个CU,实现高可用性。 至少需要三个 CU。 |
计算专用 SKU 的容量单位
示例 1
你有一个包含五个活动的编排,外加错误处理,每个编排(协调程序和活动调用)平均含有12个动作。 接下来按照每个月运行 2000 万个业务流程来计算。
| 活动 | 计算 | 结果 |
|---|---|---|
| 每月行动 | 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 个动作(多个活动由协调器协调)。
| 活动 | 计算 | 结果 |
|---|---|---|
| 每月行动 | 5 亿× 15 | 7.5亿行动 |
| 每秒动作次数 | 75亿÷ 2,628,000 | ≈ 每秒 2,854 个动作 |
| 所需的 CU | 2,854 ÷ 2,000 | 需要 CUs:1.43 → 2 个 CUs 足够 |
示例 3
软件即服务(SaaS)平台每月支持 8 亿个业务流程,每个业务流程平均有 15 个作(用户交互、后台处理和外部 API 调用)。
| 活动 | 计算 | 结果 |
|---|---|---|
| 每月行动 | 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 × 3 | 30,000 个动作 |
示例 2
电子商务应用程序在促销销售活动期间体验动态扩展。 它使用包含七个动作的编排,这种编排每月运行约 20,000 次。
| 活动 | 计算 | 结果 |
|---|---|---|
| 每月行动 | 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 Service (AKS) | 托管 Kubernetes 群集,您需要为群集中的虚拟机(节点)付费。 |
| Azure 应用服务 | 完全托管的平台,用于托管具有不同定价层的 Web 应用程序,具体取决于功能和规模。 |
有关详细的定价信息,请参阅每个计算服务的计费文档: