Durable Functions
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
概要
概要
Durable Functions は、Azure Functions と Azure WebJobs の拡張機能であり、サーバーレス環境でステートフル関数を記述できます。 この拡張機能が管理するのは、状態、チェックポイント、および再起動です。
この拡張機能により、オーケストレーター関数と呼ばれる新しいタイプの関数でステートフル ワークフローを定義できます。 次に、オーケストレーター関数の利点をいくつか示します。
- コードでワークフローを定義します。 JSON スキーマやデザイナーは必要ありません。
- 他の関数を同期的および非同期的に呼び出すことができます。 呼び出された関数からの出力は、ローカル変数に保存できます。
- 関数が待機するたびに、進行状況に自動的にチェックポイントを設定します。 プロセスがリサイクルされたり、VM が再起動したりしても、ローカルの状態が失われることはありません。
Durable Functions の主なユース ケースは、サーバーレス アプリケーションにおける複雑でステートフルな調整の問題を単純化することです。
先に進む前に、Microsoft Azure の公式ドキュメント ポータルで、このトピックを読んでおくことを強くお勧めします。
開始方法
開始方法
以下の例は、Durable Function と HttpTrigger を組み合わせて使用する方法を示したものです。 以下の関数は POST ステートメントを介して呼び出され、DurableOrchestrationClient によって実行される関数の名前がルートの一部として渡されます。 重要: 以下のすべての関数は、同じ Function App の一部である必要があります。
たとえば、以下の JSON を http://myDurableFunctionUrl/api/orchestrators/LifeCycleSequence に送信すると、指定された ID に関連付けられているアセット エンティティがアーカイブされます。 渡すことができるその他のステータスは、「Approved」または「UnderReview」です。 指定する ID は、前の関数 (特定のアセットのセットをクエリし、その結果を HttpTrigger に渡す関数) の結果にすることもできます。
DurableOrchestrationClient が新しい OrchestrationTrigger、この場合は LifeCycleSequence を開始します。 POST 要求に伴って発生する要求のペイロードは、DurableOrchestrationContext を介して OrchestrationTrigger に渡されます。 以下の例は、DurableOrchestrationContext を使用して、アクティビティと呼ばれる複数の関数をチェーン化する方法を示したものです。
例で使用されている 2 つのアクティビティは、GetLifeCycleStatusId と SetLifeCycleStatus です。
GetLifeCycleStatusId は 1 回だけ実行され、指定されたステータスに関連付けられているエンティティ ID をフェッチするために使用されます。 この ID は、最終的なライフサイクル ステータスをアセット レベルで設定するために必要です。
SetLifeCycleStatus は、アセット ID ごとに実行する必要があります。アセット ID は、JSON ペイロードで ID の配列を介して提供されます。 このプロセスを高速化するために、SetLifeCycleStatus 関数は複数のインスタンスを並行して実行できます。 Sitecore Content Hub API のオーバーロードを回避するために、並列タスクの実行はバッチに分割することをお勧めします。