Verwenden von Bezeichnungen zum Bereitstellen von Konfigurationswerten pro Umgebung.
Viele Anwendungen müssen verschiedene Konfigurationen für unterschiedliche Umgebungen verwenden. Angenommen, eine Anwendung verfügt über einen Konfigurationswert, der die Verbindungszeichenfolge definiert, die für ihre Back-End-Datenbank verwendet werden soll. Die Entwickler der Anwendung verwenden eine andere Datenbank als die, die in der Produktion verwendet wird. Die von der Anwendung verwendete Datenbankverbindungszeichenfolge muss sich ändern, wenn die Anwendung von der Entwicklung zur Produktion übergeht.
In Azure App Configuration können Sie Bezeichnungen verwenden, um unterschiedliche Werte für denselben Schlüssel zu definieren. Beispielsweise können Sie einen einzelnen Schlüssel mit unterschiedlichen Werten für Entwicklung und Produktion definieren. Sie können angeben, welche Bezeichnung beim Herstellen einer Verbindung mit App Configuration geladen werden soll.
Um diese Funktionalität zu veranschaulichen, ändern wir die in Schnellstart: Erstellen einer ASP.NET Core-App mit Azure App Configuration erstellte Web-App so, dass verschiedene Konfigurationseinstellungen für Entwicklung und Produktion verwendet werden. Arbeiten Sie zuerst diesen Schnellstart durch, bevor Sie fortfahren.
Geben Sie beim Hinzufügen eines Konfigurationswerts eine Bezeichnung an.
Wechseln Sie im Azure-Portal in den Konfigurations-Explorer, und suchen Sie den Schlüssel TestApp:Settings:FontColor, den Sie in dem Schnellstart erstellt haben. Wählen Sie sein Kontextmenü aus, und wählen Sie dann Wert hinzufügen aus.
Geben Sie im Bildschirm Wert hinzufügen den WertRot und die BezeichnungEntwicklung ein. Lassen Sie Inhaltstyp leer. Wählen Sie Übernehmen.
Laden von Konfigurationswerten mit einer angegebenen Bezeichnung
Standardmäßig lädt Azure App Configuration nur Konfigurationswerte ohne Bezeichnung. Wenn Sie Bezeichnungen für Ihre Konfigurationswerte definiert haben, sollten Sie die Bezeichnung angeben, die beim Herstellen einer Verbindung mit App Configuration verwendet werden soll.
Im vorherigen Abschnitt haben Sie einen anderen Konfigurationswert für die Entwicklungsumgebung erstellt. Verwenden Sie die Variable HostingEnvironment.EnvironmentName
, um dynamisch zu ermitteln, in welcher Umgebung die App aktuell ausgeführt wird. Weitere Informationen finden Sie unter Verwenden von mehreren Umgebungen in ASP.NET Core.
Fügen Sie einen Verweis auf den Namespace Microsoft.Extensions.Configuration.AzureAppConfiguration hinzu, um auf die Klassen KeyFilter und LabelFilter zuzugreifen.
using Microsoft.Extensions.Configuration.AzureAppConfiguration;
Laden Sie Konfigurationswerte mit der Bezeichnung, die der aktuellen Umgebung entspricht, indem Sie den Umgebungsnamen an die Select
-Methode übergeben:
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);
});
Wichtig
Im vorangehenden Codeausschnitt wird das Geheimnisverwaltertool verwendet, um Verbindungszeichenfolge für App Configuration zu laden. Informationen zum Speichern der Verbindungszeichenfolge mithilfe des Geheimnisverwalters finden Sie unter Schnellstart für Azure App Configuration mit ASP.NET Core.
Die Select
-Methode wird zweimal aufgerufen. Beim ersten Mal werden Konfigurationswerte ohne Bezeichnung geladen. Danach werden Konfigurationswerte mit der Bezeichnung geladen, die der aktuellen Umgebung entspricht. Diese umgebungsspezifischen Werte setzen alle entsprechenden Werte ohne Bezeichnung außer Kraft. Sie müssen nicht für jeden Schlüssel umgebungsspezifische Werte definieren. Wenn ein Schlüssel keinen Wert mit einer Bezeichnung besitzt, die der aktuellen Umgebung entspricht, wird der Wert ohne Bezeichnung verwendet.
Testen in unterschiedlichen Umgebungen
Öffnen Sie die Datei launchSettings.json
im Verzeichnis Properties
. Suchen Sie den Eintrag config
unter profiles
. Legen Sie im Abschnitt environmentVariables
den die Variable ASPNETCORE_ENVIRONMENT
auf Production
fest.
Erstellen Sie Ihre Anwendung mit den neuen Werten, und führen Sie sie aus.
dotnet build
dotnet run
Wechseln Sie in einem Webbrowser zu http://localhost:5000
. Sie werden feststellen, dass die Schriftfarbe Schwarz ist.
Aktualisieren Sie launchSettings.json
, um die Variable ASPNETCORE_ENVIRONMENT
auf Development
festzulegen. Führen Sie dotnet run
erneut aus.
Sie werden feststellen, dass die Schriftfarbe Rot ist. Dies liegt daran, dass die Anwendung jetzt den Wert von TestApp:Settings:FontColor
verwendet, die die Bezeichnung Development
verwendet. Alle anderen Konfigurationswerte bleiben identisch mit ihren Produktionswerten.