Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung erstellen Sie ein Feature-Flag in der Azure-App-Konfiguration und verwenden es, um die Verfügbarkeit einer neuen Webseite in einer Aspire-App dynamisch zu steuern, ohne sie neu zu starten oder erneut bereitzustellen.
Die Unterstützung für die Featureverwaltung stellt eine Erweiterung des Features für die dynamische Konfiguration in App Configuration dar. Das Beispiel in dieser Schnellstartanleitung basiert auf der Aspire-App, die im Lernprogramm zur dynamischen Konfiguration eingeführt wurde. Bevor Sie fortfahren, beenden Sie die Schnellstartanleitung und das Lernprogramm zum Erstellen einer Aspire-App mit dynamischer Konfiguration zuerst.
Voraussetzungen
Folgen Sie den Dokumenten, um eine Aspire-Lösung mit dynamischer Konfiguration zu erstellen.
- Schnellstart: Erstellen einer Aspire-Lösung mit App-Konfiguration
- Lernprogramm: Verwenden der dynamischen Konfiguration in einer Aspire-App
Erstellen eines Featureflags
Fügen Sie dem App-Konfigurationsspeicher ein Feature-Flag namens Beta hinzu (erstellt in den Schritten Voraussetzungen) und lassen Sie Label und Description mit ihren Standardwerten. Weitere Informationen zum Hinzufügen von Featurekennzeichnungen zu einem Store mithilfe des Azure-Portals oder der CLI finden Sie unter "Erstellen eines Featureflags".
Fügen Sie den folgenden Schlüsselwert über die Benutzeroberfläche des App-Konfigurations-Emulators hinzu.
| Key | Inhaltstyp | Wert |
|---|---|---|
| .appconfig.featureflag/Beta | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 | {"id":"Beta","enabled":false} |
Featurekennzeichnungen sind spezielle Schlüsselwerte, die Microsoft-Featurekennzeichnungen definieren. Konfigurationsanbieter identifizieren die Featurekennzeichnung anhand ihres spezifischen Inhaltstyps und Schlüsselpräfixes. Der Wert eines Feature-Flags ist ein json-Objekt, das folgt Microsoft Feature Flag schema.
- Feature-Flag-Inhaltstyp:
application/vnd.microsoft.appconfig.ff+json;charset=utf-8 - Präfix des Feature-Flag-Schlüssels:
.appconfig.featureflag/
Verwenden eines Featureflags
Navigieren Sie zum Verzeichnis des
WebProjekts (erstellt in den Schritten "Voraussetzungen "). Führen Sie den folgenden Befehl aus, um dasMicrosoft.FeatureManagement.AspNetCoreNuget-Paket hinzuzufügen.dotnet add package Microsoft.FeatureManagement.AspNetCoreÖffnen Sie Program.cs, und fügen Sie innerhalb des
UseFeatureFlagsAufrufs einen Aufruf derAddAzureAppConfigurationMethode hinzu. Sie können eine Verbindung mit App Configuration entweder mithilfe von Microsoft Entra ID (empfohlen) oder mit einer Verbindungszeichenfolge herstellen. Der folgende Codeausschnitt veranschaulicht die Verwendung von Microsoft Entra ID.builder.AddAzureAppConfiguration( "appconfiguration", configureOptions: options => { // Load all keys that start with `TestApp:` and have no label. options.Select("TestApp:*", LabelFilter.Null); // Reload configuration if any key-values have changed. options.ConfigureRefresh(refreshOptions => refreshOptions.RegisterAll()); // Load all feature flags with no label options.UseFeatureFlags(); });Tipp
Wenn kein Parameter an die
UseFeatureFlagsMethode übergeben wird, lädt er alle Featurekennzeichnungen ohne Bezeichnung im App-Konfigurationsspeicher. Das standardmäßige Aktualisierungsintervall von Featureflags beträgt 30 Sekunden. Sie können dieses Verhalten über denFeatureFlagOptions-Parameter anpassen. Der folgende Codeausschnitt lädt beispielsweise nur Featureflags, deren Schlüsselname mit TestApp: beginnt und die die Bezeichnung dev haben. Außerdem ändert der Code auch die Intervallzeit der Aktualisierung in 5 Minuten. Beachten Sie, dass diese Intervallzeit für Aktualisierungen von der für reguläre Schlüsselwerte unabhängig ist.options.UseFeatureFlags(featureFlagOptions => { featureFlagOptions.Select("TestApp:*", "dev"); featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5); });Fügen Sie die Featureverwaltung zur Dienstsammlung Ihrer App hinzu, indem Sie
AddFeatureManagementaufrufen.Aktualisieren Sie Program.cs mit dem folgenden Code.
// Existing code in Program.cs // ... ... // Add Azure App Configuration middleware to the container of services. builder.Services.AddAzureAppConfiguration(); // Add feature management to the container of services. builder.Services.AddFeatureManagement(); var app = builder.Build(); // The rest of existing code in program.cs // ... ...Fügen Sie oben in der Datei
using Microsoft.FeatureManagement;hinzu (sofern noch nicht vorhanden).Fügen Sie eine neue Razor-Seite namens Beta.razor unter dem Verzeichnis "Komponenten/Seiten " hinzu.
@page "/beta" @inject IFeatureManager FeatureManager @if (isBetaEnabled) { <h1>This is the beta website.</h1> } else { <h1>Not found.</h1> } @code { private bool isBetaEnabled; protected override async Task OnInitializedAsync() { isBetaEnabled = await FeatureManager.IsEnabledAsync("Beta"); } }Öffnen Sie _Imports.razor, und importieren Sie den Featureverwaltungsnamespace.
@using Microsoft.FeatureManagementÖffnen Sie NavMenu.razor im Verzeichnis "Components/Layout ".
Am Anfang der Datei einfügen
IVariantFeatureManager.@inject IVariantFeatureManager FeatureManager <div class="top-row ps-3 navbar navbar-dark"> <div class="container-fluid"> <a class="navbar-brand" href="">AspireApp</a> </div> </div>Fügen Sie den folgenden Code hinzu:
// Existing code // ... ... <div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()"> <nav class="nav flex-column"> // Existing code // ... ... @if (isBetaEnabled) { <div class="nav-item px-3"> <NavLink class="nav-link" href="beta"> <span class="bi bi-list-nested" aria-hidden="true"></span> Beta </NavLink> </div> } </nav> </div> @code { private bool isBetaEnabled; protected override async Task OnInitializedAsync() { isBetaEnabled = await FeatureManager.IsEnabledAsync("Beta"); } }
Lokales Ausführen der App
Führen Sie das
AppHostProjekt aus. Wechseln Sie zum Aspire-Dashboard, und öffnen Sie die Web-App.Navigieren Sie im Azure-Portal zum Feature-Manager Ihres App-Konfigurationsspeichers und suchen Sie den "Beta"-Feature-Flag. Aktivieren Sie die Kennzeichnung, indem Sie das Kontrollkästchen unter "Aktiviert" aktivieren.
Aktualisieren Sie die Seite ein paar Mal. Sobald das Zeitfenster für das Aktualisierungsintervall verstrichen ist, wird die Seite mit aktualisierten Inhalten angezeigt.
Klicken Sie auf die Schaltfläche "Beta ". Es bringt Sie zu der Betaseite, die Sie dynamisch aktiviert haben.
Lokales Ausführen der App
Führen Sie das
AppHostProjekt aus. Wechseln Sie zum Aspire-Dashboard, und öffnen Sie die Web-App.Wechseln Sie zum Emulator, bearbeiten Sie den Wert des Feature-Flags, um den Feature-Flag zu aktivieren.
Key Wert appconfig.featureflag/Beta {"id":"Beta","enabled":true} Aktualisieren Sie die Seite ein paar Mal. Wenn das Zeitfenster des Aktualisierungsintervalls verstrichen ist, wird die Seite mit aktualisierten Inhalten angezeigt.
Klicken Sie auf die Schaltfläche "Beta ". Es bringt Sie zu der Betaseite, die Sie dynamisch aktiviert haben.
Nächste Schritte
In diesem Schnellstart haben Sie eine Funktion zur Verwaltung von Features zu einer Aspire-App zusätzlich zur dynamischen Konfiguration hinzugefügt. Die Microsoft.FeatureManagement.AspNetCore-Bibliothek bietet Integration in ASP.NET Core-Apps, einschließlich der Featureverwaltung in MVC-Controlleraktionen, Razor Pages, Views, Routen und Middleware. Eine vollständige Übersicht über die .NET-Featureverwaltungsbibliothek finden Sie im folgenden Dokument.
Mit einem Featureflag können Sie zwar Funktionen in Ihrer App aktivieren oder deaktivieren, Sie können ein Featureflag aber auch basierend auf der Logik Ihrer App anpassen. Mit Featurefiltern können Sie ein Featureflag bedingt aktivieren. Weitere Informationen erhalten Sie im folgenden Tutorial.
Azure App Configuration bietet integrierte Featurefilter, mit denen Sie ein Featureflag nur während eines bestimmten Zeitraums oder für eine bestimmte Zielgruppe Ihrer App aktivieren können. Weitere Informationen erhalten Sie im folgenden Tutorial.
Um die Featureverwaltungsfunktion für andere Arten von Apps zu aktivieren, fahren Sie mit den folgenden Lernprogrammen fort.
Weitere Informationen zum Verwalten von Featureflags in Azure App Configuration erhalten Sie im folgenden Tutorial.