本教學課程說明如何在 Azure Functions 應用程式中啟用動態設定更新。 其以快速入門中引進的 Azure Functions 應用程式為基礎。 繼續之前,請先完成 使用 Azure 應用程式組態建立 Azure Functions 應用程式 。
在本教學課程中,您將瞭解如何:
- 設定 Azure Functions 應用程式的動態設定重新整理。
- 使用應用程式設定中間件啟用自動設定重新整理。
- 當您的應用程式組態存放區發生變更時,請在函數調用中使用最新的組態。
先決條件
從應用程式設定重新載入資料
Azure 應用程式組態 .NET 提供者支持根據應用程式活動快取和動態重新整理組態設定。 在本節中,您會設定提供者以動態方式重新整理設定,並使用應用程式組態中間件啟用自動設定重新整理, Microsoft.Azure.AppConfiguration.Functions.Worker每次函式執行時。
備註
Azure 應用程式組態可以與 隔離工作者模型 或 同進程模型中的 Azure Functions 搭配使用。 本教程使用隔離工作者模型作為範例。 您可以在 Azure 應用程式組態 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 開始 且沒有標籤)。 如需監視組態變更的詳細資訊,請參閱 設定重新整理的最佳做法。根據預設,重新整理間隔會設定為30秒。 您可以通過呼叫
AzureAppConfigurationRefreshOptions.SetRefreshInterval方法來調整此間隔。藉由新增應用程式設定中間件,更新 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 入口網站中,於市集的 總覽 底下找到的應用程式組態存放區端點。
如果您使用 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 入口網站中選取您的應用程式組態存放區,並在 [ 組態總管] 中更新下列密鑰的值。
鑰匙 價值觀 TestApp:Settings:Message Azure 應用程式組態的資料 - 已更新 重新整理你的瀏覽器幾次。 在經過 30 秒的預設重新整理間隔之後,頁面會顯示從 Azure Functions 應用程式擷取的更新值。
快速入門功能刷新本地設定
清理資源
如果您不想繼續使用本文中建立的資源,請刪除在此處建立的資源群組,以避免產生費用。
這很重要
刪除資源群組是無法回復的動作。 資源群組和其中的所有資源都將被永久刪除。 請確定您不會誤刪錯誤的資源群組或資源。 如果您是在包含其他您想保留資源的資源群組中建立本文的資源,則應該從各自的面板中逐一刪除每個資源,而不用刪除整個資源群組。
- 登入 Azure 入口網站,然後選取 [資源群組]。
- 在 [依名稱篩選] 方塊中,輸入您資源群組的名稱。
- 在結果清單中,選取資源群組名稱以查看概觀。
- 選擇 ,刪除資源群組。
- 系統將會要求您確認是否刪除資源群組。 輸入您資源群組的名稱以進行確認,然後選取 [刪除]。
不久後,系統便會刪除該資源群組及其所有的資源。
後續步驟
在本教學課程中,您已讓 Azure Functions 應用程式從應用程式組態動態重新整理組態設定。
若要瞭解如何從 Azure Functions 應用程式內的 Azure 應用程式組態使用功能旗標,請繼續進行下列教學課程。
若要瞭解如何使用 Azure 受控識別來簡化應用程式設定的存取,請繼續進行下列教學課程。