Durable Functionsをローカルにインストールするときは.NET Core 2.0.3以降で!!!


Azure Functions(とAzure Web Jobs)の拡張機能であるDurable Functionsがとても面白いなぁと思う今日この頃です。

ローカル実行環境構築時の注意

手順は公式のドキュメントに丁寧にまとめられています。

Durable Functions 拡張機能とサンプルをインストールする (Azure Functions)

だた、日本語の言語設定時、ローカルでDurable Functionsをインストールする際、.NET Coreのバージョンが2.0.3より古いとインストールに失敗します。

Installing Microsoft.Azure.WebJobs.Extensions.DurableTask fails on Mac

具体的にはこのコマンドを実行するときにエラーになります。

  • command
func extensions install -p Microsoft.Azure.WebJobs.Extensions.DurableTask -v 1.1.0-beta2
  • output
// (省略)
$HOME.nuget/packages/microsoft.azure.webjobs.script.extensionsmetadatagenerator/1.0.0-beta2/build/Microsoft.Azure.WebJobs.Script.ExtensionsMetadataGenerator.targets(16,5): error : Metadata generation failed. [/Users/sugita-toshinori/dev/codes/csharp/azure-functions-durable-extension/samples/csx/functions-extensions/extensions.csproj]

ビルドに失敗しました。
// (省略)

公式ページなどから2.0.3以降の.NET Coreをインストールしてください。

この記事の執筆時点では.NET Core 2.1.4が最新です。

アップデート後はインストールに成功します。

  • output
// (省略)
ビルドに成功しました。
    0 個の警告
    0 エラー

経過時間 00:00:03.85

ドキュメントめっちゃ豊富

Durable Functionsはまだプレビュー状態ですが、すでに詳細な公式ドキュメントが公開されていますし、日本語版もあります。

  • Durable Functions の概要 (プレビュー)
  • Durable Functions 拡張機能とサンプルをインストールする (Azure Functions)

  • オーケストレーショントリガー(ワークフローをC#で記述する)、オーケストレーションクライアント(オーケストレーターを呼び出す)、アクティビティトリガー(個々のタスクを実行する)といったFunctionの役割分担の話

  • チェーン、ファンアウト/ファンイン、ステートフルシングルトン、人による操作といったDurable Functionsのユースケースとしてのデザインパターン

  • デザインパターンを実装したサンプル(ドキュメント通りに設定すればそのまま実行できる)

などを知ることができます。

また、昨年末のアドベントカレンダーでも、上記のサンプルの1つを活用してわかりやすく説明してらっしゃいました。

[Advent Calendar 2017 Day1] Durable Functions ことはじめ

概要としてはこちらの記事もわかりやすいです。

Azure Functions の 超イケてる Durable Functions を使ってみる

ワークフローをコードで記述できるというのは他のプラットフォームではまだないと思うので、興味深いですね!

今週開催されるDurable functions in Actionで情報をアップデートして来ようと思います。