Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce guide de démarrage rapide, vous allez créer un indicateur de fonctionnalité dans Azure App Configuration et l’utiliser pour contrôler dynamiquement la visibilité d’une nouvelle page web dans une application ASP.NET Core s’exécutant dans AKS sans le redémarrer ni la redéployer.
Prerequisites
Suivez les documents pour utiliser la configuration dynamique dans Azure Kubernetes Service.
- Démarrage rapide : Utiliser Azure App Configuration dans Azure Kubernetes Service
- Tutoriel : Utiliser la configuration dynamique dans Azure Kubernetes Service
Créer un indicateur de fonctionnalité
Ajoutez un indicateur de fonctionnalité appelé Bêta au magasin App Configuration et conservez les valeurs par défaut des options Étiquette et Description. Pour plus d’informations sur l’ajout d’indicateurs de fonctionnalité à un magasin à l’aide du Portail Azure ou de CLI, accédez à Créer un indicateur de fonctionnalité.
Utiliser un indicateur de fonctionnalité
Dans cette section, vous allez utiliser des indicateurs de fonctionnalité dans une application web simple ASP.NET et l’exécuter dans Azure Kubernetes Service (AKS).
Accédez au répertoire du projet que vous avez créé dans le guide de démarrage rapide, puis exécutez la commande suivante pour ajouter une référence au package NuGet Microsoft.FeatureManagement.AspNetCore version 3.2.0 ou ultérieure.
dotnet add package Microsoft.FeatureManagement.AspNetCoreOuvrez program.cs et ajoutez la gestion des fonctionnalités à la collection de services de votre application en appelant
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 // ... ...Ajoutez
using Microsoft.FeatureManagement;en haut du fichier s’il n’est pas présent.Ajoutez une nouvelle page Razor vide nommée Bêta sous le répertoire Pages . Il inclut deux fichiers Beta.cshtml et Beta.cshtml.cs.
Ouvrez Beta.cshtml et mettez-le à jour avec le balisage suivant :
@page @model MyWebApp.Pages.BetaModel @{ ViewData["Title"] = "Beta Page"; } <h1>This is the beta website.</h1>Ouvrez Beta.cshtml.cs et ajoutez
FeatureGatel’attribut à laBetaModelclasse. L’attributFeatureGategarantit que la page Bêta est accessible uniquement lorsque l’indicateur de fonctionnalité Bêta est activé. Si l’indicateur de fonctionnalité bêta n’est pas activé, la page retourne 404 Introuvable.using Microsoft.AspNetCore.Mvc.RazorPages; using Microsoft.FeatureManagement.Mvc; namespace MyWebApp.Pages { [FeatureGate("Beta")] public class BetaModel : PageModel { public void OnGet() { } } }Ouvrez Pages/_ViewImports.cshtml et inscrivez le Tag Helper du gestionnaire de fonctionnalités à l’aide d’une
@addTagHelperdirective :@addTagHelper *, Microsoft.FeatureManagement.AspNetCoreLe code précédent permet
<feature>à Tag Helper d’être utilisé dans les fichiers .cshtml du projet.Ouvrez _Layout.cshtml dans le répertoire Pages\partagés . Insérez une nouvelle
<feature>balise entre les éléments de la barre de navigation Accueil et Confidentialité , comme indiqué dans les lignes mises en surbrillance ci-dessous.<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>La
<feature>balise garantit que l’élément de menu Bêta est affiché uniquement lorsque l’indicateur de fonctionnalité bêta est activé.Conteneurisez l’application et envoyez l’image à Azure Container Registry.
Déployez l’application. Actualisez le navigateur et la page web se présente comme suit :
Utiliser le fournisseur Kubernetes pour charger des indicateurs de fonctionnalité
Mettez à jour le fichier appConfigurationProvider.yaml situé dans le répertoire de déploiement avec le contenu suivant.
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: trueConseil / Astuce
Quand aucune valeur n’est
selectorsspécifiée dansfeatureFlagla section, le fournisseur Kubernetes ne charge pas les indicateurs de fonctionnalités à partir de votre magasin App Configuration. L’intervalle d’actualisation par défaut des indicateurs de fonctionnalité est de 30 secondes quand ilfeatureFlag.refreshest activé. Vous pouvez personnaliser ce comportement via le paramètrefeatureFlag.refresh.interval.Exécutez la commande suivante pour appliquer les modifications.
kubectl apply -f ./Deployment -n appconfig-demoMettez à jour l’indicateur de fonctionnalité bêta dans votre magasin App Configuration. Activez l’indicateur en cochant la case située sous Activé.
Après avoir actualisé le navigateur plusieurs fois, le contenu mis à jour devient visible une fois que ConfigMap a été mis à jour dans les 30 secondes.
Sélectionnez le menu Bêta . Il vous amènera sur le site web bêta que vous avez activé dynamiquement.
Nettoyer les ressources
Désinstallez le fournisseur Kubernetes App Configuration de votre cluster AKS si vous souhaitez conserver le cluster AKS.
helm uninstall azureappconfiguration.kubernetesprovider --namespace azappconfig-system
Si vous ne souhaitez plus utiliser les ressources créées dans cet article, supprimez le groupe de ressources que vous avez créé ici afin d’éviter des frais.
Important
La suppression d’un groupe de ressources est irréversible. Le groupe de ressources et toutes les ressources qu’il contient sont supprimés définitivement. Veillez à ne pas supprimer accidentellement les mauvaises ressources ou le mauvais groupe de ressources. Si vous avez créé les ressources pour cet article dans un groupe de ressources contenant d’autres ressources que vous souhaitez conserver, supprimez chaque ressource individuellement à partir de son volet, au lieu de supprimer l’intégralité du groupe de ressources.
- Connectez-vous au portail Azure, puis sélectionnez Groupes de ressources.
- Dans la zone Filtrer par nom, entrez le nom de votre groupe de ressources.
- Dans la liste de résultats, sélectionnez le nom du groupe de ressources pour afficher une vue d’ensemble.
- Sélectionnez Supprimer le groupe de ressources.
- Vous êtes invité à confirmer la suppression du groupe de ressources. Entrez le nom de votre groupe de ressources à confirmer, puis sélectionnez Supprimer.
Après quelques instants, le groupe de ressources et toutes ses ressources sont supprimés.
Étapes suivantes
Dans ce guide de démarrage rapide, vous :
- Ajout de la fonctionnalité de gestion des fonctionnalités à une application ASP.NET Core s’exécutant dans Azure Kubernetes Service (AKS).
- Connectez votre cluster AKS à votre magasin App Configuration à l’aide du fournisseur Kubernetes App Configuration.
- Créez un ConfigMap avec des valeurs clés et des indicateurs de fonctionnalité à partir de votre magasin App Configuration.
- Exécution de l’application avec une configuration dynamique à partir de votre magasin App Configuration sans modifier le code de votre application.
Pour en savoir plus sur le fournisseur Kubernetes Azure App Configuration, consultez la référence du fournisseur Kubernetes Azure App Configuration.
Pour en savoir plus sur la fonctionnalité de gestion des fonctionnalités, passez au didacticiel suivant.