共用方式為


教學課程:在 Azure Functions 應用程式中使用動態設定

本教學課程說明如何在 Azure Functions 應用程式中啟用動態設定更新。 其以快速入門中引進的 Azure Functions 應用程式為基礎。 繼續之前,請先完成 使用 Azure 應用程式組態建立 Azure Functions 應用程式

在本教學課程中,您將瞭解如何:

  • 設定 Azure Functions 應用程式的動態設定重新整理。
  • 使用應用程式設定中間件啟用自動設定重新整理。
  • 當您的應用程式組態存放區發生變更時,請在函數調用中使用最新的組態。

先決條件

從應用程式設定重新載入資料

Azure 應用程式組態 .NET 提供者支持根據應用程式活動快取和動態重新整理組態設定。 在本節中,您會設定提供者以動態方式重新整理設定,並使用應用程式組態中間件啟用自動設定重新整理, Microsoft.Azure.AppConfiguration.Functions.Worker每次函式執行時。

備註

Azure 應用程式組態可以與 隔離工作者模型同進程模型中的 Azure Functions 搭配使用。 本教程使用隔離工作者模型作為範例。 您可以在 Azure 應用程式組態 GitHub 存放庫中找到這兩個模型的完整程式碼範例。

  1. 開啟 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 方法來調整此間隔。

  2. 藉由新增應用程式設定中間件,更新 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();
    

在本機測試函式

  1. 設定 環境變數。

    將名為 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>'
    
  2. 若要測試您的函式,請按 F5。 如果出現提示,請接受來自 Visual Studio 的要求,以下載並安裝 Azure Functions Core (CLI) 工具。 您可能也需要啟用防火牆例外狀況,工具才能處理 HTTP 要求。

  3. 從 Azure Functions 執行階段輸出複製函式的 URL。

    VS 中的快速入門函式偵錯

  4. 將 HTTP 要求的 URL 貼到瀏覽器的網址列中。 下圖顯示瀏覽器中回應函式所傳回的本機 GET 要求。

    快速入門功能本地啟動

  5. 在 Azure 入口網站中選取您的應用程式組態存放區,並在 [ 組態總管] 中更新下列密鑰的值。

    鑰匙 價值觀
    TestApp:Settings:Message Azure 應用程式組態的資料 - 已更新
  6. 重新整理你的瀏覽器幾次。 在經過 30 秒的預設重新整理間隔之後,頁面會顯示從 Azure Functions 應用程式擷取的更新值。

    快速入門功能刷新本地設定

清理資源

如果您不想繼續使用本文中建立的資源,請刪除在此處建立的資源群組,以避免產生費用。

這很重要

刪除資源群組是無法回復的動作。 資源群組和其中的所有資源都將被永久刪除。 請確定您不會誤刪錯誤的資源群組或資源。 如果您是在包含其他您想保留資源的資源群組中建立本文的資源,則應該從各自的面板中逐一刪除每個資源,而不用刪除整個資源群組。

  1. 登入 Azure 入口網站,然後選取 [資源群組]
  2. 在 [依名稱篩選] 方塊中,輸入您資源群組的名稱。
  3. 在結果清單中,選取資源群組名稱以查看概觀。
  4. 選擇 ,刪除資源群組
  5. 系統將會要求您確認是否刪除資源群組。 輸入您資源群組的名稱以進行確認,然後選取 [刪除]

不久後,系統便會刪除該資源群組及其所有的資源。

後續步驟

在本教學課程中,您已讓 Azure Functions 應用程式從應用程式組態動態重新整理組態設定。

若要瞭解如何從 Azure Functions 應用程式內的 Azure 應用程式組態使用功能旗標,請繼續進行下列教學課程。

若要瞭解如何使用 Azure 受控識別來簡化應用程式設定的存取,請繼續進行下列教學課程。