Megosztás a következőn keresztül:


Rövid útmutató: Funkciójelzők hozzáadása számítási feladatokhoz az Azure Kubernetes Service-ben

Ebben a rövid útmutatóban létrehoz egy funkciójelzőt az Azure App Configurationban, és segítségével dinamikusan szabályozhatja az AKS-ben futó ASP.NET Core-alkalmazások új weblapjainak láthatóságát újraindítás vagy ismételt üzembe helyezés nélkül.

Előfeltételek

Kövesse a dokumentumokat a dinamikus konfiguráció használatához az Azure Kubernetes Service-ben.

Funkciójelző létrehozása

Adjon hozzá egy bétaverzió nevű funkciójelzőt az Alkalmazáskonfigurációs áruházhoz, és hagyja meg a címkét és a leírást az alapértelmezett értékekkel. Ha többet szeretne tudni arról, hogyan adhat hozzá funkciójelzőket egy áruházhoz az Azure Portal vagy a parancssori felület használatával, lépjen a Funkciójelölő létrehozása elemre.

Képernyőkép a bétaverzió nevű funkciójelző létrehozásáról.

Funkciójelző használata

Ebben a szakaszban funkciójelzőket fog használni egy egyszerű ASP.NET webalkalmazásban, és futtatja az Azure Kubernetes Service-ben (AKS).

  1. Lépjen a projekt rövid útmutatóban létrehozott könyvtárába, és futtassa a következő parancsot a Microsoft.FeatureManagement.AspNetCore NuGet csomag 3.2.0-s vagy újabb verziójára mutató hivatkozás hozzáadásához.

    dotnet add package Microsoft.FeatureManagement.AspNetCore
    
  2. Nyissa meg a program.cs, és hívja AddFeatureManagementmeg az alkalmazás szolgáltatásgyűjteményét, és adja hozzá a szolgáltatásfelügyeletet.

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

    Ha nincs jelen, adja hozzá using Microsoft.FeatureManagement; a fájl tetején.

  3. Adjon hozzá egy új, Béta nevű üres Razor-lapot a Pages könyvtárban. Két fájlt tartalmaz Beta.cshtml és Beta.cshtml.cs.

    Nyissa meg a Beta.cshtml fájlt, és frissítse a következő korrektúrával:

    @page
    @model MyWebApp.Pages.BetaModel
    @{
        ViewData["Title"] = "Beta Page";
    }
    
    <h1>This is the beta website.</h1>
    

    Nyissa meg a Beta.cshtml.cs, és adjon hozzá FeatureGate attribútumot az BetaModel osztályhoz. Az FeatureGate attribútum biztosítja, hogy a bétaoldal csak akkor legyen elérhető, ha a bétaverzió funkciójelzője engedélyezve van. Ha a bétaverzió funkciójelzője nincs engedélyezve, a lap a 404 Nem található értéket adja vissza.

    using Microsoft.AspNetCore.Mvc.RazorPages;
    using Microsoft.FeatureManagement.Mvc;
    
    namespace MyWebApp.Pages
    {
        [FeatureGate("Beta")]
        public class BetaModel : PageModel
        {
            public void OnGet()
            {
            }
        }
    }   
    
  4. Nyissa meg a Pages/_ViewImports.cshtml fájlt, és regisztrálja a funkciókezelő címkesegítőjét egy @addTagHelper irányelv használatával:

    @addTagHelper *, Microsoft.FeatureManagement.AspNetCore
    

    Az előző kód lehetővé teszi a <feature> címkesegítő használatát a projekt .cshtml fájljaiban.

  5. Nyissa meg a _Layout.cshtml fájlt a Megosztott lapok\ könyvtárban. Szúrjon be egy új <feature> címkét a Kezdőlap és az Adatvédelem navigációs sáv elemei közé az alábbi kiemelt sorokban látható módon.

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

    A <feature> címke biztosítja, hogy a Béta menüelem csak akkor jelenjen meg, ha a bétaverzió funkciójelzője engedélyezve van.

  6. Az alkalmazás tárolóba helyezése és a rendszerkép leküldése az Azure Container Registrybe.

  7. Telepítse az alkalmazást. Frissítse a böngészőt, és a weblap így fog kinézni:

    Képernyőkép a Kubernetes Providerről a konfigurációtérkép funkciójelző nélküli használata után.

Funkciójelzők betöltése a Kubernetes Provider használatával

  1. Frissítse az üzembehelyezési könyvtárban található appConfigurationProvider.yaml fájlt a következő tartalommal.

    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
    

    Jótanács

    Ha a szakaszban nincs selectors megadva featureFlag , a Kubernetes-szolgáltató nem tölt be funkciójelzőket az Alkalmazáskonfigurációs áruházból. A funkciójelölők alapértelmezett frissítési időköze 30 másodperc, ha featureFlag.refresh engedélyezve van. Ezt a viselkedést a featureFlag.refresh.interval paraméteren keresztül szabhatja testre.

  2. Futtassa a következő parancsot a módosítások alkalmazásához.

    kubectl apply -f ./Deployment -n appconfig-demo
    
  3. Frissítse a bétafunkció-jelzőt az Alkalmazáskonfigurációs áruházban. Engedélyezze a jelölőt az Engedélyezve jelölőnégyzet bejelölésével.

  4. A böngésző többszöri frissítése után a frissített tartalom 30 másodpercen belül láthatóvá válik, miután a ConfigMap frissült.

    Képernyőkép a Kubernetes-szolgáltatóról a konfigurációtérkép engedélyezése után.

  5. Válassza a Béta menüt. Ezzel elérhetővé válik a dinamikusan engedélyezett bétaverziós webhely.

    Képernyőkép a kubernetes provider bétaoldalról a konfigurációtérkép használata után.

Erőforrások tisztítása

Távolítsa el az alkalmazáskonfigurációs Kubernetes-szolgáltatót az AKS-fürtből, ha meg szeretné tartani az AKS-fürtöt.

helm uninstall azureappconfiguration.kubernetesprovider --namespace azappconfig-system

Ha nem szeretné folytatni a cikkben létrehozott erőforrások használatát, törölje az itt létrehozott erőforráscsoportot a díjak elkerülése érdekében.

Fontos

Egy erőforráscsoport törlése visszafordíthatatlan. Az erőforráscsoport és a benne lévő összes erőforrás véglegesen törlődik. Győződjön meg arról, hogy nem véletlenül törli a rossz erőforráscsoportot vagy erőforrásokat. Ha a cikk erőforrásait olyan erőforráscsoporton belül hozta létre, amely más megtartani kívánt erőforrásokat tartalmaz, törölje az egyes erőforrásokat a megfelelő panelről az erőforráscsoport törlése helyett.

  1. Jelentkezzen be az Azure Portalra, és válassza ki az Erőforráscsoportokat.
  2. A Szűrés név szerint mezőbe írja be az erőforráscsoport nevét.
  3. Az eredménylistában válassza ki az erőforráscsoport nevét az áttekintés megtekintéséhez.
  4. Válassza az Erőforráscsoport törlése lehetőséget.
  5. A rendszer az erőforráscsoport törlésének megerősítését kéri. Adja meg a megerősítéshez az erőforráscsoport nevét, és válassza a Törlés lehetőséget.

Néhány pillanat múlva az erőforráscsoport és annak összes erőforrása törlődik.

Következő lépések

Ebben a gyors kezdő útmutatóban a következőket teheti meg:

  • Funkciófelügyeleti funkció hozzáadva az Azure Kubernetes Service-ben (AKS) futó ASP.NET Core-alkalmazáshoz.
  • Az AKS-fürtöt az Alkalmazáskonfigurációs tárhoz csatlakoztatta az alkalmazáskonfigurációs Kubernetes-szolgáltatóval.
  • Létrehozott egy konfigurációtérképet kulcsértékekkel és funkciójelzőkkel az Alkalmazáskonfigurációs áruházból.
  • Dinamikus konfigurációval futtatta az alkalmazást az Alkalmazáskonfigurációs áruházból az alkalmazáskód módosítása nélkül.

Az Azure App Configuration Kubernetes Provider szolgáltatással kapcsolatos további információkért tekintse meg az Azure App Configuration Kubernetes Provider referenciáját.

A szolgáltatásfelügyeleti képességről az alábbi oktatóanyagban olvashat bővebben.