Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Data z konfigurace aplikace je možné načíst jako nastavení aplikace v aplikaci .NET. Další informace najdete v rychlém průvodci. Jak je však navrženo rozhraním .NET, nastavení aplikace se může aktualizovat pouze po restartování aplikace. Zprostředkovatel Konfigurace aplikace .NET je knihovna .NET Standard. Podporuje dynamicky ukládání do mezipaměti a aktualizaci konfigurace bez restartování aplikace. V tomto kurzu se dozvíte, jak můžete implementovat dynamické aktualizace konfigurace ve službě .NET background.
V tomto kurzu se naučíte:
- Nastavte službu .NET na pozadí tak, aby aktualizovala svou konfiguraci v reakci na změny v App Configuration Storu.
- Využití nejnovější konfigurace ve službě na pozadí
Požadavky
- Účet Azure s aktivním předplatným. Vytvořte si ho zdarma.
- Úložiště App Configuration, jak je znázorněno v kurzu pro vytvoření úložiště.
- .NET SDK 6.0 nebo novější – k dispozici také v Azure Cloud Shellu.
Přidání hodnoty klíče
Přidejte do obchodu App Configuration následující klíč-hodnota a ponechte popisek a typ obsahu s výchozími hodnotami. Další informace o tom, jak přidat hodnoty klíčů do úložiště pomocí webu Azure Portal nebo rozhraní příkazového řádku, najdete v tématu Vytvoření hodnoty klíče.
| Klíč | Hodnota |
|---|---|
| TestApp:Settings:Message | Data z konfigurace Aplikace Azure |
Vytvořte .NET službu na pozadí
K vytvoření nového projektu aplikace .NET použijete rozhraní příkazového řádku .NET (CLI ). Výhodou použití rozhraní příkazového řádku .NET přes Visual Studio je, že je k dispozici na platformách Windows, macOS a Linux. Případně můžete použít předinstalované nástroje dostupné v Azure Cloud Shellu.
Vytvořte novou složku pro váš projekt.
Spuštěním následujícího příkazu v nové složce vytvořte nový projekt služby .NET background:
dotnet new worker
Opětovné načtení dat z konfigurace aplikace
Přidejte odkazy na
Microsoft.Extensions.Configuration.AzureAppConfigurationbalíček NuGet spuštěním následujícího příkazu:dotnet add package Microsoft.Extensions.Configuration.AzureAppConfigurationSpuštěním následujícího příkazu obnovte balíčky pro váš projekt:
dotnet restoreOtevřete Program.cs a přidejte následující příkazy:
using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Configuration.AzureAppConfiguration;Připojte se ke službě App Configuration buď pomocí Microsoft Entra ID (doporučeno), nebo připojovacího řetězce.
Použijete
DefaultAzureCredentialk ověření ve službě App Configuration Store. Postupujte podle pokynů a přiřaďte roli Čtenář dat konfigurace aplikace svým přihlašovacím údajům. Před spuštěním aplikace nezapomeňte povolit dostatek času, než se oprávnění rozšíří.// Existing code in Program.cs // ... ... var builder = Host.CreateApplicationBuilder(args); builder.Configuration.AddAzureAppConfiguration(options => { string endpoint = Environment.GetEnvironmentVariable("Endpoint"); options.Connect(new Uri(endpoint), new DefaultAzureCredential()); // Load all keys that start with `TestApp:` and have no label. .Select("TestApp:*") // Reload configuration if any selected key-values have changed. .ConfigureRefresh(refreshOptions => { refreshOptions.RegisterAll(); }); // Register the refresher so that the Worker service can consume it through DI builder.Services.AddSingleton(options.GetRefresher()); }); // The rest of existing code in Program.cs // ... ...ConfigureRefreshUvnitř metody zavoláte metoduRegisterAll, která zprostředkovateli konfigurace aplikace dá pokyn, aby znovu načítal celou konfiguraci, kdykoli zjistí změnu v některé z vybraných hodnot klíče (ty, které začínají testAppem: a nemají žádný popisek). Pro více informací o sledování změn konfigurace viz Nejlepší praxe pro aktualizaci konfigurace.Návod
Do metody můžete přidat volání
refreshOptions.SetRefreshInterval, které určuje minimální čas mezi aktualizacemi konfigurace. V tomto příkladu použijete výchozí hodnotu 30 sekund. Pokud potřebujete snížit počet požadavků provedených ve službě App Configuration Store, upravte hodnotu na vyšší hodnotu.Otevřete Worker.cs. Vkládejte
IConfigurationaIConfigurationRefresherdo službyWorkera zaznamenávejte konfigurační data z App Configuration.public class Worker : BackgroundService { private readonly ILogger<Worker> _logger; private readonly IConfiguration _configuration; private readonly IConfigurationRefresher _refresher; public Worker(ILogger<Worker> logger, IConfiguration configuration, IConfigurationRefresher refresher) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _configuration = configuration ?? throw new ArgumentNullException(nameof(configuration)); _refresher = refresher ?? throw new ArgumentNullException(nameof(refresher)); } 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)) { _logger.LogInformation(_configuration["TestApp:Settings:Message"] ?? "No data."); } await Task.Delay(TimeSpan.FromSeconds(30), stoppingToken); } } }ConfigureRefreshVolání samotné metody nezpůsobí automatickou aktualizaci konfigurace. Zavoláte metoduTryRefreshAsyncz rozhraníIConfigurationRefresher, která aktivuje aktualizaci. Tento návrh spočívá v tom, že se vyhnete požadavkům odesílaným do služby App Configuration, i když je vaše aplikace nečinná. Můžete zahrnout volání,TryRefreshAsyncve kterém považujete aplikaci za aktivní. Může to být například, když zpracováváte příchozí zprávu, objednávku nebo iteraci složité úlohy. Může být také v časovači, pokud je vaše aplikace aktivní po celou dobu. V tomto příkladu voláteTryRefreshAsyncpři každém spuštění služby na pozadí. Mějte na paměti, že i když voláníTryRefreshAsyncz nějakého důvodu selže, bude vaše aplikace i nadále používat konfiguraci uloženou v mezipaměti. Další pokus bude proveden, až uplyne nakonfigurovaný interval aktualizace a voláníTryRefreshAsyncbude znovu aktivováno aktivitou vaší aplikace. VoláníTryRefreshAsyncje no-op před uplynutím nakonfigurovaného intervalu aktualizace, takže jeho dopad na výkon je minimální, i když se volá často.
Sestavení a místní spuštění aplikace
Nastavte proměnnou prostředí.
Nastavte proměnnou prostředí s názvem Endpoint na koncový bod vašeho úložiště App Configuration, který najdete v části Přehled svého obchodu na portálu Azure.
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 Endpoint "<endpoint-of-your-app-configuration-store>"Pokud používáte PowerShell, spusťte následující příkaz:
$Env:Endpoint = "<endpoint-of-your-app-configuration-store>"Pokud používáte macOS nebo Linux, spusťte následující příkaz:
export Endpoint='<endpoint-of-your-app-configuration-store>'Spuštěním následujícího příkazu sestavte aplikaci.
dotnet buildPo úspěšném dokončení sestavení spusťte aplikaci místně spuštěním následujícího příkazu.
dotnet runV konzole by se měly zobrazit následující výstupy.
Na Azure portálu přejděte do Průzkumníka konfigurace úložiště App Configuration a aktualizujte hodnotu následujícího klíče.
Klíč Hodnota TestApp:Settings:Message Data z konfigurace Aplikace Azure – aktualizována Chvíli počkejte, než se časové období intervalu aktualizace prodá. Zobrazí se změněné výstupy konzoly.
Uvolnit zdroje
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í. Dbejte na to, abyste omylem neodstranili 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 několika okamžicích se skupina prostředků a všechny její prostředky vymažou.
Další kroky
V tomto kurzu jste povolili službu .NET background tak, aby dynamicky aktualizovala nastavení konfigurace z app Configuration. Pokud chcete zjistit, jak povolit dynamickou konfiguraci ve webové aplikaci ASP.NET, pokračujte dalším kurzem:
Pokud chcete zjistit, jak pomocí spravované identity Azure zjednodušit přístup ke službě App Configuration, pokračujte dalším kurzem: