Durable Functions に基づいてワークフローを設計する
Durable Functions を使用すると、実行時間の長いワークフローを一連のアクティビティとして調整することができます。 プロセス内の各ステップを関数の種類にマップし、各タスクをアクティビティにマップできます。 プロセスを自動化すると、手動で監視したり、タスクが完了していない場合にエスカレートしたりする心配が不要になります。
提案承認プロセスの自動化について検討を続けるうちに、プロセスのステップが時間内に完了せず、エスカレーションする必要があるケースについて考慮する必要が出てきます。 たとえば、特定の規模の提案についてマネージャーの承認が必要なときに、マネージャーの応答が遅い場合はどうなりますか。
エスカレーションのステップは、期限になるとタスクに沿って進むため、ビジネスに役立ちます。 タスクが完了したこと、忘れられていないことを確認できます。 エスカレーション手順には、リマインダーの送信だけでなく、管理階層の上位にいる個人にタスクを再割り当てすることなどもあります。
このユニットでは、Durable Functions に基づいて承認プロセス ワークフローを設計します。 次の演習では、この知識を応用して、Azure Durable Functions でアプリを作成します。
設計承認プロセスの説明
このワークフローは、承認を受けるためにプロジェクト設計が送信されたときから始まります。 提案は承認タスクとしてマネージャーに割り当てられます。 マネージャーは提案を承認または拒否します。 実際には、このイベントによっておそらく通知が生成されて提案作成者に送信され、承認/拒否の要求の結果が知らされるでしょう。 この例では、単にタスクの状態を approved
または rejected
に変更します。
ワークフローの手順は次のとおりです。
- プロジェクト設計が送信されます。
- 承認タスクはマネージャーに割り当てられ、マネージャーがプロジェクト設計提案を確認できるようになります。
- プロジェクト設計提案が拒否または承認されます。
- 承認タスクが事前に定義された制限時間内に完了しなかった場合は、エスカレーション タスクが割り当てられます。
次の画像は、オーケストレーションの 3 つの関数 (要求の承認、プロセスの承認、エスカレート関数) を示すワークフローの視覚表現です。
次の表は、ワークフローの手順が、Durable Functions ワークフローで使用する関数の種類にどのように対応するかを示しています。
ワークフロー関数 | Durable Functions の種類 |
---|---|
承認を受けるためにプロジェクト設計提案を送信する | クライアント関数 |
承認タスクを関連するスタッフ メンバーに割り当てる | オーケストレーション関数 |
承認タスク | アクティビティ関数 |
エスカレーション タスク | アクティビティ関数 |
オーケストレーション関数は、承認アクティビティが指定された時間内に返されない場合にエスカレーション アクティビティを開始するというワークフロー内のルールを管理します。
ワークフローに必要なものがわかったので、次のユニットでコードにそれを書いてみましょう。