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 parametry połączenia do użycia dla bazy danych zaplecza. Deweloperzy aplikacji używają innej bazy danych niż używana w środowisku produkcyjnym. Baza danych parametry połączenia używana przez aplikację musi ulec zmianie, gdy aplikacja przechodzi z programowania do środowiska produkcyjnego.
W aplikacja systemu Azure 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 przy użyciu usługi aplikacja systemu Azure Configuration w celu używania różnych ustawień konfiguracji na potrzeby programowania i produkcji. Przed kontynuowaniem ukończ przewodnik Szybki start.
Określanie etykiety podczas dodawania wartości konfiguracji
W witrynie Azure Portal przejdź do Eksploratora konfiguracji i znajdź klucz TestApp:Ustawienia:FontColor utworzony w przewodniku Szybki start. Wybierz menu kontekstowe, a następnie wybierz pozycję Dodaj wartość.
Na ekranie Dodawanie wartości wprowadź wartość czerwoną i etykietę programowania. Pozostaw pusty typ zawartości. Wybierz Zastosuj.
Ładowanie wartości konfiguracji z określoną etykietą
Domyślnie aplikacja systemu Azure Konfiguracja ł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 służy do dynamicznego HostingEnvironment.EnvironmentName
określania środowiska, w którym 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 =>
{
options.Connect(builder.Configuration.GetConnectionString("AppConfig"))
// 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);
});
Ważne
Powyższy fragment kodu używa narzędzia Secret Manager do ładowania parametry połączenia App Configuration. Aby uzyskać informacje dotyczące przechowywania parametry połączenia przy użyciu menedżera wpisów tajnych, zobacz Przewodnik Szybki start dotyczący konfiguracji aplikacja systemu Azure za pomocą ASP.NET Core.
Metoda jest wywoływana Select
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
launchSettings.json
Otwórz plik w Properties
katalogu . config
Znajdź wpis w obszarze profiles
. environmentVariables
W sekcji 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.
Zaktualizuj launchSettings.json
, aby ustawić zmienną ASPNETCORE_ENVIRONMENT
na Development
. Uruchom ponownie polecenie 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.