アプリケーション設定と接続文字列がなぜあるのか #Azure リレー
2020-03-25
azblob://2022/11/11/eyecatch/2020-03-25-why-application-setting-and-connection-string-exists-in-web-app-000.png

こんにちは。 cloud.confg Div の三上です。
先週の富本の Azure Functions TypescriptでGraphQLを試してみる #Azure リレー に引き続き、 毎週水曜日にAzure関連の記事を挙げる Azure リレー第4回を担当します。

Web App の設定である「アプリケーション設定」と「接続文字列」の違いについて書こうと思います。

アプリケーション設定とは?接続文字列とは?

どちらもWeb App の設定で、環境変数の設定になります。
環境変数の設定が 2 つある理由は以下に記載します。

環境変数の設定が 2 つ存在する理由

早速ですが本記事の本題です。
「どちらの設定も環境変数に関わるのであれば、どちらか片方に統一すれば良いじゃないか」と思う人も多いのではないでしょうか。

結論から言うと、アプリケーション設定と接続文字列は、主に ASP.NET 用の設定になります。
元々 ASP.NET 1.1 では、web.config にて環境変数を設定する仕様となっていました。
しかしASP.NET 2.0 以降では、ASP.NET および ASP.NET Core でデータベースへの接続文字列は Web.config に設定され、その他のアプリケーションの設定(参照するサーバーのURLなど)は appsettings.json にて設定されるようになりました。
「接続文字列」と「アプリケーション設定」がASP.NETで区別されて以来、Azure 上でもこれらが区別されています。

ちなみに、 ASP.NET 以外の言語の場合は値にアクセスするために接続文字列の変数キーに特殊な形式が必要になるため、アプリケーション設定を使用することがおすすめです。

蛇足

Web App のデフォルトのタイムゾーンはUTCですが、アプリケーション設定を下記のように設定することで任意のタイムゾーンに変更することが可能です。

キー : WEBSITE_TIME_ZONE
値 : Tokyo Standard Time

上の設定では、タイムゾーンをJSTに変更することができますが、値を変更すれば任意のタイムゾーンに変更することができます。