こんにちは、小さい頃から娘が手や足をどこかにぶつけて「ここぶつけて痛い・・」と言ってくるたびに「ぶつけないように気をつけなさい」と言い続けていたら、最近はぶつけたときに「いたーい!気をつけます!」と言うようになって可愛いなと思いつつも気をつけろと言い過ぎたかなと反省している木村です。
先日、Azure App ServiceのApp Configuration参照機能がGAしましたので早速試してみました。
なお、Azure portalの言語設定を英語にして画面キャプチャしていますので、日本語での表示は適宜読み替えてください。
App Configuration参照とは
Azure App Configurationは、アプリケーション設定と機能フラグを一元的に管理するためのサービスです。
これまでApp Configurationを利用する際は、設定を読み込むためのコードをアプリケーションに埋め込む必要がありました。
上記ページのC#(ASP.NET Core)のサンプルでいうと、以下の部分が該当します。
// Retrieve the connection string string connectionString = builder.Configuration.GetConnectionString("AppConfig"); // Load configuration from Azure App Configuration builder.Configuration.AddAzureAppConfiguration(connectionString);
今回GAしたApp Configuration参照機能は、アプリケーションのソースコードを変更することなくApp Configurationの値をアプリケーションから読み込むことができるようになる機能です。
App Serviceには同様の機能として、KeyVaultを参照する機能も存在します。こちらについては弊社松村の以下の記事を参照ください。
サンプルアプリケーション
今回は、ASP.NET Core Webアプリ(Razor Pages/.NET8)テンプレートを少し修正したものを利用します。インデックスページにApplicationOptions__ApplicationName
という設定の内容を表示する機能を追加しています。
以下でコードを公開しています。
これをそのままWebAppsにデプロイすると、appsettings.json
で設定した「MyApp」という値が以下のように表示されます。
App Configurationの作成と設定
まずは参照先されるApp Configurationを作成します。今回は検証目的なのでFreeプランで作成します。
リソースが作成できたら、概要のページからエンドポイントのURLをコピーして保存しておきます。
WebAppsからアクセスできるよう、App ConfigurationのAccess Controlメニューで、WebAppsのシステム割り当てマネージドIDに「App Configuration Data Reader」ロールを割り当てます。
以下の画面は割り当て追加の最後の確認画面ですが、このようになっていればOKです。
参照する設定値を追加します。Operations > Configuration explorer
から「sampleApplicationName」というキー名に、「App Configuration 2024」という値を追加しました。
WebAppsの設定の変更
WebAppsの設定をします。WebAppsのメニューのSettings > Environment variables
から、新しい環境変数を追加します。
ApplicationOptions__ApplicationName
の値として、App Configurationを参照するように指定します。形式は
@Microsoft.AppConfiguration(Endpoint=先ほどコピーしたエンドポイント; Key=キー名)
となります。Labelも指定できますが、今回はApp Configurationの値にラベルを指定していないので省略しています。
詳細については以下の公式ドキュメントを参照してください。
設定を保存するとWebAppsがリスタートします。正常にApp Configurationの値が参照できた場合は、以下のようにチェックマークが表示されます。参照できていない場合は参照の値やマネージドIDの設定を確認してください。
では、アプリケーションの画面を確認してみましょう。
無事表示できていますね!
まとめ
先日GAした、Azure App ServiceのApp Configuration参照機能を試してみました。
これまでApp Configurationの値を参照するにはアプリケーションの修正が必要でしたが、この機能を使うことでアプリケーションを修正することなく簡単に値を参照できるようになりました。App Configurationは大変便利なサービスですが、アプリケーションを修正するのが難しく導入できていなかったようなケースでも、この機能を使えば解決できそうだと思いました。
皆様のお役に立てば幸いです。
サービス一覧 www.alterbooth.com cloudpointer.tech www.alterbooth.com