Quickstart: Een Azure Functions-app maken met Azure-app-configuratie

In deze quickstart neemt u de service Azure App Configuration op in een Azure Functions-app om opslag en beheer van al uw toepassingsinstellingen gescheiden van uw code te centraliseren.

Vereisten

Een sleutelwaarde toevoegen

Voeg de volgende sleutelwaarde toe aan het App Configuration-archief en laat label en inhoudstype ongewijzigd met de standaardwaarden. Ga naar Een sleutelwaarde maken voor meer informatie over het toevoegen van sleutelwaarden aan een archief met behulp van Azure Portal of de CLI.

Sleutel Weergegeven als
TestApp:Instellingen:Message Gegevens uit Azure-app-configuratie

Een Functions-app maken

Met de Azure Functions-projectsjabloon in Visual Studio maakt u een C#-klassebibliotheekproject dat u kunt publiceren naar een functie-app in Azure. U kunt een functie-app gebruiken om functies te groeperen in een logische eenheid, zodat u resources eenvoudiger kunt beheren, implementeren, schalen en delen.

  1. Selecteer in Visual Studio-menu Bestand>Nieuw>Project.

  2. Voer in Een nieuw project makenfuncties in het zoekvenster in, kies de sjabloon Azure Functions en selecteer vervolgens Volgende.

  3. Voer in Uw nieuwe project configureren een projectnaam in voor uw project en selecteer vervolgens Maken. De functie-appnaam moet geldig zijn als een C#-naamruimte. Gebruik dus geen onderstrepingstekens, afbreekstreepjes of andere niet-alfanumerieke tekens.

  4. Gebruik de waarden in de volgende tabel voor de instellingen van Een nieuw Azure Functions-toepassing:

    Instelling Weergegeven als Beschrijving
    .NET-versie .NET 6 Geïsoleerd Met deze waarde maakt u een functieproject dat wordt uitgevoerd in een geïsoleerd werkproces. Geïsoleerde werkprocessen ondersteunen andere niet-LTS-versie van .NET en ook .NET Framework. Raadpleeg Overzicht van Azure Functions-runtime voor meer informatie.
    Functiesjabloon HTTP-trigger Met deze waarde wordt er een functie gemaakt die wordt geactiveerd door een HTTP-aanvraag.
    Opslagaccount (AzureWebJobsStorage) Opslagemulator Omdat een functie-app in Azure een opslagaccount vereist, wordt er een toegewezen of gemaakt wanneer u uw project publiceert naar Azure. Een HTTP-trigger gebruikt geen Azure Storage-accountverbindingsreeks. Alle andere triggers vereisen een geldige Azure Storage-accountverbindingsreeks.
    Verificatieniveau Anonieme De gemaakte functie kan door iedere client worden geactiveerd zonder een sleutel op te geven. Met deze autorisatie-instelling kunt u eenvoudig uw nieuwe functie testen. Raadpleeg Autorisatiesleutels in de HTTP- en webhookbindingen voor meer informatie over sleutels en autorisatie.

    Azure Functions-projectinstellingen

    Zorg ervoor dat u het Autorisatieniveau instelt op Anoniem. Wanneer u het standaardniveau van Functie kiest, moet u de functiesleutel opnemen in aanvragen om toegang te krijgen tot het eindpunt van de functie.

  5. Selecteer OK om het functieproject en de door HTTP geactiveerde functie te maken.

Verbinding maken met een App Configuration-archief

Dit project maakt gebruik van afhankelijkheidsinjectie in .NET Azure Functions en voegt Azure App Configuration toe als een extra configuratiebron. Azure Functions biedt ondersteuning voor het uitvoeren van in-proces of geïsoleerd proces. Kies de optie die overeenkomt met uw vereisten.

  1. Klik met de rechtermuisknop op het project en selecteer NuGet-pakketten beheren. Zoek op het tabblad Bladeren de volgende NuGet-pakketten en voeg deze toe aan uw project.

  2. Voeg code toe om verbinding te maken met Azure-app Configuration.

    Voeg het nieuwe bestand Startup.cs toe met de volgende code. Hiermee wordt een klasse gedefinieerd met de naam Startup, waarmee de abstracte klasse FunctionsStartup wordt geïmplementeerd. Er wordt een assembly-kenmerk gebruikt om de typenaam op te geven die wordt gebruikt tijdens het opstarten van Azure Functions.

    De ConfigureAppConfiguration-methode wordt overschreven en de Azure App Configuration-provider wordt toegevoegd als een extra configuratiebron door AddAzureAppConfiguration() aan te roepen. De Configure-methode blijft leeg, omdat u op dit moment geen services hoeft te registreren.

    using System;
    using Microsoft.Azure.Functions.Extensions.DependencyInjection;
    using Microsoft.Extensions.Configuration;
    
    [assembly: FunctionsStartup(typeof(FunctionApp.Startup))]
    
    namespace FunctionApp
    {
        class Startup : FunctionsStartup
        {
            public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
            {
                string cs = Environment.GetEnvironmentVariable("ConnectionString");
                builder.ConfigurationBuilder.AddAzureAppConfiguration(cs);
            }
    
            public override void Configure(IFunctionsHostBuilder builder)
            {
            }
        }
    }
    
  3. Open Function1.cs en voeg de volgende naamruimte toe als deze nog niet aanwezig is.

    using Microsoft.Extensions.Configuration;
    

    Voeg de constructor toe of werk deze bij die wordt gebruikt voor het verkrijgen van een exemplaar via IConfiguration afhankelijkheidsinjectie.

    private readonly IConfiguration _configuration;
    
    public Function1(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    
  4. Werk de methode Run bij om waarden te lezen uit de configuratie.

    [FunctionName("Function1")]
    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.");
    
        // Read configuration data
        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.");
    }
    

    Notitie

    De klasse Function1 en de methode Run mogen niet statisch zijn. Verwijder de aanpassing static als deze automatisch is gegenereerd.

De functie lokaal testen

  1. Stel een omgevingsvariabele met de naam ConnectionString in 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'
    
  2. 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.

  3. Kopieer de URL van uw functie vanuit de uitvoer van de Azure Functions-runtime.

    Quickstart over foutopsporing in functies in Visual Studio

  4. Plak de URL van de HTTP-aanvraag in de adresbalk van uw browser. In de afbeelding hieronder ziet u de reactie in de browser op de lokale GET-aanvraag die door de functie wordt geretourneerd.

    Quickstart over lokaal opstarten functies

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 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.

  1. Meld u aan bij de Azure-portal en selecteer Resourcegroepen.
  2. Voer de naam van de resourcegroep in het vak Filteren op naam in.
  3. Selecteer in de resultatenlijst de resourcegroepnaam om een overzicht te bekijken.
  4. Selecteer Resourcegroep verwijderen.
  5. 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 nieuw App Configuration-archief gemaakt en dit via de provider App Configuration gebruikt met een Azure Functions-app. Ga door naar de volgende zelfstudie voor meer informatie over het bijwerken van de Azure Functions-app om de configuratie dynamisch te vernieuwen.

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.