Teilen über


Schnellstart: Hinzufügen von Featurekennzeichnungen zu Workloads in Azure Kubernetes Service

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.

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".

Screenshot, der das Erstellen des Featurekennzeichnungs

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.

  1. 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
    
  2. Ö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.

  3. 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 BetaModel Klasse Attribut hinzuFeatureGate. Das FeatureGate Attribut 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()
            {
            }
        }
    }   
    
  4. Öffnen Sie Pages/_ViewImports.cshtml, und registrieren Sie die Feature-Manager-Tag-Hilfsprogramm mithilfe einer @addTagHelper Direktive:

    @addTagHelper *, Microsoft.FeatureManagement.AspNetCore
    

    Mit dem vorherigen Code kann das <feature> Tag-Hilfsprogramm in den CSHTML-Dateien des Projekts verwendet werden.

  5. Ö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.

  6. Containerisieren Sie die Anwendung , und übertragen Sie das Image in die Azure-Containerregistrierung.

  7. Stellen Sie die Anwendung bereit. Aktualisieren Sie den Browser, und die Webseite sieht wie folgt aus:

    Screenshot des Kubernetes-Anbieters nach der Verwendung von configMap ohne Featurekennzeichnung.

Verwenden des Kubernetes-Anbieters zum Laden von Featurekennzeichnungen

  1. 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: true
    

    Tipp

    Wenn kein selectorsfeatureFlag Abschnitt angegeben ist, lädt der Kubernetes-Anbieter keine Featurekennzeichnungen aus Ihrem App-Konfigurationsspeicher. Das standardmäßige Aktualisierungsintervall von Featurekennzeichnungen beträgt 30 Sekunden, wenn featureFlag.refresh diese aktiviert sind. Sie können dieses Verhalten über den featureFlag.refresh.interval-Parameter anpassen.

  2. Führen Sie den folgenden Befehl aus, um die Änderungen anzuwenden.

    kubectl apply -f ./Deployment -n appconfig-demo
    
  3. Aktualisieren Sie das Feature-Flag "Beta" im App-Konfigurationsspeicher. Aktivieren Sie die Kennzeichnung, indem Sie das Kontrollkästchen unter "Aktiviert" aktivieren.

  4. Nach der mehrfachen Aktualisierung des Browsers wird der aktualisierte Inhalt sichtbar, sobald die ConfigMap innerhalb von 30 Sekunden aktualisiert wurde.

    Screenshot des Kubernetes-Anbieters nach der Verwendung von configMap mit aktivierter Featurekennzeichnung.

  5. Wählen Sie das Betamenü aus. Es bringt Sie zur Beta-Website, die Sie dynamisch aktiviert haben.

    Screenshot der Betaseite Kubernetes Provider nach der Verwendung von configMap.

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.

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
  2. Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
  3. Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
  4. Wählen Sie die Option Ressourcengruppe löschen.
  5. 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.