Sdílet prostřednictvím


Rychlý start: Přidání příznaků funkcí do aplikace Azure Functions

V tomto rychlém startu vytvoříte projekt kódu jazyka C# služby Azure Functions a použijete v něm příznaky funkcí. Správu funkcí používáte z Aplikace Azure Konfigurace k centrálnímu ukládání všech příznaků funkcí a řízení jejich stavů.

Knihovny pro správu funkcí .NET rozšiřují architekturu o podporu příznaků funkcí. Tyto knihovny jsou postavené na konfiguračním systému .NET. Integrují se se službou App Configuration prostřednictvím svého poskytovatele konfigurace .NET.

Poznámka:

Tento článek v současné době podporuje pouze aplikace funkcí v jazyce C#, které běží v .NET 6.

Požadavky

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.

Povolení příznaku funkce s názvem Beta

Vytvoření projektu Functions

Šablona projektu Azure Functions v sadě Visual Studio vytvoří projekt knihovny tříd jazyka C#, který můžete publikovat do aplikace funkcí v Azure. Aplikaci funkcí můžete použít k seskupení funkcí jako logické jednotky pro snadnější správu, nasazení, škálování a sdílení prostředků.

  1. V nabídce sady Visual Studio vyberte Soubor>nový>projekt.

  2. V části Vytvořit nový projekt zadejte do vyhledávacího pole funkce , zvolte šablonu Azure Functions a pak vyberte Další.

  3. V části Konfigurace nového projektu zadejte název projektu a pak vyberte Vytvořit. Název aplikace funkcí musí být platný jako obor názvů C#, takže nepoužívejte podtržítka, pomlčky nebo jiné nealfanumerické znaky.

  4. Pro vytvoření nového nastavení aplikace Azure Functions použijte hodnoty v následující tabulce:

    Nastavení Hodnota Popis
    Verze .NET .NET 6 Tato hodnota vytvoří projekt funkce, který běží v procesu s modulem runtime Azure Functions verze 4.x. Další informace najdete v přehledu verzí modulu runtime Azure Functions.
    Šablona funkce Trigger HTTP Tato hodnota vytvoří funkci aktivovanou požadavkem HTTP.
    Účet úložiště (AzureWebJobsStorage) Emulátor úložiště Vzhledem k tomu, že aplikace funkcí v Azure vyžaduje účet úložiště, přiřadí se nebo vytvoří při publikování projektu do Azure. Trigger HTTP nepoužívá účet služby Azure Storage připojovací řetězec; všechny ostatní typy triggerů vyžadují platný účet služby Azure Storage připojovací řetězec.
    Úroveň autorizace Anonymní Vytvořenou funkci může aktivovat libovolný klient bez zadání klíče. Toto nastavení autorizace usnadňuje testování nových funkcí. Další informace o klíčích a autorizaci najdete v tématu Autorizační klíče a vazby HTTP a webhooku.

    Snímek obrazovky s nastavením projektu Azure Functions


    Ujistěte se, že jste nastavili úroveň autorizace na anonymní. Pokud zvolíte výchozí úroveň funkce, budete muset předložit klíč funkce v požadavcích pro přístup ke koncovému bodu funkce.

  5. Výběrem možnosti Vytvořit vytvořte projekt funkce a funkci triggeru HTTP.

Připojení do App Configuration Storu

Tento projekt použije injektáž závislostí v .NET Azure Functions. Přidá Aplikace Azure Configuration jako další zdroj konfigurace, kde jsou uložené příznaky funkcí.

  1. Klikněte pravým tlačítkem na projekt a vyberte Spravovat balíčky NuGet. Na kartě Procházet vyhledejte a přidejte do projektu následující balíčky NuGet.

  2. Přidejte nový soubor Startup.cs s následujícím kódem. Definuje třídu s názvem Startup , která implementuje FunctionsStartup abstraktní třídu. Atribut sestavení slouží k zadání názvu typu použitého při spuštění služby Azure Functions.

    using System;
    using Microsoft.Azure.Functions.Extensions.DependencyInjection;
    using Microsoft.Extensions.Configuration;
    using Microsoft.FeatureManagement;
    
    [assembly: FunctionsStartup(typeof(FunctionApp.Startup))]
    
    namespace FunctionApp
    {
        class Startup : FunctionsStartup
        {
            public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
            {
            }
    
            public override void Configure(IFunctionsHostBuilder builder)
            {
            }
        }
    }
    
  3. Aktualizujte metodu ConfigureAppConfiguration a přidejte Aplikace Azure zprostředkovatele konfigurace jako další zdroj konfigurace voláním AddAzureAppConfiguration().

    Metoda UseFeatureFlags() zprostředkovateli říká, aby načetl příznaky funkcí. Všechny příznaky funkcí mají výchozí vypršení platnosti mezipaměti 30 sekund před opětovnou kontrolou změn. Interval vypršení platnosti lze aktualizovat nastavením FeatureFlagsOptions.CacheExpirationInterval vlastnosti předané metodě UseFeatureFlags .

    public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
    {
        builder.ConfigurationBuilder.AddAzureAppConfiguration(options =>
        {
            options.Connect(Environment.GetEnvironmentVariable("ConnectionString"))
                   .Select("_")
                   .UseFeatureFlags();
        });
    }
    

    Tip

    Pokud nechcete, aby se do vaší aplikace načetla žádná jiná konfigurace než příznaky funkcí, můžete volat Select("_") pouze načtení neexistujícího fiktivního klíče "_". Ve výchozím nastavení se načtou všechny hodnoty klíče konfigurace v obchodě App Configuration Store, pokud se nevolá žádná Select metoda.

  4. Aktualizujte metodu Configure tak, aby byly Aplikace Azure konfigurační služby a správce funkcí dostupné prostřednictvím injektáže závislostí.

    public override void Configure(IFunctionsHostBuilder builder)
    {
        builder.Services.AddAzureAppConfiguration();
        builder.Services.AddFeatureManagement();
    }
    
  5. Otevřete Function1.cs a přidejte následující obory názvů.

    using System.Linq;
    using Microsoft.FeatureManagement;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    

    Přidejte konstruktor použitý k získání instancí injektáže _featureManagerSnapshot závislostí a IConfigurationRefresherProvider prostřednictvím injektáže závislostí. Z , IConfigurationRefresherProvidermůžete získat instanci IConfigurationRefresher.

    private readonly IFeatureManagerSnapshot _featureManagerSnapshot;
    private readonly IConfigurationRefresher _configurationRefresher;
    
    public Function1(IFeatureManagerSnapshot featureManagerSnapshot, IConfigurationRefresherProvider refresherProvider)
    {
        _featureManagerSnapshot = featureManagerSnapshot;
        _configurationRefresher = refresherProvider.Refreshers.First();
    }
    
  6. Aktualizujte metodu Run tak, aby změnila hodnotu zobrazené zprávy v závislosti na stavu příznaku funkce.

    Metoda TryRefreshAsync je volána na začátku volání Funkce pro aktualizaci příznaků funkce. Bude to no-op, pokud není dosaženo časového intervalu vypršení platnosti mezipaměti. await Pokud chcete, aby se příznaky funkcí aktualizovaly bez blokování aktuálního volání functions, odeberte operátor. V takovém případě se později volání functions získají aktualizovanou hodnotu.

    [FunctionName("Function1")]
    public async Task<IActionResult> Run(
        [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
        ILogger log)
    {
        log.LogInformation("C# HTTP trigger function processed a request.");
    
        await _configurationRefresher.TryRefreshAsync();
    
        string message = await _featureManagerSnapshot.IsEnabledAsync("Beta")
                ? "The Feature Flag 'Beta' is turned ON"
                : "The Feature Flag 'Beta' is turned OFF";
    
        return (ActionResult)new OkObjectResult(message);
    }
    

Místní testování funkce

  1. Nastavte proměnnou prostředí s názvem Připojení ionString, kde hodnota je připojovací řetězec, kterou jste získali dříve v obchodě App Configuration Store v části Přístupové klíče. Pokud používáte příkazový řádek systému Windows, spusťte následující příkaz a restartujte příkazový řádek, aby se změna projevila:

        setx ConnectionString "connection-string-of-your-app-configuration-store"
    

    Pokud používáte Windows PowerShell, spusťte následující příkaz:

        $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    

    Pokud používáte macOS nebo Linux, spusťte následující příkaz:

        export ConnectionString='connection-string-of-your-app-configuration-store'
    
  2. Stisknutím klávesy F5 otestujte funkci. Pokud se zobrazí výzva, přijměte požadavek ze sady Visual Studio ke stažení a instalaci nástrojů Azure Functions Core (CLI). Možná budete muset také povolit výjimku brány firewall, aby nástroje mohly zpracovávat požadavky HTTP.

  3. Zkopírujte adresu URL vaší funkce z výstupu modulu runtime služby Azure Functions.

    Rychlé zprovoznění ladění funkcí ve VS

  4. Vložte adresu URL pro požadavek HTTP do panelu adresy prohlížeče. Následující obrázek ukazuje odpověď, která indikuje, že příznak funkce Beta je zakázaný.

    Příznak funkce rychlého startu je zakázaný

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

  6. Vyberte Správce funkcí a změňte stav beta klíče na Zapnuto.

  7. Několikrát aktualizujte prohlížeč. Po uplynutí časového intervalu aktualizace se stránka změní tak, aby označila, že je zapnutá beta verze příznaku funkce, jak je znázorněno na obrázku níže.

    Příznak funkce rychlého startu je povolený

Poznámka:

Ukázkový kód použitý v tomto kurzu si můžete stáhnout z úložiště Aplikace Azure Configuration Na GitHubu.

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 s aplikací Azure Functions prostřednictvím knihovny Microsoft.FeatureManagement .