使用 Azure Functions Consumption 计划时,每个协调器函数的重播每次计数为单独的可计费调用,还需要支付用于持久化协调状态的存储提供程序的费用。 本文细分了这些特定的成本领域,以便您可以了解和优化您的“Durable Functions”支出。
本文内容:
- Orchestrator 函数重播计费 - 重播如何在消耗计划上生成费用
- 等待和yield期间停止计费 - 为什么在等待时不收费
- HTTP 轮询和重播费用 - 内部轮询如何影响计费
- 持久任务计划程序事务 - 为特定用途构建的后端的定价
- Azure 存储 事务 - 存储帐户成本驱动因素
Orchestrator 函数重播计费
业务流程协调程序函数 可能会在业务流程的整个生命周期内重播多次。 Azure Functions运行时将每个重播视为不同的函数调用。 因此,使用 Azure Functions 消费计划时,会为每次重播协调器函数付费。 其他计划类型不收取编排函数重播费用。
计费在 await 和 yield 期间停止
当业务流程协调程序函数等待异步任务完成时,运行时会认为该特定函数调用已完成。 协调器函数的计费在此时停止。 在下一个协调器函数重播之前,它不会恢复。 在协调器函数中等待或执行时不会产生任何费用。
注意
与同时运行和计费的直接函数调用不同,协调程序函数避免出现这种 双重计费 问题。 协调器函数在等待活动函数或子协调程序的结果时将停止计费。
HTTP 轮询和重播费用
编排功能可以对外部终结点执行长时间的 HTTP 调用。 “调用 HTTP”API 可能会在内部轮询 HTTP 终结点,同时遵循异步 202 模式。
内部 HTTP 轮询本身不会产生额外的费用。 但是,每个轮询都可能导致协调器函数重播,而这些重播将按照消耗计划的标准费率计费。
持久任务调度器事务
Durable Task 计划程序是 Durable Task 的专用托管后端,可用于任何 Functions 托管计划。 它基于 操作提供两种定价模型。
操作是由 Durable Task Scheduler 调度给应用程序的消息,用于触发协调器、活动或实体功能的执行。 操作包括启动编排、安排任务、结束计时器和处理结果。
| SKU | Description |
|---|---|
| 专用 | 每个容量单位的固定月成本(CU)。 每个 CU 每秒最多支持 2,000 个操作和 50 GB 的编排数据存储。 |
| 消耗(预览版) | 只需为已执行的操作付费的按使用付费的模型。 非常适合可变工作负载和开发场景。 |
有关详细的定价信息、SKU 比较和容量规划示例,请参阅 Durable Task Scheduler 计费。
Azure 存储 事务
使用 Azure 存储 提供程序时,Durable Functions可以通过 blob 租约保留状态持久、处理消息和管理分区。 由于你拥有此存储帐户,因此任何事务费用都计入Azure订阅。
几个因素影响 Azure 存储 的成本。 按函数应用实例和缩放控制器进行的队列轮询通常生成最多的存储事务。 其他因素包括:
- 用于分区管理的 Blob 租约操作
- 任务中心的跨函数资源共享
有关 Azure 存储成本和队列轮询行为的详细信息,请参阅 Azure 存储提供程序。
小窍门
若要比较不同存储提供程序的成本结构、功能和权衡,请参阅Durable Functions存储提供程序。