Durable Task Scheduler を使用した開発

Durable Task Scheduler は、すぐに使用する監視ダッシュボードを備えた Durable Task のパフォーマンスが高く、フル マネージドのバックエンド プロバイダーです。 Azureには、Durable Task Scheduler と連携してアプリをビルドする 2 つの開発者向けオーケストレーション フレームワーク (Durable Task SDK と Durable Functions) が用意されています。

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

  • Durable Task Scheduler エミュレーターを実行する
  • スケジューラとタスク ハブに対して CRUD 操作を実行します。

Durable Task Scheduler の機能サポートされているリージョンプランの詳細について説明します。

Durable Task Scheduler エミュレーター

Durable Task Scheduler エミュレーターは、現在 Docker イメージとしてのみ使用できます。

  1. エミュレーターを含む Docker イメージをプルします。

    docker pull mcr.microsoft.com/dts/dts-emulator:latest
    
  2. エミュレーターを実行します。

    docker run -itP mcr.microsoft.com/dts/dts-emulator:latest
    

    このコマンドは、 defaultという名前の 1 つのタスク ハブを公開します。 複数のタスク ハブが必要な場合は、次のコマンドのように、コンテナーの環境変数 DTS_TASK_HUB_NAMES をタスク ハブ名のコンマ区切りのリストに設定できます。

    docker run -itP -e DTS_TASK_HUB_NAMES=taskhub1,taskhub2,taskhub3 mcr.microsoft.com/dts/dts-emulator:latest
    

前提条件

CLI を設定する

  1. Azureにサインインし、最新の CLI バージョンがあることを確認します。

    az login
    az upgrade
    
  2. Durable Task Scheduler CLI 拡張機能をインストールします。

    az extension add --name durabletask
    
  3. Durable Task Scheduler CLI 拡張機能を既にインストールしている場合は、最新バージョンにアップグレードします。

    az extension update --name durabletask
    
  4. インストールされているバージョンを確認します。

    az extension show --name durabletask
    

az durabletask コマンドの詳細を確認します。

スケジューラとタスク ハブを作成する

  1. リソース グループを作成する。

    az group create --name YOUR_RESOURCE_GROUP --location LOCATION
    
  2. durabletask CLI 拡張機能を使用して、スケジューラを作成します。

    az durabletask scheduler create --name "YOUR_SCHEDULER" --resource-group "YOUR_RESOURCE_GROUP" --location "LOCATION" --ip-allowlist "[0.0.0.0/0]" --sku-name "dedicated" --sku-capacity "1"
    

    作成プロセスが完了するまでに最大 15 分かかる場合があります。

    アウトプット

    {
        "id": "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_SCHEDULER",
        "location": "northcentralus",
        "name": "YOUR_SCHEDULER",
        "properties": {
            "endpoint": "https://YOUR_SCHEDULER.northcentralus.durabletask.io",
            "ipAllowlist": [
                "0.0.0.0/0"
            ],
            "provisioningState": "Succeeded",
            "sku": {
                "capacity": 1,
                "name": "Dedicated",
                "redundancyState": "None"
            }
        },
        "resourceGroup": "YOUR_RESOURCE_GROUP",
        "systemData": {
            "createdAt": "2025-01-06T21:22:59Z",
            "createdBy": "YOUR_EMAIL@example.com",
            "createdByType": "User",
            "lastModifiedAt": "2025-01-06T21:22:59Z",
            "lastModifiedBy": "YOUR_EMAIL@example.com",
            "lastModifiedByType": "User"
        },
        "tags": {}
    }
    
  3. タスク ハブを作成します。

    az durabletask taskhub create --resource-group YOUR_RESOURCE_GROUP --scheduler-name YOUR_SCHEDULER --name YOUR_TASKHUB
    

    アウトプット

    {
      "id": "/subscriptions/YOUR_SUBSCRIPTION_ID/resourceGroups/YOUR_RESOURCE_GROUP/providers/Microsoft.DurableTask/schedulers/YOUR_SCHEDULERS/taskHubs/YOUR_TASKHUB",
      "name": "YOUR_TASKHUB",
      "properties": {
        "provisioningState": "Succeeded"
      },
      "resourceGroup": "YOUR_RESOURCE_GROUP",
      "systemData": {
        "createdAt": "2024-09-18T22:13:56.5467094Z",
        "createdBy": "OBJECT_ID",
        "createdByType": "User",
        "lastModifiedAt": "2024-09-18T22:13:56.5467094Z",
        "lastModifiedBy": "OBJECT_ID",
        "lastModifiedByType": "User"
      },
      "type": "microsoft.durabletask/scheduler/taskhubs"
    }
    
  1. Azure portal で Durable Task Scheduler を検索し、結果から選択します。

    ポータルで Durable Task Scheduler を検索するスクリーンショット。

  2. [ 作成 ] を選択して、[ Durable Task Scheduler ] ウィンドウを開きます。

    Durable Task Scheduler の作成ページのスクリーンショット。

  3. [ 基本 ] タブのフィールドに入力します。[ 確認と作成] を選択します。

  4. 検証に合格したら、[ 作成] を選択します。

    デプロイには約 15 ~ 20 分かかる場合があります。

サブスクリプション内のすべての Durable Task Scheduler リソースを表示する

  1. 次のコマンドを実行して、サブスクリプション内のすべてのスケジューラ名の一覧を取得します。

    az durabletask scheduler list --subscription <SUBSCRIPTION_ID>
    
  2. --resource-group フラグを追加することで、特定のリソース グループに結果を絞り込むことができます。

    az durabletask scheduler list --subscription <SUBSCRIPTION_ID> --resource-group <RESOURCE_GROUP_NAME>
    

Azure portal で Durable Task Scheduler を検索し、結果から選択します。

ポータルで Durable Task Scheduler サービスを検索するスクリーンショット。

アクセス権を持つすべてのサブスクリプションで作成されたスケジューラ リソースの一覧を表示できます。

Durable Task Scheduler ですべてのタスク ハブを表示する

次を実行して、特定のスケジューラ内のタスク ハブの一覧を取得します。

az durabletask taskhub list --resource-group <RESOURCE_GROUP_NAME> --scheduler-name <SCHEDULER_NAME>

スケジューラで作成されたすべてのタスク ハブは、Azure portal のリソースの 概要 で確認できます。

ポータルの Durable Task Scheduler の [概要] タブのスクリーンショット。

スケジューラとタスク ハブを削除する

  1. 最初にタスク ハブを削除します。

    az durabletask taskhub delete --resource-group YOUR_RESOURCE_GROUP --scheduler-name YOUR_SCHEDULER --name YOUR_TASKHUB
    
  2. スケジューラを削除します。

    az durabletask scheduler delete --resource-group YOUR_RESOURCE_GROUP --scheduler-name YOUR_SCHEDULER
    
  1. Azure ポータルでスケジューラ リソースを開き、Delete

    ポータルの [削除] ボタンが強調表示されているスケジューラ リソースのスクリーンショット。

  2. 削除するタスク ハブを含むスケジューラを見つけて、そのタスク ハブを選択します。 [ 削除] を選択します

    ポータルの [削除] ボタンが強調表示されているタスク ハブ リソースのスクリーンショット。

アプリが Durable Task Scheduler にアクセスするための ID ベースの認証を構成する

Durable Task Scheduler では、ユーザー割り当て ID またはシステム割り当て ID を使用したマネージド ID 認証のみがサポートされます。 ユーザー割り当て ID はアプリのライフサイクルに関連付けられていないため、アプリのプロビジョニング解除後に再利用できるため、推奨されます。

アプリにアクセス権を付与するには、 Durable Task Data Contributor ロールをマネージド ID に割り当てます。 完全なセットアップ手順については、「 Durable Task Scheduler で ID ベースのアクセスを構成する」を参照してください。

Durable Task Scheduler ダッシュボードにアクセスする

Durable Task Scheduler ダッシュボードにアクセスするには、 Durable Task Dashboard Viewer ロールを開発者 ID に割り当てます。 詳細については、「 Durable Task Scheduler ダッシュボード」を参照してください。