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
- Ett Azure-konto med en aktiv prenumeration. Skapa en kostnadsfritt.
- Ett appkonfigurationsarkiv. Skapa en butik.
- Visual Studio med arbetsbelastningen Azure-utveckling .
- Azure Functions-verktyg, om du inte redan har installerat det med Visual Studio.
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:Settings: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.
På Visual Studio-menyn väljer du Arkiv>Nytt>projekt.
I Skapa ett nytt projekt anger du funktioner i sökrutan, väljer Azure Functions-mallen och väljer sedan Nästa.
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.
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 niska veze. Alla andra utlösartyper kräver ett giltigt Azure Storage-konto niska veze. 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. 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.
Välj Skapa för att skapa funktionsprojektet och funktionen HTTP-utlösare.
Ansluta 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.
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.
- Microsoft.Extensions.Configuration.AzureAppConfiguration version 4.1.0 eller senare
- Microsoft.Azure.Functions.Extensions version 1.1.0 eller senare
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 denFunctionsStartup
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 anropaAddAzureAppConfiguration()
. MetodenConfigure
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) { } } }
Ö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; }
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
ochRun
metoden ska inte vara statiska.static
Ta bort modifieraren om den skapades automatiskt.
Testa funktionen lokalt
Ange en miljövariabel med namnet ConnectionString 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'
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.
Kopiera URL:en för funktionen från dina Azure Functions-utdata.
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.
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-portalen 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 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.