Durable Task Scheduler ダッシュボードを使用してオーケストレーションをデバッグおよび管理する

Durable Task Scheduler ダッシュボードを使用すると、実行中のオーケストレーションの監視、実行履歴とアクティビティの入力/出力の検査、オーケストレーションのライフサイクルの管理 (一時停止、再開、終了) をすべてブラウザーから行うことができます。

ダッシュボードは、次の 2 つの環境で使用できます。

Environment URL 認証
ローカル エミュレーター http://localhost:8082 必要なし
Azure https://dashboard.durabletask.io/?endpoint=<SCHEDULER_ENDPOINT>&taskhub=<TASK_HUB_NAME> Durable Task データ共同作成者ロールが必要です。

エミュレーターの詳細については、 ローカル開発用のエミュレーターを参照してください。

この記事では、次の方法について説明します。

  • ダッシュボードにローカルまたはAzureでアクセスします。
  • Durable Task データ共同作成者ロールを開発者の ID に割り当てます。
  • オーケストレーションの状態を監視し、インスタンスをフィルター処理し、実行履歴を検査します。
  • オーケストレーションの管理 (一時停止、再開、終了、イベントをトリガーする)。

前提条件

開始する前に、次の手順を実行します。

ダッシュボードにローカルでアクセスする

Durable Task Scheduler エミュレーターを使用している場合は、次のダッシュボードを使用できます。

http://localhost:8082

ローカル開発に認証またはロールの割り当ては必要ありません。

ダッシュボード アクセス ロールの割り当て (Azure)

Azureホスト型スケジューラのダッシュボードにアクセスするには、Durable Task Data Contributor ロールを開発者 ID (電子メール) に割り当てます。

  1. 担当者を開発者 ID に設定します。

    assignee=$(az ad user show --id "someone@microsoft.com" --query "id" --output tsv)
    
  2. スコープを設定します。 スケジューラ スコープにアクセス権を付与すると、そのスケジューラ 内のすべての タスク ハブにアクセスできるようになります。

    タスク ハブ

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME/taskHubs/TASK_HUB_NAME"
    

    Scheduler

    scope="/subscriptions/SUBSCRIPTION_ID/resourceGroups/RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/SCHEDULER_NAME"
    
  3. アクセス権を付与します。 次のコマンドを実行して、ロールの割り当てを作成し、アクセス権を付与します。

    az role assignment create \
      --assignee "$assignee" \
      --role "Durable Task Data Contributor" \
      --scope "$scope"
    

    想定される出力

    次の出力例は、 スケジューラ レベルで Durable Task Data Contributor ロールが割り当てられた開発者 ID を示しています。

    {
      "condition": null,
      "conditionVersion": null,
      "createdBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "createdOn": "2024-12-20T01:36:45.022356+00:00",
      "delegatedManagedIdentityResourceId": null,
      "description": null,
      "id": "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME/providers/Microsoft.Authorization/roleAssignments/ROLE_ASSIGNMENT_ID",
      "name": "ROLE_ASSIGNMENT_ID",
      "principalId": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "principalName": "YOUR_EMAIL",
      "principalType": "User",
      "resourceGroup": "YOUR_RESOURCE_GROUP",
      "roleDefinitionId": "/subscriptions/YOUR_SUBSCRIPTION/providers/Microsoft.Authorization/roleDefinitions/ROLE_DEFINITION_ID",
      "roleDefinitionName": "Durable Task Data Contributor",
      "scope": "/subscriptions/YOUR_SUBSCRIPTION/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_DTS_NAME",
      "type": "Microsoft.Authorization/roleAssignments",
      "updatedBy": "YOUR_DEVELOPER_CREDENTIAL_ID",
      "updatedOn": "2024-12-20T01:36:45.022356+00:00"
    }
    
  4. アクセス権を付与したら、次のダッシュボードを開きます。

    https://dashboard.durabletask.io/?endpoint=<SCHEDULER_ENDPOINT>&taskhub=<TASK_HUB_NAME>
    

    <SCHEDULER_ENDPOINT>をスケジューラのエンドポイント (https://myscheduler.westus2.durabletask.io など) に置き換え、<TASK_HUB_NAME>をタスク ハブの名前に置き換えます。

    または、 https://dashboard.durabletask.io/ に移動し、接続フォームにスケジューラ エンドポイントとタスク ハブ名を入力します。

次の手順は、特定のタスク ハブを対象としたロールの割り当てを示しています。 スケジューラ 内のすべての タスク ハブにアクセスする必要がある場合は、スケジューラ レベルで割り当てを実行します。

  1. ポータルで Durable Task Scheduler リソースに移動します。

  2. タスク ハブ名をクリックします。

  3. 左側のメニューで [アクセス制御 (IAM)] を選択します。

  4. [ 追加] をクリックしてロールの割り当てを追加します。

    ポータルのAccess Control ペインにロールの割り当てを追加する画面。

  5. [永続タスク データ共同作成者] を検索して選択します。 [次へ] をクリックします。

    ポータルで Durable Task Data Contributor ロールの割り当てを選択するスクリーンショット。

  6. [ メンバー ] タブの [ アクセスの割り当て] で、[ ユーザー、グループ、またはサービス プリンシパル] を選択します。

  7. [メンバー] の場合は、[+ メンバーの選択] をクリックします。

  8. [ メンバーの選択 ] ウィンドウで、自分の名前または電子メールを検索します。

    ポータルでユーザー割り当てマネージド ID の種類を選択するスクリーンショット。

  9. メールを選び、[ 選択 ] ボタンをクリックします。

  10. [ 確認と割り当て ] をクリックしてロールの割り当てを完了します。

  11. ロールが割り当てられたら、タスク ハブ リソースの左側のメニューで [ 概要 ] をクリックし、上部の [要点 ] セクションにあるダッシュボードの URL に移動します。

オーケストレーションの進行状況と実行履歴を監視する

ダッシュボードを使用すると、オーケストレーションの進行状況を監視し、実行履歴を確認できます。 オーケストレーション リストは、次の条件を使用してフィルター処理できます。

  • インスタンス ID — 一意の ID で特定のオーケストレーションを検索します。
  • オーケストレーション名 - オーケストレーション の種類名でフィルター処理します。
  • 状態 — 実行時の状態 (実行中、完了、失敗、終了、保留中、中断) でフィルター処理します。
  • 作成された時間範囲 - 結果を時間枠に絞り込みます。

フィルター オプションを含むオーケストレーション履歴と状態を一覧表示するダッシュボードのスクリーンショット。

オーケストレーションの入力と出力を表示します。

オーケストレーション履歴と状態の入力と出力が一覧表示されているダッシュボードのスクリーンショット。

オーケストレーション実行の詳細ビュー

オーケストレーション インスタンスをドリルダウンして、実行の詳細とアクティビティの進行状況を表示できます。 このビューは、問題を診断したり、オーケストレーションの状態を把握したりするのに役立ちます。

次の図では、オーケストレーション実行の タイムライン ビューです。 この "ProcessDocument" オーケストレーションでは、"WriteDoc" アクティビティが再試行の間に 5 秒で 3 回 (失敗) 再試行されました。

オーケストレーションの実行タイムラインを示すダッシュボードのスクリーンショット。

オーケストレーション内のアクティビティの入力と出力を表示することもできます。

アクティビティの入力と出力を示すダッシュボードのスクリーンショット。

オーケストレーション実行シーケンスのその他のビュー

履歴ビューには、詳細なイベント シーケンス、タイムスタンプ、ペイロードが表示されます。

オーケストレーション インスタンスの詳細を示すダッシュボードのスクリーンショット。

シーケンス ビューには、イベント シーケンスを視覚化する別の方法があります。

オーケストレーション シーケンス ビューを示すダッシュボードのスクリーンショット。

オーケストレーション管理

ダッシュボードには、オンデマンドでオーケストレーションのライフサイクルを管理するための機能が含まれています。 使用可能なアクションは次のとおりです。

  • Suspend — 実行中のオーケストレーションを一時停止します。 メモリ内に残りますが、再開されるまでイベントの処理を停止します。
  • 再開 — 以前に中断されたオーケストレーションを続行します。
  • Terminate — 省略可能な理由文字列を使用してオーケストレーションを直ちに停止します。
  • イベントの発生 - 実行中または中断中のオーケストレーションに名前付き外部イベント (オプションの JSON ペイロードを含む) を送信します。

オーケストレーションを管理するための [中断]、[再開]、[終了]、[イベントの発生] ボタンを示すダッシュボードのスクリーンショット。

次のステップ

Durable Functions に対応する Durable Task Scheduler (永続タスク スケジューラー) の場合:

Durable Task SDK 用の永続タスク スケジューラーの場合: