Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze quickstart maakt u een Azure Functions-app en gebruikt u daarin functievlagmen. U gebruikt functiebeheer van Azure App Configuration om al uw functievlaggen centraal op te slaan en hun status te bepalen.
Vereisten
- Een Azure-account met een actief abonnement. Maak gratis een account.
- Een App Configuration-winkel, zoals uiteengezet in de zelfstudie voor het maken van een winkel.
- Visual Studio met de Azure-ontwikkelworkload.
Een functievlag toevoegen
Voeg een functievlag met de naam Beta toe aan het App Configuration-archief en laat label en beschrijving ongewijzigd met de standaardwaarden. Ga naar Een functievlag maken voor meer informatie over het toevoegen van functievlagmen aan een winkel met behulp van Azure Portal of de CLI.
Een functie-app maken
Maak een Azure Functions-app met Visual Studio door de Azure Functions-sjabloon (C#) te selecteren. Deze sjabloon begeleidt u bij het configureren van essentiële instellingen voor uw project. Zie Azure Functions ontwikkelen met Visual Studio voor gedetailleerde instructies.
Gebruik de volgende tabel als referentie voor belangrijke parameters bij het maken van uw functie-app.
Instelling | Waarde |
---|---|
functie-werkrol | .NET 8.0 Geïsoleerd |
Functie | HTTP-trigger |
Autorisatieniveau | Anoniem |
Notitie
Azure App Configuration kan worden gebruikt met Azure Functions in het geïsoleerde werkrolmodel of het in-procesmodel. In deze quickstart wordt het geïsoleerde werknemermodel als voorbeeld gebruikt. U vindt volledige codevoorbeelden voor beide modellen in de GitHub-opslagplaats Azure App Configuration.
Verbinding maken met een App Configuration-opslag
U kunt verbinding maken met uw App Configuration-winkel met behulp van Microsoft Entra ID (aanbevolen) of een verbindingsreeks.
Klik met de rechtermuisknop op het project en selecteer NuGet-pakketten beheren. Zoek en voeg op het tabblad Bladeren de meest recente stabiele versie van de volgende NuGet-pakketten aan uw project toe.
- Microsoft.Azure.AppConfiguration.Functions.Worker
- Microsoft.FeatureManagement
- Azure.Identity
Open Program.cs en werk de code als volgt bij. U voegt Azure App Configuration toe als extra configuratiebron door de methode aan te
AddAzureAppConfiguration
roepen.U gebruikt de
DefaultAzureCredential
om u te authentiseren bij uw App Configuration-opslagplaats. Volg de instructies om uw referentie de rol App Configuration Data Reader toe te wijzen. Zorg ervoor dat u voldoende tijd geeft voor de machtiging om zich te verspreiden voordat u de toepassing uitvoert.using Azure.Identity; using Microsoft.Azure.Functions.Worker.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Microsoft.FeatureManagement; var builder = FunctionsApplication.CreateBuilder(args); // Connect to Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { Uri endpoint = new(Environment.GetEnvironmentVariable("AZURE_APPCONFIG_ENDPOINT") ?? throw new InvalidOperationException("The environment variable 'AZURE_APPCONFIG_ENDPOINT' is not set or is empty.")); options.Connect(endpoint, new DefaultAzureCredential()) // Load all feature flags with no label. To load feature flags with specific keys and labels, set via FeatureFlagOptions.Select. // Use the default refresh interval of 30 seconds. It can be overridden via FeatureFlagOptions.SetRefreshInterval. .UseFeatureFlags(); });
Met
UseFeatureFlags()
de methode wordt de provider geïnstrueerd om functievlagmen te laden. Standaard worden alle functievlagmen zonder labels elke 30 seconden geladen en vernieuwd. Het selectie- en vernieuwingsgedrag van functievlagmen wordt onafhankelijk van andere configuratiesleutelwaarden geconfigureerd. U kunt dit gedrag aanpassen door eenFeatureFlagOptions
actie door te geven aan deUseFeatureFlags
methode. GebruikFeatureFlagOptions.Select
om de sleutels en labels van functievlaggen op te geven die moeten worden geladen, en omFeatureFlagOptions.SetRefreshInterval
het standaardvernieuwingsinterval te overschrijven.Aanbeveling
Als u niet wilt dat andere configuraties dan functievlagmen in uw toepassing worden geladen, kunt u alleen aanroepen
options.Select("_")
om alleen een niet-bestaande dummysleutel"_"
te laden. Standaard worden alle configuratiesleutelwaarden zonder labels in uw App Configuration-archief geladen als er geenSelect
methode wordt aangeroepen.Werk het Program.cs-bestand bij om het automatisch vernieuwen van functievlagken in te schakelen voor elke functie-uitvoering door de Azure App Configuration-middleware toe te voegen. U registreert ook de functiebeheerservice, zodat u deze later in uw functiecode kunt injecteren en gebruiken.
// Connect to Azure App Configuration builder.Configuration.AddAzureAppConfiguration(options => { // Omitted the code added in the previous step. }); // Add Azure App Configuration middleware and feature management to the service collection. builder.Services .AddAzureAppConfiguration() .AddFeatureManagement(); // Use Azure App Configuration middleware for dynamic configuration and feature flag refresh. builder.UseAzureAppConfiguration(); builder.ConfigureFunctionsWebApplication(); builder.Build().Run();
Open Function1.cs en voeg de volgende naamruimte toe.
using Microsoft.FeatureManagement;
Pas de constructor aan om een exemplaar te verkrijgen van
IVariantFeatureManagerSnapshot
via afhankelijkheidsinjectie.private readonly IVariantFeatureManagerSnapshot _featureManager; private readonly ILogger<Function1> _logger; public Function1(IVariantFeatureManagerSnapshot featureManager, ILogger<Function1> logger) { _featureManager = featureManager; _logger = logger; }
Werk de
Run
methode bij om een antwoordbericht te retourneren op basis van de status van de functievlag.[Function("Function1")] public async Task<IActionResult> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] HttpRequest req) { _logger.LogInformation("C# HTTP trigger function processed a request."); // Read feature flag string featureName = "Beta"; bool featureEnabled = await _featureManager.IsEnabledAsync(featureName, req.HttpContext.RequestAborted); return new OkObjectResult(featureEnabled ? $"The Feature Flag '{featureName}' is turned ON!" : $"The Feature Flag '{featureName}' is turned OFF"); }
De functie lokaal testen
Stel de omgevingsvariabele in.
Stel de omgevingsvariabele met de naam AZURE_APPCONFIG_ENDPOINT in op het eindpunt van uw App Configuration-opslag gevonden onder het Overzicht van uw opslag in de Azure-portal.
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 AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
Als u PowerShell gebruikt, voert u de volgende opdracht uit:
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
Als u macOS of Linux gebruikt, voert u de volgende opdracht uit:
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
Druk op F5 om de functie testen. Accepteer desgevraagd de aanvraag van Visual Studio om Azure Functions Core-hulpprogramma's (CLI) te downloaden en installeren. Mogelijk moet u ook een firewall-uitzondering inschakelen, zodat de hulpprogramma's HTTP-aanvragen kunnen afhandelen.
Kopieer de URL van uw functie vanuit de uitvoer van de Azure Functions-runtime.
Plak de URL van de HTTP-aanvraag in de adresbalk van uw browser. In de volgende afbeelding ziet u het antwoord dat aangeeft dat de functievlag Beta is uitgeschakeld.
Navigeer in de "Azure Portal" naar uw App Configuration-opslag. Selecteer onder BewerkingenFunctiebeheer, zoek de vlag bètafunctie en stel de wisselknop Ingeschakeld in op Aan.
Vernieuw de browser een paar keer. Wanneer het tijdvenster voor het vernieuwingsinterval is verstreken, verandert de pagina om aan te geven dat bètaversie van de functievlag is ingeschakeld, zoals wordt weergegeven in de afbeelding.
Resources opschonen
Als u de resources die in dit artikel zijn gemaakt niet wilt blijven gebruiken, 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 groep of bronnen 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 quickstart hebt u een functievlag gemaakt en deze gebruikt met een Azure Functions-app.
Ga verder naar het volgende document voor de volledige functierundown van de .NET-functiebeheerbibliotheek.
Ga verder met de volgende zelfstudie voor meer informatie over het beheren van functievlagmen in Azure-app Configuratie.