共用方式為


使用標籤來提供每個環境的組態值。

許多應用程式需要針對不同的環境使用不同的配置。 假設應用程式具有配置值,可定義要用於其後端資料庫的端點。 應用程式開發人員使用與生產中使用的資料庫不同的資料庫。 應用程式使用的資料庫端點必須在應用程式從開發移至生產環境時變更。

在 Azure 應用程式設定中,您可以使用 標籤 來定義相同索引鍵的不同值。 例如,您可以定義具有不同值的單一索引鍵,用於開發和生產環境。 您可以指定連線到應用程式設定時要載入的標籤。

若要示範此功能,您將修改 快速入門:使用 Azure 應用程式設定建立 ASP.NET Core 應用程式 中建立的 Web 應用程式,以針對開發與生產使用不同的組態設定。 在繼續之前,請先完成快速入門。

新增組態值時指定標籤

在 Azure 入口網站中,移至 [組態總管 ],並尋找您在快速入門中建立的 TestApp:Settings:FontColor 索引鍵。 選取其內容功能表,然後選取 [新增值]。

[新增值] 功能表項目

「新增值」畫面上,輸入紅色「值」和「開發」「標籤」。 將 [內容類型 ] 保留空白。 選取 ,然後套用

載入具有指定標籤的組態值

根據預設,Azure 應用程式設定只會載入沒有標籤的組態值。 如果您已定義設定值的標籤,則需要指定連線至應用程式設定時要使用的標籤。

在上一節中,您已為開發環境建立不同的組態值。 您可以使用變數來 HostingEnvironment.EnvironmentName 動態判斷應用程式目前執行的環境。 若要深入瞭解,請參閱在 ASP.NET Core 中使用多個環境

新增對 Microsoft.Extensions.Configuration.AzureAppConfiguration 命名空間的引用,以便訪問 KeyFilterLabelFilter 類。

using Microsoft.Extensions.Configuration.AzureAppConfiguration;

將環境名稱傳遞至方法, Select 以對應至目前環境的標籤載入組態值:

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddAzureAppConfiguration(options =>
    {
        string endpoint = Environment.GetEnvironmentVariable("Endpoint");
        options.Connect(new Uri(endpoint), new DefaultAzureCredential())
               // Load configuration values with no label
               .Select(KeyFilter.Any, LabelFilter.Null)
               // Override with any configuration values specific to current hosting env
               .Select(KeyFilter.Any, builder.Environment.EnvironmentName);
    });

Select 方法被調用兩次。 第一次,它載入沒有標籤的組態值。 然後,它會載入組態值,其中包含與目前環境相對應的標籤。 這些環境特定的值會覆寫任何沒有標籤的對應值。 您不需要為每個索引鍵定義環境特定的值。 如果索引鍵沒有具有與目前環境相對應的標籤的值,則會使用沒有標籤的值。

在不同環境中進行測試

開啟 launchSettings.json 目錄下的 Properties 檔案。 在 下找到項目configprofiles。 在區 environmentVariables 段中,將 ASPNETCORE_ENVIRONMENT 變數設定為 Production

設定新值後,建置並執行您的應用程式。

dotnet build
dotnet run

使用網頁瀏覽器前往 http://localhost:5000。 您會注意到字體顏色是黑色的。

使用生產組態執行的 Web 應用程式

更新 launchSettings.json 以將變數設定 ASPNETCORE_ENVIRONMENTDevelopment。 再跑 dotnet run 一次。

您會注意到字體顏色現在是紅色的。 這是因為應用程式現在使用具有Development標籤的值TestApp:Settings:FontColor。 所有其他組態值都與其生產值相同。

使用開發組態執行的 Web 應用程式

後續步驟