このチュートリアルでは、Azure Functions アプリで動的構成の更新を有効にする方法について説明します。 これは、クイックスタートで導入された Azure Functions アプリに基づいています。 続行する前に、まず Azure App Configuration を使用して Azure Functions アプリを作成します。
このチュートリアルでは、以下の内容を学習します。
- Azure Functions アプリの動的構成更新を設定します。
- App Configuration ミドルウェアを使用して、構成の自動更新を有効にします。
- App Configuration ストアで変更が発生した場合は、関数呼び出しで最新の構成を使用します。
前提条件
- クイックスタートを完了し、Azure App Configuration を使用して Azure Functions アプリを作成する
App Configuration からデータを再度読み込む
Azure App Configuration .NET プロバイダーは、アプリケーションアクティビティに基づく構成設定のキャッシュと動的更新をサポートしています。 このセクションでは、関数が実行されるたびに App Configuration ミドルウェア Microsoft.Azure.AppConfiguration.Functions.Worker
を使用して、設定を動的に更新し、構成の自動更新を有効にするようにプロバイダーを構成します。
注
Azure App Configuration は、 分離されたワーカー モデル または インプロセス モデルのいずれかで Azure Functions と共に使用できます。 このチュートリアルでは、分離されたワーカー モデルを例として使用します。 両方のモデルの完全なコード例は、 Azure App Configuration GitHub リポジトリにあります。
Program.cs ファイルを開き、
AddAzureAppConfiguration
メソッドを含むようにConfigureRefresh
の呼び出しを更新します。 このメソッドは、監視するキーの指定や更新チェックの間隔など、構成設定を更新するための条件を構成します。// Connect to Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty.")); options.Connect(endpoint, new DefaultAzureCredential()) // Load all keys that start with `TestApp:` and have no label .Select("TestApp:*") // Reload configuration if any selected key-values have changed. // Use the default refresh interval of 30 seconds. It can be overridden via AzureAppConfigurationRefreshOptions.SetRefreshInterval. .ConfigureRefresh(refreshOptions => { refreshOptions.RegisterAll(); }); });
RegisterAll
メソッドを呼び出して、選択したキー値 (TestApp で始まりラベルがない値) の変更を検出するたびに、構成全体を再読み込みするように App Configuration プロバイダーに指示します。 構成の変更の監視の詳細については、「 構成の更新のベスト プラクティス」を参照してください。既定では、更新間隔は 30 秒に設定されています。 この間隔は、
AzureAppConfigurationRefreshOptions.SetRefreshInterval
メソッドを呼び出すことによってカスタマイズできます。App Configuration ミドルウェアを追加して、各関数の実行時に構成の自動更新を有効にするように 、Program.cs ファイルを更新します。
// Connect to Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { // Omitted the code added in the previous step. }); // Add Azure App Configuration middleware to the service collection. builder.Services.AddAzureAppConfiguration() // Use Azure App Configuration middleware for dynamic configuration refresh. builder.UseAzureAppConfiguration(); builder.ConfigureFunctionsWebApplication(); builder.Build().Run();
関数をローカルでテストする
環境変数を設定します。
AZURE_APPCONFIG_ENDPOINT という名前の環境変数に、Azure portal でストアの [概要] にある App Configuration ストアのエンドポイントを設定します。
Windows コマンド プロンプトを使用する場合は、次のコマンドを実行してコマンド プロンプトを再起動し、変更が反映されるようにします。
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
PowerShell を使用する場合は、次のコマンドを実行します。
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
macOS または Linux を使用する場合は、次のコマンドを実行します。
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
関数をテストするには、F5 キーを押します。 メッセージが表示されたら、Visual Studio からの要求に同意し、Azure Functions Core (CLI) ツールをダウンロードしてインストールします。 また、ツールで HTTP 要求を処理できるように、ファイアウォールの例外を有効にすることが必要になる場合もあります。
Azure Functions のランタイムの出力から、関数の URL をコピーします。
HTTP 要求の URL をブラウザーのアドレス バーに貼り付けます。 関数によって返されたローカルの GET 要求に対するブラウザーでの応答を次の図に示します。
Azure portal で App Configuration ストアを選択し、 構成エクスプローラーで次のキーの値を更新します。
鍵 価値 TestApp:Settings:メッセージ Azure App Configuration からのデータ - 更新済み ブラウザーを数回更新します。 既定の更新間隔 30 秒が経過すると、Azure Functions アプリから取得した更新された値がページに表示されます。
リソースをクリーンアップする
この記事で作成したリソースを継続して使用しない場合は、ここで作成したリソース グループを削除して課金されないようにしてください。
重要
リソース グループを削除すると、元に戻すことができません。 リソース グループとそのすべてのリソースは完全に削除されます。 間違ったリソース グループやリソースをうっかり削除しないようにしてください。 この記事のリソースを、保持したい他のリソースを含むリソース グループ内に作成した場合は、リソース グループを削除する代わりに、各リソースをそれぞれのペインから個別に削除します。
- Azure portal にサインインし、 [リソース グループ] を選択します。
- [名前でフィルター] ボックスにリソース グループの名前を入力します。
- 結果一覧でリソース グループ名を選択し、概要を表示します。
- [リソース グループの削除] を選択します。
- リソース グループの削除の確認を求めるメッセージが表示されます。 確認のためにリソース グループの名前を入力し、 [削除] を選択します。
しばらくすると、リソース グループとそのすべてのリソースが削除されます。
次のステップ
このチュートリアルでは、Azure Functions アプリで App Configuration から構成設定を動的に更新できるようにしました。
Azure Functions アプリ内で Azure App Configuration の機能フラグを使用する方法については、次のチュートリアルに進んでください。
Azure マネージド ID を使用して App Configuration へのアクセスを効率化する方法については、次のチュートリアルに進んでください。