はじめに
この記事では、GitHub Codespaces上でDurable Task Schedulerエミュレーターを起動し、FanOutFanInサンプルを実行する手順を紹介します。
GitHub Codespacesの準備
以下のリンクをクリックすると、GitHub Codespaces上でSpaceを起動できます。
環境チェック
今回はDockerと.NETを使うので、以下のコマンドでバージョンを確認します。
まずは、.NETのバージョンを確認します。
dotnet --version
実行結果
8.0.415
次に、Dockerのバージョンを確認します。
docker --version
実行結果
Docker version 28.5.1-1
手順を確認して起動してみる
では、どのような順番でDurable Task Schedulerエミュレーターを起動するのかを確認していきたいと思います。今回は.NETを使った方法を紹介します。
順番としては以下のとおりです。
- Durable Task Scheduler エミュレーターをpull
- docker runでDurable Task Scheduler エミュレーターを起動
- ダッシュボードにアクセスする
- Durable-Task-Schedulerのリポジトリをクローンする
- ワーカーをビルドして起動
- クライアントをビルドして起動
- ダッシュボードで動作確認
Durable Task Scheduler エミュレーターをpullする
以下のコマンドを実行して、Durable Task Scheduler エミュレーターのDockerイメージをpullします。
docker pull mcr.microsoft.com/dts/dts-emulator:latest
実行結果(一部抜粋)
Digest: sha256:ef0b75cab52358409dadc34b675d659e397729c0b68f4ea51b9afa5136072dfb
Status: Downloaded newer image for mcr.microsoft.com/dts/dts-emulator:latest
Durable Task Scheduler エミュレーターを起動する
以下のコマンドを実行して、Durable Task Scheduler エミュレーターを起動します。
docker run --name dtsemulator -d -p 8080:8080 -p 8082:8082 mcr.microsoft.com/dts/dts-emulator:latest
実行結果(一部抜粋)
dbbf44836d36494ee4aafd9a7d9104eef008375881866053886c7f38ce9706a5
実行すると、上記のようなコンテナIDが表示されます。
ダッシュボードにアクセスする
GitHub Codespacesをブラウザ起動している場合は8082のポートにアクセスすることで、Durable Task Scheduler エミュレーターのダッシュボードにアクセスできます。
※VSCodeから起動している場合はhttp://127.0.0.1:8082/にアクセスすることで、Durable Task Scheduler エミュレーターのダッシュボードにアクセスできます。
Durable-Task-Schedulerのリポジトリをクローンする
以下のコマンドを実行して、Durable-Task-Schedulerのリポジトリをクローンします。
git clone https://github.com/Azure-Samples/Durable-Task-Scheduler.git
ワーカーをビルドして起動する
以下のコマンドでDurable-Task-Schedulerのディレクトリに移動します。
cd Durable-Task-Scheduler
FanOutFanInのディレクトリに移動します。
cd samples/durable-task-sdks/dotnet/FanOutFanIn
まずはワーカーをビルドして起動します。
cd Worker
dotnet build
dotnet run
クライアントをビルドして起動する
新しくターミナルを開き、以下のコマンドでFanOutFanInのディレクトリに移動します。
cd Durable-Task-Scheduler/samples/durable-task-sdks/dotnet/FanOutFanIn
以下のコマンドでクライアントをビルドして起動します。
cd Client
dotnet build
dotnet run
ダッシュボードで動作確認
Durable Task Scheduler エミュレーターのダッシュボードに戻って動作を確認します。
defaultという名前のTask Hubをクリックします。
Task Hubs > default > Orchestrationsという形で表示されます。
Orchestrations IDをクリックします。
Orchestrationの詳細が表示されます。
まとめ
GitHub Codespaces上でDurable Task Schedulerエミュレーターを起動し、FanOutFanInサンプルを実行する方法は以上です。Durable Task SchedulerはGitHub Codespaces上で試すことができるので、ぜひ活用してみてください。
おまけ
以下の2つの手順はCodespacesで環境構築時に自動化することも可能です。
- Durable Task Scheduler エミュレーターをpull
- docker runでDurable Task Scheduler エミュレーターを起動
具体的には.devcontainer.jsonでPostCreateCommandすると実現できます。





