Anmerkung
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 Featurekennzeichen in der Azure-App-Konfiguration und verwenden es, um die Sichtbarkeit einer neuen Webseite in einer ASP.NET Core-App, die in AKS ausgeführt wird, dynamisch zu steuern, ohne sie neu zu starten oder erneut bereitzustellen.
Voraussetzungen
Folgen Sie den Dokumenten, um die dynamische Konfiguration in Azure Kubernetes Service zu verwenden.
- Schnellstart: Verwenden der Azure-App-Konfiguration in Azure Kubernetes Service
- Lernprogramm: Verwenden der dynamischen Konfiguration in Azure Kubernetes Service
Erstellen eines Featureflags
Fügen Sie dem App-Konfigurationsspeicher eine Feature-Flag namens Beta hinzu und lassen Sie Bezeichnung und Beschreibung 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".
Verwenden eines Featureflags
In diesem Abschnitt verwenden Sie Featurekennzeichnungen in einer einfachen ASP.NET Webanwendung und führen sie in Azure Kubernetes Service (AKS) aus.
Navigieren Sie in das Verzeichnis des Projekts, das Sie in der Schnellstartanleitung erstellt haben, und führen Sie den folgenden Befehl aus, um einen Verweis auf das Paket "Microsoft.FeatureManagement.AspNetCore NuGet", Version 3.2.0 oder höher, hinzuzufügen.
dotnet add package Microsoft.FeatureManagement.AspNetCoreÖffnen Sie program.cs, und fügen Sie die Featureverwaltung zur Dienstsammlung Ihrer App hinzu, indem Sie aufrufen
AddFeatureManagement.// Existing code in Program.cs // ... ... // Add a JSON configuration source builder.Configuration.AddJsonFile("config/mysettings.json", reloadOnChange: true, optional: false); // 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
using Microsoft.FeatureManagement;oben in der Datei hinzu, wenn sie nicht vorhanden ist.Fügen Sie eine neue leere Razor-Seite namens Beta unter dem Verzeichnis "Seiten" hinzu. Sie enthält zwei Dateien Beta.cshtml und Beta.cshtml.cs.
Öffnen Sie Beta.cshtml, und aktualisieren Sie es mit dem folgenden Markup:
@page @model MyWebApp.Pages.BetaModel @{ ViewData["Title"] = "Beta Page"; } <h1>This is the beta website.</h1>Öffnen Sie Beta.cshtml.cs, und fügen Sie der
BetaModelKlasse Attribut hinzuFeatureGate. DasFeatureGateAttribut stellt sicher, dass auf die Betaseite nur zugegriffen werden kann, wenn die Beta-Featurekennzeichnung aktiviert ist. Wenn die Beta-Featurekennzeichnung nicht aktiviert ist, gibt die Seite 404 Nicht gefunden zurück.using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.FeatureManagement.Mvc; namespace MyWebApp.Pages { [FeatureGate("Beta")] public class BetaModel : PageModel { public void OnGet() { } } }Öffnen Sie Pages/_ViewImports.cshtml, und registrieren Sie die Feature-Manager-Tag-Hilfsprogramm mithilfe einer
@addTagHelperDirektive:@addTagHelper *, Microsoft.FeatureManagement.AspNetCoreMit dem vorherigen Code kann das
<feature>Tag-Hilfsprogramm in den CSHTML-Dateien des Projekts verwendet werden.Öffnen Sie _Layout.cshtml im Verzeichnis "Freigegebene Seiten\" . Fügen Sie ein neues
<feature>Tag zwischen den Navigationsleistenelementen "Start" und " Datenschutz " ein, wie in den hervorgehobenen Zeilen unten dargestellt.<div class="navbar-collapse collapse d-sm-inline-flex flex-sm-row-reverse"> <ul class="navbar-nav flex-grow-1"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Index">Home</a> </li> <feature name="Beta"> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Beta">Beta</a> </li> </feature> <li class="nav-item"> <a class="nav-link text-dark" asp-area="" asp-page="/Privacy">Privacy</a> </li> </ul> </div>Das
<feature>Tag stellt sicher, dass das Betamenüelement nur angezeigt wird, wenn die Beta-Featurekennzeichnung aktiviert ist.Containerisieren Sie die Anwendung , und übertragen Sie das Image in die Azure-Containerregistrierung.
Stellen Sie die Anwendung bereit. Aktualisieren Sie den Browser, und die Webseite sieht wie folgt aus:
Verwenden des Kubernetes-Anbieters zum Laden von Featurekennzeichnungen
Aktualisieren Sie die Datei "appConfigurationProvider.yaml " im Bereitstellungsverzeichnis mit dem folgenden Inhalt.
apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: endpoint: <your-app-configuration-store-endpoint> target: configMapName: configmap-created-by-appconfig-provider configMapData: type: json key: mysettings.json auth: workloadIdentity: managedIdentityClientId: <your-managed-identity-client-id> featureFlag: selectors: - keyFilter: 'Beta' refresh: enabled: trueTipp
Wenn kein
selectorsfeatureFlagAbschnitt angegeben ist, lädt der Kubernetes-Anbieter keine Featurekennzeichnungen aus Ihrem App-Konfigurationsspeicher. Das standardmäßige Aktualisierungsintervall von Featurekennzeichnungen beträgt 30 Sekunden, wennfeatureFlag.refreshdiese aktiviert sind. Sie können dieses Verhalten über denfeatureFlag.refresh.interval-Parameter anpassen.Führen Sie den folgenden Befehl aus, um die Änderungen anzuwenden.
kubectl apply -f ./Deployment -n appconfig-demoAktualisieren Sie das Feature-Flag "Beta" im App-Konfigurationsspeicher. Aktivieren Sie die Kennzeichnung, indem Sie das Kontrollkästchen unter "Aktiviert" aktivieren.
Nach der mehrfachen Aktualisierung des Browsers wird der aktualisierte Inhalt sichtbar, sobald die ConfigMap innerhalb von 30 Sekunden aktualisiert wurde.
Wählen Sie das Betamenü aus. Es bringt Sie zur Beta-Website, die Sie dynamisch aktiviert haben.
Bereinigen von Ressourcen
Deinstallieren Sie den App-Konfigurations-Kubernetes-Anbieter aus Ihrem AKS-Cluster, wenn Sie den AKS-Cluster beibehalten möchten.
helm uninstall azureappconfiguration.kubernetesprovider --namespace azappconfig-system
Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.
Von Bedeutung
Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.
- Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
- Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
- Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
- Wählen Sie die Option Ressourcengruppe löschen.
- Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.
Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.
Nächste Schritte
In dieser Schnellstartanleitung führen Sie die folgenden Schritte aus:
- Featureverwaltungsfunktion zu einer ASP.NET Core-App hinzugefügt, die in Azure Kubernetes Service (AKS) ausgeführt wird.
- Verbinden Sie Ihren AKS-Cluster mit Ihrem App-Konfigurationsspeicher mithilfe des Kubernetes-Anbieters für die App-Konfiguration.
- Erstellt eine ConfigMap mit Schlüsselwerten und Featurekennzeichnungen aus Ihrem App-Konfigurationsspeicher.
- Führen Sie die Anwendung mit dynamischer Konfiguration aus dem App-Konfigurationsspeicher aus, ohne den Anwendungscode zu ändern.
Weitere Informationen zum Azure App-Konfigurations-Kubernetes-Anbieter finden Sie unter Azure App Configuration Kubernetes Provider Reference.
Wenn Sie mehr über die Featureverwaltungsfunktion erfahren möchten, fahren Sie mit dem folgenden Lernprogramm fort.