Azure Functions Consumption プランを使用すると、各オーケストレーター関数の再生は個別の課金対象の呼び出しとしてカウントされ、オーケストレーションの状態を保持するストレージ プロバイダーに対しても課金されます。 この記事では、Durable Functionsの支出を理解して最適化できるように、特定のコスト領域を分解します。
この記事の内容:
- オーケストレーター関数のリプレイ課金 - 従量課金プランでリプレイによって料金が発生する方法
- 待機中およびリソースの一時停止時に課金が停止される - なぜ待機中に課金されないのか
- HTTP ポーリングとリプレイ料金 - 内部ポーリングが課金に与える影響
- Durable Task Scheduler トランザクション - 特定用途向けバックエンド料金
- Azure Storage トランザクション - ストレージ アカウントのコスト要因
オーケストレーター関数の再生課金
オーケストレーター関数 は、オーケストレーションの有効期間中に複数回再生される場合があります。 Azure Functions ランタイムは、各再生を個別の関数呼び出しとして表示します。 このため、Azure Functions従量課金プランを使用すると、オーケストレーター関数の再生ごとに課金されます。 他のプランの種類では、オーケストレーター関数の再生には課金されません。
待機中と利回り中に課金が停止する
オーケストレーター関数が非同期タスクの完了を待機すると、ランタイムは特定の関数の呼び出しが完了したと見なします。 オーケストレーター関数の課金は、その時点で止まります。 次のオーケストレーター関数の再生まで再開されません。 オーケストレーター関数の待機または一時停止に費やされた時間に対して課金されることはありません。
注
両方の関数が同時に実行 (および課金) される関数間の直接呼び出しとは異なり、オーケストレーター関数は、この 二重課金 の問題を回避します。 オーケストレーター関数では、アクティビティ関数 (またはサブオーケストレーション) の結果を待機している間、オーケストレーター関数の課金が停止します。
HTTP ポーリングと再生の料金
オーケストレーター関数は、外部エンドポイントに対して実行時間の長い HTTP 呼び出しを行うことができます。 "HTTP 呼び出し" API は、非同期 202 パターンに従いながら、HTTP エンドポイントを内部的にポーリングする場合があります。
内部 HTTP ポーリング自体では、追加料金は発生しません。 ただし、各ポーリングによってオーケストレーター関数が再生される可能性があり、それらのリプレイは従量課金プランの標準レートで課金されます。
耐障害性タスクスケジューラートランザクション
Durable Task Scheduler は、任意の Functions ホスティング プランで使用できる Durable Task 用の専用のマネージド バックエンドです。 アクションに基づいて 2 つの価格モデルを提供 します。
アクションは、Durable Task Scheduler によってアプリケーションにディスパッチされ、オーケストレーター、アクティビティ、またはエンティティ関数の実行をトリガーするメッセージです。 アクションには、オーケストレーションの開始、アクティビティのスケジュール設定、タイマーの完了、結果の処理が含まれます。
| SKU | 説明 |
|---|---|
| 専用 | 容量ユニット (CU) あたりの固定月額コスト。 各 CU では、1 秒あたり最大 2,000 個のアクションと 50 GB のオーケストレーション データ ストレージがサポートされます。 |
| 従量課金 (プレビュー) | ディスパッチされたアクションに対してのみ支払う従量課金モデル。 変動するワークロードや開発シナリオに最適です。 |
価格情報、SKU の比較、容量計画の例の詳細については、「 Durable Task Scheduler の課金」を参照してください。
Azure Storage のトランザクション
Azure Storage プロバイダーを使用する場合、Durable Functionsは状態を永続的に保ち、メッセージを処理し、BLOB リースを使用してパーティションを管理できます。 このストレージ アカウントを所有しているため、トランザクション コストは Azure サブスクリプションに課金されます。
Azure Storageコストには、いくつかの要因が関係しています。 関数アプリ インスタンスとスケール コントローラーによるキュー ポーリングでは、通常、ほとんどのストレージ トランザクションが生成されます。 その他の要因は次のとおりです。
- パーティション管理に対応する BLOB リース操作
- 関数間でのタスク ハブ リソースの共有
Azure Storageコストとキュー ポーリング動作の詳細については、「Azure Storage プロバイダー」を参照してください。
ヒント
さまざまなストレージ プロバイダーのコスト プロファイル、機能、トレードオフを比較するには、「Durable Functions ストレージ プロバイダーを参照してください。