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
- Účet Azure s aktivním předplatným. Vytvořte si ho zdarma.
- App Configuration Store. Vytvořte úložiště.
- Visual Studio 2019 se sadou funkcí Vývoj pro Azure
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.
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ů.
V nabídce sady Visual Studio vyberte Soubor>nový>projekt.
V části Vytvořit nový projekt zadejte do vyhledávacího pole funkce , zvolte šablonu Azure Functions a pak vyberte Další.
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.
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.
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.
Výběrem možnosti Vytvořit vytvořte projekt funkce a funkci triggeru HTTP.
Připojení ke službě App Configuration Store
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í.
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.
- Microsoft.Extensions.Configuration.AzureAppConfiguration verze 4.1.0 nebo novější
- Microsoft.FeatureManagement verze 2.2.0 nebo novější
- Microsoft.Azure.Functions.Extensions verze 1.1.0 nebo novější
Přidejte nový soubor Startup.cs s následujícím kódem. Definuje třídu s názvem
Startup
, která implementujeFunctionsStartup
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) { } } }
Aktualizujte metodu
ConfigureAppConfiguration
a přidejte Aplikace Azure zprostředkovatele konfigurace jako další zdroj konfigurace volánímAddAzureAppConfiguration()
.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ímFeatureFlagsOptions.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.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(); }
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í aIConfigurationRefresherProvider
prostřednictvím injektáže závislostí. Z ,IConfigurationRefresherProvider
můžete získat instanciIConfigurationRefresher
.private readonly IVariantFeatureManagerSnapshot _featureManagerSnapshot; private readonly IConfigurationRefresher _configurationRefresher; public Function1(IVariantFeatureManagerSnapshot featureManagerSnapshot, IConfigurationRefresherProvider refresherProvider) { _featureManagerSnapshot = featureManagerSnapshot; _configurationRefresher = refresherProvider.Refreshers.First(); }
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
Nastavte proměnnou prostředí s názvem ConnectionString, kde hodnota je připojovací řetězec, kterou jste získali dříve v Obchodě App Configuration 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>'
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.
Zkopírujte adresu URL vaší funkce z výstupu modulu runtime služby Azure Functions.
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řihlaste se k portálu Azure. Vyberte Všechny prostředky a vyberte obchod App Configuration, který jste vytvořili.
Vyberte Správce funkcí a změňte stav beta klíče na Zapnuto.
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.
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ů.
- Přihlaste se k webu Azure Portal a vyberte skupiny prostředků.
- Do pole Filtrovat podle názvu zadejte název vaší skupiny prostředků.
- V seznamu výsledků vyberte název skupiny prostředků, abyste zobrazili přehled.
- Vyberte Odstranit skupinu prostředků.
- 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 Azure Functions.
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.