Sdílet prostřednictvím


Rychlý start: Přidání příznaků funkcí do úloh ve službě Azure Kubernetes Service

V tomto rychlém startu vytvoříte příznak funkce v konfiguraci Aplikace Azure a použijete ho k dynamickému řízení viditelnosti nové webové stránky v aplikaci ASP.NET Core běžící v AKS bez restartování nebo opětovného nasazení.

Požadavky

Postupujte podle dokumentů a použijte dynamickou konfiguraci ve službě Azure Kubernetes Service.

Vytvoření příznaku funkce

Přidejte příznak funkce s názvem Beta do obchodu App Configuration Store a ponechte popis a popis s výchozími hodnotami. Další informace o přidání příznaků funkcí do úložiště pomocí webu Azure Portal nebo rozhraní příkazového řádku najdete v části Vytvoření příznaku funkce.

Snímek obrazovky znázorňující vytvoření příznaku funkce s názvem Beta

Použití příznaku funkce

V této části použijete příznaky funkcí v jednoduché ASP.NET webové aplikaci a spustíte ji ve službě Azure Kubernetes Service (AKS).

  1. Přejděte do adresáře projektu, který jste vytvořili v rychlém startu, a spuštěním následujícího příkazu přidejte odkaz na balíček NuGet Microsoft.FeatureManagement.AspNetCore verze 3.2.0 nebo novější.

    dotnet add package Microsoft.FeatureManagement.AspNetCore
    
  2. Otevřete program.cs a přidejte správu funkcí do kolekce služeb vaší aplikace voláním 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
    // ... ...
    

    Pokud soubor není k dispozici, přidejte using Microsoft.FeatureManagement; ho do horní části souboru.

  3. Do adresáře Pages přidejte novou prázdnou stránku Razor Page s názvem Beta. Obsahuje dva soubory Beta.cshtml a Beta.cshtml.cs.

    Otevřete Beta.cshtml a aktualizujte ho následujícím kódem:

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

    Otevřete Beta.cshtml.cs a přidejte FeatureGate do třídy atributBetaModel. Atribut FeatureGate zajišťuje, že stránka Beta je přístupná pouze v případech, kdy je povolen příznak funkce Beta . Pokud příznak funkce Beta není povolený, stránka vrátí hodnotu 404 Nenalezeno.

    using Microsoft.AspNetCore.Mvc.RazorPages;
    using Microsoft.FeatureManagement.Mvc;
    
    namespace MyWebApp.Pages
    {
        [FeatureGate("Beta")]
        public class BetaModel : PageModel
        {
            public void OnGet()
            {
            }
        }
    }   
    
  4. Otevřete Pages/_ViewImports.cshtml a zaregistrujte pomocníka pro označování značek správce funkcí pomocí @addTagHelper direktivy:

    @addTagHelper *, Microsoft.FeatureManagement.AspNetCore
    

    Předchozí kód umožňuje, aby pomocné rutiny <feature> značek byly použity v souborech .cshtml projektu.

  5. Otevřete soubor _Layout.cshtml v adresáři Sdílené stránky\. Vložte novou <feature> značku mezi položky domovské stránky a navigačního panelu ochrany osobních údajů, jak je znázorněno na zvýrazněných řádcích níže.

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

    Značka <feature> zajišťuje, že se položka nabídky Beta zobrazí jenom v případech, kdy je povolen příznak funkce Beta .

  6. Kontejnerizujte aplikaci a odešlete image do služby Azure Container Registry.

  7. Nasaďte aplikaci. Aktualizujte prohlížeč a webová stránka bude vypadat takto:

    Snímek obrazovky znázorňující zprostředkovatele Kubernetes po použití objektu configMap bez příznaku funkce

Použití zprostředkovatele Kubernetes k načtení příznaků funkcí

  1. Aktualizujte soubor appConfigurationProvider.yaml umístěný v adresáři nasazení následujícím obsahem.

    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
    

    Tip

    Pokud není v featureFlag oddílu uvedeno žádnéselectors, poskytovatel Kubernetes nebude načítat příznaky funkcí z vašeho App Configuration Storu. Výchozí interval aktualizace příznaků funkcí je 30 sekund, pokud je featureFlag.refresh tato možnost povolená. Toto chování můžete přizpůsobit pomocí parametru featureFlag.refresh.interval .

  2. Spuštěním následujícího příkazu změny použijte.

    kubectl apply -f ./Deployment -n appconfig-demo
    
  3. Aktualizujte příznak funkce Beta v obchodě App Configuration Store. Povolte příznak zaškrtnutím políčka v části Povoleno.

  4. Po vícenásobné aktualizaci prohlížeče se aktualizovaný obsah zobrazí po aktualizaci objektu ConfigMap během 30 sekund.

    Snímek obrazovky zobrazujícího zprostředkovatele Kubernetes po použití objektu configMap s povoleným příznakem funkce

  5. Vyberte nabídku Beta. Přenese vás na beta web, který jste dynamicky povolili.

    Snímek obrazovky s beta stránkou zprostředkovatele Kubernetes po použití configMap

Vyčištění prostředků

Pokud chcete zachovat cluster AKS, odinstalujte z clusteru AKS zprostředkovatele Kubernetes služby App Configuration.

helm uninstall azureappconfiguration.kubernetesprovider --namespace azappconfig-system

Pokud nechcete dál používat prostředky vytvořené v tomto článku, odstraňte skupinu prostředků, kterou jste tady vytvořili, abyste se vyhnuli poplatkům.

Důležité

Odstranění skupiny prostředků je nevratné. Skupina prostředků a všechny prostředky v ní se trvale odstraní. Ujistěte se, že omylem neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek ve skupině prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte jednotlivé prostředky z příslušného podokna místo odstranění skupiny prostředků.

  1. Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
  2. Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
  3. V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
  4. Vyberte Odstranit skupinu prostředků.
  5. Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Potvrďte název skupiny prostředků a vyberte Odstranit.

Po chvíli se skupina prostředků a všechny její prostředky odstraní.

Další kroky

V tomto rychlém startu:

  • Přidání funkce pro správu funkcí do aplikace ASP.NET Core běžící ve službě Azure Kubernetes Service (AKS).
  • Připojení cluster AKS do úložiště App Configuration Store pomocí zprostředkovatele Kubernetes konfigurace aplikace.
  • Vytvořili jste objekt ConfigMap s hodnotami klíčů a příznaky funkcí z obchodu App Configuration Store.
  • Spustili jste aplikaci s dynamickou konfigurací z app Configuration Storu beze změny kódu aplikace.

Další informace o poskytovateli Aplikace Azure Konfigurace Kubernetes najdete v tématu Aplikace Azure Referenční informace o poskytovateli konfigurace Kubernetes.

Další informace o možnostech správy funkcí najdete v následujícím kurzu.