Kurz: použití dynamické konfigurace v aplikaci Azure Functions
Zprostředkovatel konfigurace .NET konfigurace aplikace podporuje ukládání do mezipaměti a dynamicky se aktualizuje pomocí aktivity aplikace. V tomto kurzu se dozvíte, jak můžete implementovat aktualizace dynamické konfigurace do kódu. Sestavuje se v aplikaci Azure Functions představené v rychlých startech. Než budete pokračovat, dokončete nejprve možnost vytvořit aplikaci Azure Functions s konfigurací Azure App Configuration .
V tomto kurzu se naučíte:
- Nastavte si aplikaci Azure Functions pro aktualizaci konfigurace v reakci na změny v úložišti konfigurace aplikace.
- Vloží nejnovější konfiguraci do vašich Azure Functions volání.
Požadavky
- Předplatné Azure – Vytvořte si ho zdarma .
- Visual Studio 2019 s úlohou vývoj pro Azure
- Nástroje Azure Functions
- Dokončení rychlého startu Vytvoření aplikace Azure Functions pomocí konfigurace aplikace Azure
Znovu načíst data z konfigurace aplikace
Otevřete Startup. cs a aktualizujte
ConfigureAppConfigurationmetodu.ConfigureRefreshMetoda registruje nastavení, které bude kontrolovat změny vždy, když se aktivuje aktualizace v rámci aplikace, kterou provedete v pozdějším kroku při přidávání_configurationRefresher.TryRefreshAsync().refreshAllParametr nastaví poskytovatele konfigurace aplikace tak, aby znovu znovu nahlásil celou konfiguraci při zjištění změny v registrovaném nastavení.Všechna nastavení zaregistrovaná pro obnovení mají výchozí dobu platnosti mezipaměti 30 sekund. Dá se aktualizovat voláním
AzureAppConfigurationRefreshOptions.SetCacheExpirationmetody.public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder) { builder.ConfigurationBuilder.AddAzureAppConfiguration(options => { options.Connect(Environment.GetEnvironmentVariable("ConnectionString")) // Load all keys that start with `TestApp:` .Select("TestApp:*") // Configure to reload configuration if the registered sentinel key is modified .ConfigureRefresh(refreshOptions => refreshOptions.Register("TestApp:Settings:Sentinel", refreshAll: true)); }); }Tip
Když aktualizujete více hodnot klíče v konfiguraci aplikace, normálně nechcete, aby aplikace znovu znovu načítat konfiguraci před provedením všech změn. Můžete zaregistrovat klíč Sentinel a aktualizovat ho pouze v případě, že jsou dokončeny všechny ostatní změny konfigurace. To pomáhá zajistit konzistenci konfigurace ve vaší aplikaci.
Aktualizujte
Configuremetodu tak, aby byly dostupné služby Azure App Configuration prostřednictvím injektáže závislostí.public override void Configure(IFunctionsHostBuilder builder) { builder.Services.AddAzureAppConfiguration(); }Otevřete function1. cs a přidejte následující obory názvů.
using System.Linq; using Microsoft.Extensions.Configuration.AzureAppConfiguration;Aktualizujte konstruktor tak, aby získal instanci
IConfigurationRefresherProviderprostřednictvím injektáže závislosti, ze které můžete získat instanciIConfigurationRefresher.private readonly IConfiguration _configuration; private readonly IConfigurationRefresher _configurationRefresher; public Function1(IConfiguration configuration, IConfigurationRefresherProvider refresherProvider) { _configuration = configuration; _configurationRefresher = refresherProvider.Refreshers.First(); }Aktualizujte
Runmetodu a signál pro aktualizaci konfigurace pomocíTryRefreshAsyncmetody na začátku volání funkce. Pokud není dosaženo časového intervalu vypršení platnosti mezipaměti, bude to no-op.awaitPokud dáváte přednost konfiguraci, která se má aktualizovat bez blokování aktuálních volání funkcí, odeberte operátor. V takovém případě se později volání funkcí zobrazí aktualizovaná hodnota.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 keyName = "TestApp:Settings:Message"; string message = _configuration[keyName]; return message != null ? (ActionResult)new OkObjectResult(message) : new BadRequestObjectResult($"Please create a key-value with the key '{keyName}' in App Configuration."); }
Místní testování funkce
Nastavte proměnnou prostředí s názvem ConnectionString a nastavte ji na přístupový klíč na úložiště konfigurace aplikace. pokud použijete příkazový řádek 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'Pokud chcete funkci otestovat, stiskněte F5. pokud se zobrazí výzva, přijměte žádost z Visual Studio ke stažení a instalaci nástrojů Azure Functions Core (CLI) . Je také možné, že budete muset 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. Na následujícím obrázku je znázorněna odpověď v prohlížeči na místní požadavek GET vrácený funkcí.

Přihlaste se k webu Azure Portal. Vyberte všechny prostředky a vyberte úložiště konfigurace aplikace, které jste vytvořili v rychlém startu.
Vyberte Průzkumník konfigurace a aktualizujte hodnotu následujícího klíče:
Klíč Hodnota TestApp: Nastavení: zpráva Data z konfigurace aplikace Azure – Aktualizováno Pak vytvořte klíč Sentinel nebo změňte jeho hodnotu, pokud již existuje, například
Klíč Hodnota TestApp: Nastavení: Sentinel v1 Aktualizujte prohlížeč několikrát. Pokud platnost nastavení v mezipaměti vyprší po 30 sekundách, stránka zobrazuje odpověď volání funkcí s aktualizovanou hodnotou.

Poznámka
vzorový kód použitý v tomto kurzu si můžete stáhnout z části konfigurace aplikace GitHub úložiště.
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 předešli 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 nechtěně neodstraníte nesprávnou skupinu prostředků nebo prostředky. Pokud jste vytvořili prostředky pro tento článek v rámci skupiny prostředků, která obsahuje další prostředky, které chcete zachovat, odstraňte všechny prostředky jednotlivě z příslušného podokna, místo aby se odstranila skupina prostředků.
- Přihlaste se k Azure Portala 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ů, aby se zobrazil přehled.
- Vyberte Odstranit skupinu prostředků.
- Zobrazí se výzva k potvrzení odstranění skupiny prostředků. Zadejte název vaší skupiny prostředků, který chcete potvrdit, a vyberte Odstranit.
Po chvíli se odstraní skupina prostředků a všechny její prostředky.
Další kroky
V tomto kurzu jste povolili aplikaci Azure Functions k dynamické aktualizaci nastavení konfigurace z konfigurace aplikace. Další informace o tom, jak používat spravovanou identitu Azure ke zjednodušení přístupu ke konfiguraci aplikace, najdete v dalším kurzu.