Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här snabbstarten införlivar du funktionen för funktionshantering från Azure App Configuration i en .NET-bakgrundstjänst. Du använder App Configuration för att lagra och hantera dina funktionsflaggor centralt.
Förutsättningar
Stöd för funktionshantering utökar funktionen för dynamisk konfiguration i App Configuration. Exemplet i den här snabbstarten bygger på .NET-bakgrundstjänstappen som introducerades i självstudien för dynamisk konfiguration. Innan du fortsätter slutför du följande självstudie för att skapa en .NET-bakgrundstjänstapp med dynamisk konfiguration först.
Lägga till en funktionsflagga
Lägg till en funktionsflagga med namnet Beta i App Configuration Store och lämna Etikett och Beskrivning med sina standardvärden. Mer information om hur du lägger till funktionsflaggor i en butik med hjälp av Azure Portal eller CLI finns i Skapa en funktionsflagga.
               
              
            
Använda funktionsflaggan
- Lägg till referenser till - Microsoft.FeatureManagementNuGet-paketet genom att köra följande kommando:- dotnet add package Microsoft.FeatureManagement
- Kör följande kommando för att återställa paket för projektet: - dotnet restore
- Öppna Program.cs och lägg till följande instruktion: - using Microsoft.FeatureManagement;
- Lägg till ett anrop till - UseFeatureFlagsmetoden i anropet- AddAzureAppConfigurationoch registrera funktionshanteringstjänster.- // Existing code in Program.cs // ... ... builder.Configuration.AddAzureAppConfiguration(options => { string endpoint = Environment.GetEnvironmentVariable("Endpoint"); options.Connect(new Uri(endpoint), new DefaultAzureCredential()); // Use feature flags options.UseFeatureFlags(); // Register the refresher so that the Worker service can consume it through dependency injection builder.Services.AddSingleton(options.GetRefresher()); }); // Register feature management services builder.Services.AddFeatureManagement(); // The rest of existing code in Program.cs // ... ...- Dricks - När ingen parameter skickas till - UseFeatureFlagsmetoden läses alla funktionsflaggor in utan etikett i appkonfigurationsarkivet. Standarduppdateringsintervallet för funktionsflaggor är 30 sekunder. Du kan anpassa det här beteendet via parametern- FeatureFlagOptions. Följande kodfragment läser till exempel bara in funktionsflaggor som börjar med TestApp: i deras nyckelnamn och har etiketten dev. Koden ändrar även uppdateringsintervalltiden till 5 minuter. Observera att den här uppdateringsintervalltiden är separat från den för vanliga nyckelvärden.- options.UseFeatureFlags(featureFlagOptions => { featureFlagOptions.Select("TestApp:*", "dev"); featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5); });
- Öppna Worker.cs och lägg till följande instruktion: - using Microsoft.FeatureManagement;
- Uppdatera konstruktorn för - Workertjänsten för att hämta instanser av- IConfigurationRefresheroch- IVariantFeatureManagervia beroendeinmatning.- public class Worker : BackgroundService { private readonly ILogger<Worker> _logger; private readonly IConfigurationRefresher _refresher; private readonly IVariantFeatureManager _featureManager; public Worker(ILogger<Worker> logger, IConfigurationRefresher refresher, IVariantFeatureManager featureManager) { _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _refresher = refresher ?? throw new ArgumentNullException(nameof(refresher)); _featureManager = featureManager ?? throw new ArgumentNullException(nameof(featureManager)); } // ... ... }
- ExecuteAsyncUppdatera metoden för att logga ett meddelande beroende på funktionsflaggans tillstånd.- Metoden - TryRefreshAsyncanropas i början av varje iteration av aktivitetskörningen för att uppdatera funktionsflaggan. Det blir en no-op om tidsperioden för uppdateringsintervallet inte nås. Operatorn- awaitanvänds inte så att funktionsflaggor uppdateras utan att den aktuella iterationen av aktivitetskörningen blockeras. I så fall kommer senare iterationer av aktivitetskörningen att få ett uppdaterat värde.- 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)) { if (await _featureManager.IsEnabledAsync("Beta")) { _logger.LogInformation("[{time}]: Worker is running with Beta feature.", DateTimeOffset.Now); } else { _logger.LogInformation("[{time}]: Worker is running.", DateTimeOffset.Now); } } await Task.Delay(TimeSpan.FromSeconds(30), stoppingToken); } }
Skapa och köra appen lokalt
- Skapa appen genom att köra följande kommando: - dotnet build
- När bygget har slutförts kör du följande kommando för att köra appen lokalt: - dotnet run
- Du bör se följande utdata i konsolen.   
- Logga in på Azure-portalen. Välj Alla resurser och välj appkonfigurationsarkivet som du skapade tidigare. 
- Välj Funktionshanterare och leta upp flaggan Beta-funktion . Aktivera flaggan genom att markera kryssrutan under Aktiverad. 
- Vänta en stund tills tidsperioden för uppdateringsintervallet har passerat. Du ser det uppdaterade loggmeddelandet.   
Rensa resurser
Om du inte vill fortsätta använda resurserna som skapas i den här artikeln tar du bort resursgruppen som du skapade här för att undvika avgifter.
Viktigt!
Att ta bort en resursgrupp kan inte ångras. Resursgruppen och alla resurser i den tas bort permanent. Se till att du inte oavsiktligt tar bort fel resursgrupp eller resurser. Om du har skapat resurserna för den här artikeln i en resursgrupp som innehåller andra resurser som du vill behålla tar du bort varje resurs individuellt från respektive fönster i stället för att ta bort resursgruppen.
- Logga in på Azure Portal och välj Resursgrupper.
- I rutan Filtrera efter namn anger du namnet på resursgruppen.
- I resultatlistan väljer du resursgruppens namn för att se en översikt.
- Välj Ta bort resursgrupp.
- Du blir ombedd att bekräfta borttagningen av resursgruppen. Ange namnet på resursgruppen för att bekräfta och välj Ta bort.
Efter en liten stund tas resursgruppen och alla dess resurser bort.
Nästa steg
I den här snabbstarten skapade du en funktionsflagga och använde den med en bakgrundstjänst.
Om du vill aktivera funktioner för funktionshantering för andra typer av appar fortsätter du till följande självstudier.
Om du vill veta mer om hur du hanterar funktionsflaggor i Azure App Configuration fortsätter du till följande självstudie.
Fortsätt till följande dokument för den fullständiga funktionskörningen i .NET-funktionshanteringsbiblioteket.