Udostępnij za pośrednictwem


Użyj etykiet, aby podać wartości konfiguracji poszczególnych środowisk.

Wiele aplikacji musi używać różnych konfiguracji dla różnych środowisk. Załóżmy, że aplikacja ma wartość konfiguracji, która definiuje punkt końcowy do użycia dla bazy danych zaplecza. Deweloperzy aplikacji używają innej bazy danych niż używana w środowisku produkcyjnym. Punkt końcowy bazy danych używany przez aplikację musi ulec zmianie, gdy aplikacja przechodzi z programowania do środowiska produkcyjnego.

W usłudze Azure App Configuration można użyć etykiet , aby zdefiniować różne wartości dla tego samego klucza. Można na przykład zdefiniować pojedynczy klucz z różnymi wartościami programowania i produkcji. Możesz określić, która etykieta ma być ładowana podczas nawiązywania połączenia z usługą App Configuration.

Aby zademonstrować tę funkcję, zmodyfikujesz aplikację internetową utworzoną w przewodniku Szybki start: tworzenie aplikacji ASP.NET Core za pomocą usługi Azure App Configuration w celu używania różnych ustawień konfiguracji na potrzeby programowania i produkcji. Przed kontynuowaniem ukończ szybki start.

Określanie etykiety podczas dodawania wartości konfiguracji

W witrynie Azure Portal przejdź do Eksploratora konfiguracji i znajdź klucz TestApp:Settings:FontColor utworzony w przewodniku Szybki start. Wybierz menu kontekstowe, a następnie wybierz pozycję Dodaj wartość.

Dodaj element Wartość do menu

Na ekranie Dodawanie wartości wprowadź wartośćczerwoną i etykietęprogramowania. Pozostaw pusty typ zawartości . Wybierz i zastosuj.

Załaduj wartości konfiguracji z określoną etykietą

Domyślnie usługa Azure App Configuration ładuje tylko wartości konfiguracji bez etykiety. Jeśli zdefiniowano etykiety dla wartości konfiguracji, należy określić etykiety do użycia podczas nawiązywania połączenia z usługą App Configuration.

W poprzedniej sekcji utworzono inną wartość konfiguracji dla środowiska deweloperskiego. Zmienna HostingEnvironment.EnvironmentName jest używana do dynamicznego określania, w jakim środowisku aktualnie działa aplikacja. Aby dowiedzieć się więcej, zobacz Używanie wielu środowisk w programie ASP.NET Core.

Dodaj odwołanie do przestrzeni nazw Microsoft.Extensions.Configuration.AzureAppConfiguration , aby uzyskać dostęp do klas KeyFilter i LabelFilter .

using Microsoft.Extensions.Configuration.AzureAppConfiguration;

Załaduj wartości konfiguracji z etykietą odpowiadającą bieżącemu środowisku, przekazując nazwę środowiska do Select metody :

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);
    });

Metoda Select jest wywoływana dwa razy. Po raz pierwszy ładuje wartości konfiguracji bez etykiety. Następnie ładuje wartości konfiguracji z etykietą odpowiadającą bieżącemu środowisku. Te wartości specyficzne dla środowiska zastępują wszystkie odpowiadające im wartości bez etykiety. Nie musisz definiować wartości specyficznych dla środowiska dla każdego klucza. Jeśli klucz nie ma wartości z etykietą odpowiadającą bieżącemu środowisku, używa wartości bez etykiety.

Testowanie w różnych środowiskach

Otwórz plik launchSettings.json w katalogu Properties. Znajdź wpis config w polu profiles. W sekcji environmentVariables ustaw zmienną ASPNETCORE_ENVIRONMENT na Production.

Po ustawieniu nowych wartości skompiluj i uruchom aplikację.

dotnet build
dotnet run

Użyj przeglądarki internetowej, aby przejść do witryny http://localhost:5000. Zauważysz, że kolor czcionki jest czarny.

Aplikacja internetowa uruchomiona z konfiguracją produkcyjną

Zaktualizuj launchSettings.json , aby ustawić zmienną ASPNETCORE_ENVIRONMENT na Development. Uruchom ponownie dotnet run.

Zauważysz, że kolor czcionki jest teraz czerwony. Dzieje się tak, ponieważ aplikacja używa teraz wartości TestApp:Settings:FontColor , która ma etykietę Development . Wszystkie inne wartości konfiguracji pozostają takie same jak ich wartości produkcyjne.

Aplikacja internetowa działająca z konfiguracją deweloperską

Następne kroki