Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart maakt u een functievlag in Azure App Configuration en gebruikt u deze om de zichtbaarheid van een nieuwe webpagina in een ASP.NET Core-app die wordt uitgevoerd in AKS dynamisch te beheren zonder deze opnieuw te starten of opnieuw te implementeren.
Vereiste voorwaarden
Volg de documenten voor het gebruik van dynamische configuratie in Azure Kubernetes Service.
- Quickstart: Azure App Configuration gebruiken in Azure Kubernetes Service
- Zelfstudie: Dynamische configuratie gebruiken in Azure Kubernetes Service
Een functievlag maken
Voeg een functievlag met de naam Beta toe aan het App Configuration-archief en laat label en beschrijving ongewijzigd met de standaardwaarden. Ga naar Een functievlag maken voor meer informatie over het toevoegen van functievlagmen aan een winkel met behulp van Azure Portal of de CLI.
Een functievlag gebruiken
In deze sectie gebruikt u functievlagmen in een eenvoudige ASP.NET webtoepassing en voert u deze uit in Azure Kubernetes Service (AKS).
Navigeer naar de map van het project die u in de quickstart hebt gemaakt en voer de volgende opdracht uit om een verwijzing naar het NuGet-pakket Microsoft.FeatureManagement.AspNetCore NuGet-pakket versie 3.2.0 of hoger toe te voegen.
dotnet add package Microsoft.FeatureManagement.AspNetCoreOpen program.cs en voeg functiebeheer toe aan de serviceverzameling van uw app door aan te roepen
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 // ... ...Voeg boven aan het bestand toe
using Microsoft.FeatureManagement;als het niet aanwezig is.Voeg een nieuwe lege Razor-pagina toe met de naam Beta onder de map Pagina's . Het bevat twee bestanden Beta.cshtml en Beta.cshtml.cs.
Open Beta.cshtml en werk deze bij met de volgende markeringen:
@page @model MyWebApp.Pages.BetaModel @{ ViewData["Title"] = "Beta Page"; } <h1>This is the beta website.</h1>Open Beta.cshtml.cs en voeg het kenmerk toe
FeatureGateaan deBetaModelklasse. HetFeatureGatekenmerk zorgt ervoor dat de bètapagina alleen toegankelijk is wanneer de vlag bètafunctie is ingeschakeld. Als de bètafunctievlag niet is ingeschakeld, retourneert de pagina 404 Niet gevonden.using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.FeatureManagement.Mvc; namespace MyWebApp.Pages { [FeatureGate("Beta")] public class BetaModel : PageModel { public void OnGet() { } } }Open Pages/_ViewImports.cshtml en registreer de Tag Helper voor functiebeheer met behulp van een
@addTagHelperinstructie:@addTagHelper *, Microsoft.FeatureManagement.AspNetCoreMet de voorgaande code kan de
<feature>Tag Helper worden gebruikt in de .cshtml-bestanden van het project.Open _Layout.cshtml in degedeelde map Pagina's\. Voeg een nieuwe
<feature>tag in tussen de navigatiebalkitems Start en Privacy , zoals wordt weergegeven in de gemarkeerde regels hieronder.<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>De
<feature>tag zorgt ervoor dat het menu-item Bèta alleen wordt weergegeven wanneer de vlag bètafunctie is ingeschakeld.Plaats de toepassing in een container en push de installatiekopieën naar Azure Container Registry.
Implementeer de toepassing. Vernieuw de browser en de webpagina ziet er als volgt uit:
Kubernetes Provider gebruiken om functievlagmen te laden
Werk het bestand appConfigurationProvider.yaml in de implementatiemap bij met de volgende inhoud.
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: trueAanbeveling
Als er geen zijn
selectorsopgegeven infeatureFlagde sectie, worden functievlagmen van de Kubernetes-provider niet geladen vanuit uw App Configuration-archief. Het standaardvernieuwingsinterval van functievlagmen is 30 seconden wanneerfeatureFlag.refreshdeze optie is ingeschakeld. U kunt dit gedrag aanpassen via defeatureFlag.refresh.intervalparameter.Voer de volgende opdracht uit om de wijzigingen toe te passen.
kubectl apply -f ./Deployment -n appconfig-demoWerk de bètafunctievlag bij in uw App Configuration-archief. Schakel de vlag in door het selectievakje onder Ingeschakeld in te schakelen.
Nadat de browser meerdere keren is vernieuwd, wordt de bijgewerkte inhoud zichtbaar zodra de ConfigMap binnen 30 seconden is bijgewerkt.
Selecteer het menu Bèta . Het brengt u naar de bètawebsite die u dynamisch hebt ingeschakeld.
De hulpbronnen opschonen
Verwijder de App Configuration Kubernetes Provider van uw AKS-cluster als u het AKS-cluster wilt behouden.
helm uninstall azureappconfiguration.kubernetesprovider --namespace azappconfig-system
Als u de resources die in dit artikel zijn gemaakt niet wilt blijven gebruiken, verwijdert u de resourcegroep die u hier hebt gemaakt om kosten te voorkomen.
Belangrijk
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde groep of bronnen verwijdert. Als u de resources voor dit artikel in een resourcegroep hebt gemaakt die andere resources bevat die u wilt behouden, moet u elke resource afzonderlijk verwijderen uit het deelvenster in plaats van dat u de resourcegroep verwijdert.
- Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
- Voer in het vak Filteren op naam de naam van uw resourcegroep in.
- Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
- Selecteer Resourcegroep verwijderen.
- U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Voer de naam van de resourcegroep in die u wilt bevestigen en selecteer Verwijderen.
Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.
Volgende stappen
In deze snelstart, gaat u het volgende doen:
- Functiebeheer toegevoegd aan een ASP.NET Core-app die wordt uitgevoerd in Azure Kubernetes Service (AKS).
- Uw AKS-cluster verbonden met uw App Configuration-archief met behulp van de App Configuration Kubernetes-provider.
- U hebt een ConfigMap gemaakt met sleutelwaarden en functievlagmen uit uw App Configuration-archief.
- De toepassing is uitgevoerd met dynamische configuratie vanuit uw App Configuration-archief zonder de toepassingscode te wijzigen.
Ga verder met de volgende zelfstudie voor meer informatie over functiebeheer.