※注意
ある程度調べたつもりですが、もしかしたら私の認識が違う箇所があるかもしれません。
「これ違うんじゃない?」というものがあったら、コメントいただけますと幸いです。
- 1 凄く重要な前提
- 2 環境変数 一覧
- 2.1 APP_KIND
- 2.2 APPLICATIONINSIGHTS_CONNECTION_STRING
- 2.3 AzureFunctionsJobHost_extensionBundle_id
- 2.4 AzureFunctionsJobHost_extensionBundle_version
- 2.5 AzureWebJobsStorage
- 2.6 FUNCTIONS_EXTENSION_VERSION
- 2.7 FUNCTIONS_WORKER_RUNTIME
- 2.8 WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
- 2.9 WEBSITE_CONTENTSHARE
- 2.10 WEBSITE_NODE_DEFAULT_VERSION
- 3 この他の環境変数
凄く重要な前提
Standard Logic Apps は App Service と Functions を継承しています。
そのため、公式ドキュメント自体は Functions のものを参照しても問題ないです。
Standard ロジック アプリとワークフローには、再設計されたシングルテナント Azure Logic Apps ランタイムが使用されています。 このランタイムには Azure Functions 機能拡張モデルが使用されており、Azure Functions ランタイムの拡張機能としてホストされます。 この設計により、ロジック アプリ ワークフローの移植性、柔軟性、パフォーマンス向上に加え、Azure Functions プラットフォームと Azure App Service エコシステムから継承されたその他の機能と利点が提供されます。
Standard シングルテナント ロジック アプリと従量課金マルチテナント ロジック アプリの違い # Standard ロジック アプリとワークフロー
環境変数 一覧
APP_KIND
Azure リソースの種類について記載されていて、既定値は “workflowApp” です。
シングルテナントの Azure Logic Apps で Standard ロジック アプリのホストとアプリの設定を編集する # アプリ設定のリファレンス – local.settings.json
APPLICATIONINSIGHTS_CONNECTION_STRING
分析に使われる Application Insights の接続文字列になります。
Application Insights の接続文字列。
Azure Functions のアプリケーション設定のリファレンス # APPLICATIONINSIGHTS_CONNECTION_STRING
AzureFunctionsJobHost_extensionBundle_id
Standard Logic Apps が動作する為に必要な機能がまとめられた拡張機能バンドルを指定する ID です。
.NET クラス ライブラリ関数アプリでは、プロジェクトに NuGet パッケージとしてインストールされているバインドが使用されます。 拡張機能バンドルを使用すると、.NET 関数アプリ以外で、.NET インフラストラクチャを扱うことなく同じバインドを使用できるようになります。
ちなみに、Standard Logic Apps の場合は “Microsoft.Azure.Functions.ExtensionBundle.Workflows” という拡張機能バンドルが利用されているようです。
Azure portal を使用して、シングルテナント Azure Logic Apps で実行される最初のサンプル S…
AzureFunctionsJobHost_extensionBundle_version
先述した拡張機能バンドルのバージョンを指定するものです。
公式ドキュメントに記載のあったトラブルシューティングなのですが、古い Standard Logic Apps の場合は拡張機能バンドルのバージョンが低くて問題が発生することがあるようです。
ただし、以前に作成したロジック アプリでは、ロジック アプリで古いバージョンの拡張機能バンドル Microsoft.Azure.Functions.ExtensionBundle.Workflows が使用されている場合、これらの操作がデザイナーに表示されないことがあります。
Azure portal を使用してサンプル Standard ロジック アプリ ワークフローを作成する # 問題とエラーのトラブルシューティング
上記の引用先では、古い拡張機能バンドルを消して新しいバンドルに置き換える手順まで詳細に記載がされておりますので、問題が生じている方はご参考いただければと。
AzureWebJobsStorage
前提として、Standard Logic Apps のワークフロー情報や実行履歴といった内容については、Logic Apps 作成時に連携した Storage Account に保存されます。
Logic Apps Standard を作成した際に一緒に作成されるコンテナやファイルは、Logic Apps Standard をご利用の際のワークフロー情報や、実行履歴情報が格納されているものとなります。
“AzureWebJobsStorage” については、その Storage Account との接続に使う文字列です。
通常の操作に使用する Azure Storage アカウントに接続文字列を指定します。
FUNCTIONS_EXTENSION_VERSION
継承元である Azure Functions のバージョンになります。
関数アプリをホストする Functions ランタイムのバージョンです。
Azure Functions のアプリケーション設定のリファレンス # FUNCTIONS_EXTENSION_VERSION
2024 年 9 月時点では、最新バージョンは 4.0 です。
バージョンについて詳細に確認されたい方は下記を参照してください。
Azure Functions では、複数のバージョンのランタイムがサポートされます。 バージョン間の違いと、適切なバー…
FUNCTIONS_WORKER_RUNTIME
実際に Standard Logic Apps が動いているプログラミング言語、言語スタックです。
関数アプリで読み込むワーカー ランタイムの言語または言語スタック。
Azure Functions のアプリケーション設定のリファレンス # FUNCTIONS_WORKER_RUNTIME
こちらの環境変数については Standard の公式ドキュメント曰く、現在は dotnet が既定値であり、複数言語のサポートが自動的に有効化されているため設定は不要だそうです。
複数言語のサポートが自動的に有効になっているため、この設定は不要になりました。
メモ: 以前は、この設定の既定値は node でした。 現在、dotnet は、異なる値を持つアプリの場合でも、すべての新規および既存のデプロイ済み Standard ロジック アプリの既定値です。 この変更はワークフローのランタイムには影響せず、すべてが以前と同じように動作するはずです。
シングルテナントの Azure Logic Apps で Standard ロジック アプリのホストとアプリの設定を編集する # アプリ設定のリファレンス – local.settings.json
WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
イベントの発生に応じて行うスケーリング設定や、リソースのコードと構成が格納された Storage Account への接続に使う文字列です。
イベント ドリブン スケーリング プランに関数アプリのコードと構成が格納されているストレージ アカウントの接続文字列です。
Azure Functions のアプリケーション設定のリファレンス # WEBSITE_CONTENTAZUREFILECONNECTIONSTRING
“AzureWebJobsStorage” との違いについて簡単にまとめると、”AzureWebJobsStorage” は主にトリガーやログの保存先であり、”WEBSITE_CONTENTAZUREFILECONNECTIONSTRING” はリソースそのもののコードや構成ファイルの保存先となります。
しかしながら、どちらも同じ Storage Account を指定しているので、気にしなくても良いかなと。
動的スケーリングを有効にするために必要なイメージを格納できます。 これらのプランでは、ストレージ アカウントの接続文字列を WEBSITE_CONTENTAZUREFILECONNECTIONSTRING で設定し、ファイル共有の名前を WEBSITE_CONTENTSHARE で設定します。 これは通常、AzureWebJobsStorage に使われるのと同じアカウントです。
WEBSITE_CONTENTSHARE
先述した “WEBSITE_CONTENTAZUREFILECONNECTIONSTRING” での指定先となっている Storage Account の名前です。
関数アプリのコードと構成ファイルを保存するために Functions で使用するファイル共有の名前。
WEBSITE_NODE_DEFAULT_VERSION
使用されている Node.js のバージョンになります。
Windows で関数アプリを実行するときに使用する Node.js のバージョンを設定します。
Azure Functions のアプリケーション設定のリファレンス # WEBSITE_NODE_DEFAULT_VERSION
“FUNCTIONS_WORKER_RUNTIME” についての説明で既定値が node から dotnet に変わって複数言語のサポートが自動的に有効になっている旨の記載がありましたが、どちらにしろバックエンドで動作しているのは TS なので Node.js のバージョンも重要ということですかね多分。
この他の環境変数
一応、私が保有している Standard Logic Apps で定義されている環境変数については全て列挙しましたが、構成によっては他にも環境変数が定義されていると思います。
その場合は、お手数ですが下記の公式ドキュメントをご参照いただけますと幸いです。
シングルテナントの Azure Logic Apps で Standard ロジック アプリのランタイムと環境の設定を変…
関数アプリを構成するために使用する Azure Functions アプリの設定または環境変数のリファレンス ドキュメン…