Snabbstart: Skapa en Azure Functions-app med Azure App Configuration

I den här snabbstarten införlivar du Azure App Configuration-tjänsten i en Azure Functions-app för att centralisera lagring och hantering av alla dina programinställningar separat från koden.

Förutsättningar

Lägga till ett nyckelvärde

Lägg till följande nyckelvärde i appkonfigurationsarkivet och lämna Etikett och innehållstyp med sina standardvärden. Mer information om hur du lägger till nyckelvärden i ett arkiv med hjälp av Azure-portalen eller CLI finns i Skapa ett nyckelvärde.

Tangent Värde
TestApp:Inställningar:Message Data från Azure App Configuration

Skapa en Functions-app

Azure Functions-projektmallen i Visual Studio skapar ett C#-klassbiblioteksprojekt som du kan publicera till en funktionsapp i Azure. Du kan använda en funktionsapp för att gruppera funktioner som en logisk enhet för enklare hantering, distribution, skalning och delning av resurser.

  1. På Visual Studio-menyn väljer du Arkiv>Nytt>projekt.

  2. I Skapa ett nytt projekt anger du funktioner i sökrutan, väljer Azure Functions-mallen och väljer sedan Nästa.

  3. I Konfigurera det nya projektet anger du ett projektnamn för projektet och väljer sedan Skapa. Funktionsappens namn måste vara ett giltigt C#-namnområde. Du kan inte använda understreck, bindestreck eller andra icke-alfanumeriska tecken.

  4. Använd värdena i följande tabell för inställningarna för att skapa ett nytt Azure Functions-program:

    Inställning Värde beskrivning
    .NET-version .NET 6 Isolerad Det här värdet skapar ett funktionsprojekt som körs i en isolerad arbetsprocess. Isolerad arbetsprocess stöder andra icke-LTS-versioner av .NET och även .NET Framework. Mer information finns i Översikt över Azure Functions-körningsversioner.
    Funktionsmall HTTP-utlösare Det här värdet skapar en funktion som utlöses av en HTTP-begäran.
    Lagringskonto (AzureWebJobsStorage) Lagringsemulator Eftersom en funktionsapp i Azure kräver ett lagringskonto tilldelas eller skapas en när du publicerar projektet till Azure. En HTTP-utlösare använder inte ett Azure Storage-konto anslutningssträng. Alla andra utlösartyper kräver ett giltigt Azure Storage-konto anslutningssträng.
    Auktoriseringsnivå Anonym Funktionen som skapats kan utlösas av alla klienter utan att en nyckel anges. Den här auktoriseringsinställningen gör det enkelt att testa den nya funktionen. Mer information om nycklar och auktorisering finns i Auktoriseringsnycklar och HTTP- och webhookbindningar.

    Projektinställningar för Azure Functions

    Se till att du anger auktoriseringsnivån till Anonym. Om du väljer standardnivån funktion måste du presentera funktionsnyckeln i begäranden för att få åtkomst till funktionsslutpunkten.

  5. Välj Skapa för att skapa funktionsprojektet och funktionen HTTP-utlösare.

Anslut till ett appkonfigurationsarkiv

Det här projektet använder beroendeinmatning i .NET Azure Functions och lägger till Azure App Configuration som en extra konfigurationskälla. Azure Functions stöder pågående eller isolerade processer. Välj den som matchar dina krav.

  1. Högerklicka på projektet och välj Hantera NuGet-paket. På fliken Bläddra söker du efter och lägger till följande NuGet-paket i projektet.

  2. Lägg till kod för att ansluta till Azure App Configuration.

    Lägg till en ny fil, Startup.cs, med följande kod. Den definierar en klass med namnet Startup som implementerar den FunctionsStartup abstrakta klassen. Ett sammansättningsattribut används för att ange det typnamn som användes vid start av Azure Functions.

    Metoden ConfigureAppConfiguration åsidosättas och Azure App Configuration-providern läggs till som en extra konfigurationskälla genom att anropa AddAzureAppConfiguration(). Metoden Configure lämnas tom eftersom du inte behöver registrera några tjänster just nu.

    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. Öppna Function1.cs och lägg till följande namnområde om det inte redan finns.

    using Microsoft.Extensions.Configuration;
    

    Lägg till eller uppdatera konstruktorn som används för att hämta en instans av IConfiguration via beroendeinmatning.

    private readonly IConfiguration _configuration;
    
    public Function1(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    
  4. Run Uppdatera metoden för att läsa värden från konfigurationen.

    [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.");
    }
    

    Kommentar

    Klassen Function1 och Run metoden ska inte vara statiska. static Ta bort modifieraren om den skapades automatiskt.

Testa funktionen lokalt

  1. Ange en miljövariabel med namnet Anslut ionString och ställ in den på åtkomstnyckeln till appkonfigurationsarkivet. Om du använder Windows-kommandotolken kör du följande kommando och startar om kommandotolken så att ändringen börjar gälla:

        setx ConnectionString "connection-string-of-your-app-configuration-store"
    

    Om du använder Windows PowerShell kör du följande kommando:

        $Env:ConnectionString = "connection-string-of-your-app-configuration-store"
    

    Om du använder macOS eller Linux kör du följande kommando:

        export ConnectionString='connection-string-of-your-app-configuration-store'
    
  2. Tryck på F5 för att testa funktionen. Om du får en uppmaning accepterar du begäran från Visual Studio för att ladda ned och installera Azure Functions Core (CLI)-verktyg. Du kan också behöva aktivera ett brandväggsfel så att verktygen kan hantera HTTP-begäranden.

  3. Kopiera URL:en för funktionen från dina Azure Functions-utdata.

    Snabbstart för funktionsfelsökning i VS

  4. Klistra in webbadressen för HTTP-begäran i webbläsarens adressfält. Följande bild visar svaret i webbläsaren på den lokala GET-begäran som returneras av funktionen.

    Snabbstart för lokal funktionsstart

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.

  1. Logga in på Azure-portalen och välj Resursgrupper.
  2. I rutan Filtrera efter namn anger du namnet på resursgruppen.
  3. I resultatlistan väljer du resursgruppens namn för att se en översikt.
  4. Välj Ta bort resursgrupp.
  5. 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 ett nytt appkonfigurationsarkiv och använde det med en Azure Functions-app via appkonfigurationsprovidern. Om du vill lära dig hur du uppdaterar din Azure Functions-app för att dynamiskt uppdatera konfigurationen fortsätter du till nästa självstudie.

Om du vill lära dig hur du använder en hanterad Azure-identitet för att effektivisera åtkomsten till App Configuration fortsätter du till nästa självstudie.