Zelfstudie: Dynamische configuratie in een .Net Core-app gebruiken
De App Configuration .NET-providerbibliotheek ondersteunt het bijwerken van de configuratie op aanvraag zonder dat een toepassing opnieuw wordt gestart. In deze zelfstudie leert hoe u dynamische configuratie-updates kunt implementeren in uw code. Het is gebaseerd op de app die in de quickstart is geïntroduceerd. U moet een .NET Core-app met een App Configuration voltooien voordat u doorgaat.
U kunt elke code-editor gebruiken om de stappen in deze zelfstudie uit te voeren. Visual Studio Code is een uitstekende optie die beschikbaar is op de Windows-, macOS- en Linux-platforms.
In deze zelfstudie leert u het volgende:
- Uw .NET Core-app instellen voor het bijwerken van de configuratie als reactie op wijzigingen in een app-configuratiearchief.
- De meest recente configuratie in uw toepassing gebruiken.
Vereisten
Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.
Sluit de quickstart Een .NET Core-app maken met App Configuration.
Activiteitgestuurde configuratie vernieuwen
Open Program.cs en werk de code als volgt bij.
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Configuration.AzureAppConfiguration;
using System;
using System.Threading.Tasks;
namespace TestConsole
{
class Program
{
private static IConfiguration _configuration = null;
private static IConfigurationRefresher _refresher = null;
static void Main(string[] args)
{
var builder = new ConfigurationBuilder();
builder.AddAzureAppConfiguration(options =>
{
options.Connect(Environment.GetEnvironmentVariable("ConnectionString"))
.ConfigureRefresh(refresh =>
{
refresh.Register("TestApp:Settings:Message")
.SetCacheExpiration(TimeSpan.FromSeconds(10));
});
_refresher = options.GetRefresher();
});
_configuration = builder.Build();
PrintMessage().Wait();
}
private static async Task PrintMessage()
{
Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
// Wait for the user to press Enter
Console.ReadLine();
await _refresher.TryRefreshAsync();
Console.WriteLine(_configuration["TestApp:Settings:Message"] ?? "Hello world!");
}
}
}
In de ConfigureRefresh methode wordt een sleutel in uw App Configuration voor wijzigingsbewaking geregistreerd. De Register methode heeft een optionele Booleaanse parameter die kan worden gebruikt om aan te geven of alle configuratiewaarden moeten worden vernieuwd als de geregistreerde sleutel wordt refreshAll gewijzigd. In dit voorbeeld wordt alleen de sleutel TestApp:Instellingen:Message vernieuwd. De methode geeft de minimale tijd aan die moet verstreken voordat een nieuwe aanvraag wordt ingediend om App Configuration om te controleren op SetCacheExpiration configuratiewijzigingen. In dit voorbeeld overschrijven we de standaardverlooptijd van 30 seconden en geeft u in plaats daarvan een tijd van 10 seconden op voor demonstratiedoeleinden.
Als u ConfigureRefresh alleen de methode aanroept, wordt de configuratie niet automatisch vernieuwd. U roept de methode TryRefreshAsync aan vanuit de interface om een vernieuwing te IConfigurationRefresher activeren. Dit ontwerp is om te voorkomen dat aanvragen worden verzonden naar App Configuration zelfs wanneer uw toepassing niet actief is. U moet de aanroep opnemen TryRefreshAsync waarbij u uw toepassing als actief beschouwt. Dit kan bijvoorbeeld zijn wanneer u een binnenkomend bericht, een bestelling of een iteratie van een complexe taak verwerkt. Deze kan ook in een timer staan als uw toepassing altijd actief is. In dit voorbeeld roept u aan TryRefreshAsync telkens wanneer u op Enter drukt. Zelfs als de aanroep om een of andere reden mislukt, blijft uw toepassing de configuratie in TryRefreshAsync de cache gebruiken. Er wordt een andere poging gedaan wanneer de geconfigureerde verlooptijd van de cache is verstreken en de TryRefreshAsync aanroep opnieuw wordt geactiveerd door uw toepassingsactiviteit. Aanroepen is een no-op voordat de geconfigureerde verlooptijd van de cache is verstreken, dus de invloed op de prestaties is minimaal, zelfs als deze regelmatig TryRefreshAsync wordt aangeroepen.
De app lokaal compileren en uitvoeren
Stel een omgevingsvariabele in met de naam ConnectionString en stel deze in op de toegangssleutel van het App Configuration-archief. Als u de Windows-opdrachtprompt gebruikt, voert u de volgende opdracht uit en start u de opdrachtprompt opnieuw om de wijziging door te voeren:
setx ConnectionString "connection-string-of-your-app-configuration-store"Als u Windows PowerShell gebruikt, voert u de volgende opdracht uit:
$Env:ConnectionString = "connection-string-of-your-app-configuration-store"Als u macOS of Linux gebruikt, voert u de volgende opdracht uit:
export ConnectionString='connection-string-of-your-app-configuration-store'Voer de volgende opdracht uit om de console-app te bouwen:
dotnet buildNadat het bouwen is voltooid, voert u de volgende opdracht uit om de app lokaal uit te voeren:
dotnet run
Meld u aan bij de Azure-portal. Selecteer Alle resources en selecteer de instantie van het App Configuration-archief dat u in de quickstart hebt gemaakt.
Selecteer Configuratieverkenner en werk de waarde van de volgende sleutels bij:
Sleutel Waarde TestApp:Settings:Message Gegevens van Azure App Configuration - bijgewerkt Druk op Enter om een vernieuwing te activeren en de bijgewerkte waarde af te drukken naar de opdrachtprompt of het PowerShell-venster.

Notitie
Omdat de vervaltijd van de cache is ingesteld op tien seconden met behulp van de methode
SetCacheExpirationtijdens het opgeven van de configuratie voor de vernieuwingsbewerking, wordt de waarde voor de configuratie-instelling alleen bijgewerkt als er ten minste tien seconden zijn verstreken sinds de laatste vernieuwing voor die instelling.
Resources opschonen
Als u niet door wilt gaan met de resources die in dit artikel zijn gemaakt, verwijdert u de resourcegroep die u hier hebt gemaakt om kosten te voorkomen.
Belangrijk
Het verwijderen van een resourcegroep kan niet ongedaan worden gemaakt. De resourcegroep en alle resources daarin worden permanent verwijderd. Zorg ervoor dat u niet per ongeluk de verkeerde resourcegroep of resources verwijdert. Als u de resources voor dit artikel in een resourcegroep hebt gemaakt die andere resources bevat die u wilt behouden, moet u elke resource afzonderlijk verwijderen uit het deelvenster in plaats van dat u de resourcegroep verwijdert.
- Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
- Voer de naam van de resourcegroep in het vak Filteren op naam in.
- Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
- Selecteer Resourcegroep verwijderen.
- U wordt gevraagd om het verwijderen van de resourcegroep te bevestigen. Voer de naam van de resourcegroep in ter bevestiging en selecteer Verwijderen.
Na enkele ogenblikken worden de resourcegroep en alle bijbehorende resources verwijderd.
Volgende stappen
In deze zelfstudie hebt u uw .NET Core-app ingeschakeld voor het dynamisch vernieuwen van configuratie-instellingen vanuit App Configuration. Als u wilt weten hoe u een door Azure beheerde identiteit kunt gebruiken om de toegang tot App Configuration te stroomlijnen, gaat u verder met de volgende zelfstudie.