Skip to content

ymd65536/DurableTaskScheduler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub CodespacesでDurable Task Schedulerエミュレーターを起動してFanOutFanInを試す

はじめに

この記事では、GitHub Codespaces上でDurable Task Schedulerエミュレーターを起動し、FanOutFanInサンプルを実行する手順を紹介します。

GitHub Codespacesの準備

以下のリンクをクリックすると、GitHub Codespaces上でSpaceを起動できます。

Open in GitHub Codespaces

環境チェック

今回は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 エミュレーターのダッシュボードにアクセスできます。

dts-emulator-dashboard

※VSCodeから起動している場合はhttp://127.0.0.1:8082/にアクセスすることで、Durable Task Scheduler エミュレーターのダッシュボードにアクセスできます。

dts-emulator-dashboard-vscode

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をクリックします。

dts-1

Task Hubs > default > Orchestrationsという形で表示されます。

dts-2

Orchestrations IDをクリックします。

dts-3

Orchestrationの詳細が表示されます。

dts-4

まとめ

GitHub Codespaces上でDurable Task Schedulerエミュレーターを起動し、FanOutFanInサンプルを実行する方法は以上です。Durable Task SchedulerはGitHub Codespaces上で試すことができるので、ぜひ活用してみてください。

# ここから下は環境構築手順

Azure Developer CLIのセットアップ

以下のコマンドを実行して、Azure Developer CLI (azd) をインストールします。

curl -fsSL https://aka.ms/install-azd.sh | bash

インストール方法は公式ドキュメントを参照してください。

Azure Developer CLIの動作確認

以下のコマンドでAzure Developer CLIのバージョンを確認します。

azd version

Azure Developer CLIでログインする

環境変数 AZURE_TENANT_IDが設定されている場合は、以下のコマンドでログインします。

azd auth login --tenant-id $AZURE_TENANT_ID

環境変数が設定されていない場合は、以下のコマンドでログインします。

azd auth login

Azure CLIをセットアップする

以下のコマンドを実行して、Azure CLIをインストールします。

curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash

インストール方法は公式ドキュメントを参照してください。

Azure CLIでログインする

環境変数 AZURE_TENANT_IDが設定されている場合は、以下のコマンドでログインします。

az login --tenant $AZURE_TENANT_ID

Azure CLIの動作確認

以下のコマンドでAzure CLIのバージョンとアカウント情報を確認します。

az version
az account list

ロケーション間違えると以下のようなエラーが出るので注意してください。

(LocationNotAvailableForResourceType) The provided location 'eastus' is not available for resource type 'Microsoft.DurableTask/schedulers'. List of available regions for the resource type is 'northcentralus,westus2,northeurope,uksouth,swedencentral,australiaeast,centralus,eastasia,koreacentral,eastus2,brazilsouth,canadacentral,centralindia,francecentral,germanywestcentral,italynorth,japaneast,japanwest,norwayeast,polandcentral,southafricanorth,southeastasia,switzerlandnorth,uaenorth,westus,westus3'.
Code: LocationNotAvailableForResourceType
Message: The provided location 'eastus' is not available for resource type 'Microsoft.DurableTask/schedulers'. List of available regions for the resource type is 'northcentralus,westus2,northeurope,uksouth,swedencentral,australiaeast,centralus,eastasia,koreacentral,eastus2,brazilsouth,canadacentral,centralindia,francecentral,germanywestcentral,italynorth,japaneast,japanwest,norwayeast,polandcentral,southafricanorth,southeastasia,switzerlandnorth,uaenorth,westus,westus3'.

参考

GitHub Codespacesの設定

.envでシークレットを管理する場合、以下のコマンドでCodespacesにシークレットを設定します。

gh secret set --app codespaces -f .env

シークレットの一覧を確認するには、以下のコマンドを実行します。

gh secret list --app codespaces

単一のシークレットを設定するには、以下のコマンドを使用します。

gh secret set --app codespaces SECRET_NAME

シークレットの削除は以下のコマンドで行います。

gh secret delete --app codespaces SECRET_NAME

Releases

No releases published

Packages

 
 
 

Contributors