Sdílet prostřednictvím


Rychlý start: Přidání příznaků funkcí do služby na pozadí .NET

V tomto rychlém startu začleníte funkci správy funkcí z Aplikace Azure Konfigurace do služby .NET background. App Configuration slouží k centrálnímu ukládání a správě příznaků funkcí.

Požadavky

Podpora správy funkcí rozšiřuje funkci dynamické konfigurace v App Configuration. Příklad v tomto rychlém startu vychází z aplikace služby .NET background představené v kurzu dynamické konfigurace. Než budete pokračovat, dokončete následující kurz a nejprve vytvořte aplikaci služby na pozadí .NET s dynamickou konfigurací.

Přidání 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 zobrazující pole pro povolení příznaku funkce s názvem Beta

Použití příznaku funkce

  1. Přidejte odkazy na Microsoft.FeatureManagement balíček NuGet spuštěním následujícího příkazu:

    dotnet add package Microsoft.FeatureManagement
    
  2. Spuštěním následujícího příkazu obnovte balíčky pro váš projekt:

    dotnet restore
    
  3. Otevřete Program.cs a přidejte následující příkaz:

    using Microsoft.FeatureManagement;
    
  4. Přidejte volání metody UseFeatureFlags uvnitř AddAzureAppConfiguration volání a zaregistrujte služby správy funkcí.

    // Existing code in Program.cs
    // ... ...
    
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        options.Connect(Environment.GetEnvironmentVariable("ConnectionString"));
    
        // Use feature flags
        options.UseFeatureFlags();
    
        // Register the refresher so that the Worker service can consume it through dependency injection
        builder.Services.AddSingleton(options.GetRefresher());
    });
    
    // Register feature management services
    builder.Services.AddFeatureManagement();
    
    // The rest of existing code in Program.cs
    // ... ...
    

    Tip

    Pokud metodě UseFeatureFlags není předán žádný parametr, načte všechny příznaky funkcí bez popisku v App Configuration Storu. Výchozí interval aktualizace příznaků funkcí je 30 sekund. Toto chování můžete přizpůsobit pomocí parametru FeatureFlagOptions . Například následující fragment kódu načte pouze příznaky funkcí, které začínají testAppem: v názvu klíče a mají vývoj popisků. Kód také změní dobu intervalu aktualizace na 5 minut. Všimněte si, že tato doba intervalu aktualizace je oddělená od času pro běžné hodnoty klíče.

    options.UseFeatureFlags(featureFlagOptions =>
    {
        featureFlagOptions.Select("TestApp:*", "dev");
        featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5);
    });
    
  5. Otevřete Worker.cs a přidejte následující příkaz:

    using Microsoft.FeatureManagement;
    
  6. Aktualizujte konstruktor Worker služby, aby získal instance injektáže závislostí a IFeatureManager prostřednictvím injektáže IConfigurationRefresher závislostí.

    public class Worker : BackgroundService
    {
        private readonly ILogger<Worker> _logger;
        private readonly IConfigurationRefresher _refresher;
        private readonly IFeatureManager _featureManager;
    
        public Worker(ILogger<Worker> logger, IConfigurationRefresher refresher, IFeatureManager featureManager)
        {
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));
            _refresher = refresher ?? throw new ArgumentNullException(nameof(refresher));
            _featureManager = featureManager ?? throw new ArgumentNullException(nameof(featureManager));
        }
    
        // ... ...
    }
    
  7. Aktualizujte metodu ExecuteAsync pro protokolování zprávy v závislosti na stavu příznaku funkce.

    Metoda TryRefreshAsync je volána na začátku každé iterace provádění úlohy pro aktualizaci příznaku funkce. Bude to no-op, pokud není dosaženo časového intervalu aktualizace. Operátor await se nepoužívá, aby se příznaky funkcí aktualizovaly bez blokování aktuální iterace provádění úlohy. V takovém případě se později iterace provádění úlohy získají aktualizovanou hodnotu.

    protected override async Task ExecuteAsync(CancellationToken stoppingToken)
    {
        while (!stoppingToken.IsCancellationRequested)
        {
            // Intentionally not await TryRefreshAsync to avoid blocking the execution.
            _refresher.TryRefreshAsync(stoppingToken);
    
            if (_logger.IsEnabled(LogLevel.Information))
            {
                if (await _featureManager.IsEnabledAsync("Beta"))
                {
                    _logger.LogInformation("[{time}]: Worker is running with Beta feature.", DateTimeOffset.Now);
                }
                else
                {
                    _logger.LogInformation("[{time}]: Worker is running.", DateTimeOffset.Now);
                }
            }
    
            await Task.Delay(TimeSpan.FromSeconds(30), stoppingToken);
        }
    }
    

Sestavení a místní spuštění aplikace

  1. Spuštěním následujícího příkazu sestavte aplikaci:

    dotnet build
    
  2. Po úspěšném dokončení sestavení spusťte aplikaci místně spuštěním následujícího příkazu:

    dotnet run
    
  3. V konzole by se měly zobrazit následující výstupy.

    Snímek obrazovky konzoly se spuštěnou službou na pozadí se zakázaným příznakem funkce

  4. Přihlaste se k portálu Azure. Vyberte Všechny prostředky a vyberte obchod App Configuration, který jste vytvořili dříve.

  5. Vyberte Správce funkcí a vyhledejte příznak funkce Beta . Povolte příznak zaškrtnutím políčka v části Povoleno.

  6. Chvíli počkejte, než se časové období intervalu aktualizace prodá. Zobrazí se aktualizovaná zpráva protokolu.

    Snímek obrazovky konzoly se spuštěnou službou na pozadí s povoleným příznakem funkce

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

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 jste vytvořili příznak funkce a použili ho se službou na pozadí.

Pokud chcete povolit funkci správy funkcí pro jiné typy aplikací, pokračujte následujícími kurzy.

Další informace o správě příznaků funkcí v konfiguraci Aplikace Azure najdete v následujícím kurzu.

Úplný běh funkcí knihovny pro správu funkcí .NET najdete v následujícím dokumentu.