Dela via


Självstudie: Använda dynamisk konfiguration i en Azure Functions-app

Den här självstudien visar hur du kan aktivera dynamiska konfigurationsuppdateringar i Azure Functions-appen. Den bygger på Azure Functions-appen som introducerades i snabbstarterna. Innan du fortsätter slutför du Skapa en Azure Functions-app med Azure App Configuration först.

I den här tutorialen lär du dig följande:

  • Konfigurera dynamisk konfigurationsuppdatering för din Azure Functions-app.
  • Aktivera automatisk konfigurationsuppdatering med appkonfigurationens mellanprogram.
  • Använd den senaste konfigurationen i Funktionsanrop när ändringar sker i appkonfigurationsarkivet.

Förutsättningar

Läsa in data på nytt från App Configuration

Azure App Configuration .NET-providern stöder cachelagring och dynamisk uppdatering av konfigurationsinställningar baserat på programaktivitet. I det här avsnittet konfigurerar du providern för att uppdatera inställningarna dynamiskt och aktivera automatisk konfigurationsuppdatering med hjälp av appkonfigurationens mellanprogram, Microsoft.Azure.AppConfiguration.Functions.Worker, varje gång en funktion körs.

Anmärkning

Azure App Configuration kan användas med Azure Functions i antingen den isolerade arbetsmodellen eller i processmodellen. I denna handledning används den isolerade arbetsmodellen som exempel. Du hittar fullständiga kodexempel för båda modellerna i Azure App Configuration GitHub-lagringsplatsen.

  1. Öppna filen Program.cs och uppdatera anropet till AddAzureAppConfiguration för att inkludera ConfigureRefresh metoden. Den här metoden konfigurerar villkoren för att uppdatera konfigurationsinställningarna, inklusive att ange de nycklar som ska övervakas och intervallet mellan uppdateringskontrollerna.

    // 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 keys that start with `TestApp:` and have no label
               .Select("TestApp:*")
               // Reload configuration if any selected key-values have changed.
               // Use the default refresh interval of 30 seconds. It can be overridden via AzureAppConfigurationRefreshOptions.SetRefreshInterval.
               .ConfigureRefresh(refreshOptions =>
               {
                   refreshOptions.RegisterAll();
               });
    });
    

    Du anropar RegisterAll metoden för att instruera appkonfigurationsprovidern att läsa in hela konfigurationen igen när den identifierar en ändring i något av de valda nyckelvärdena (de som börjar med TestApp: och som inte har någon etikett). Mer information om hur du övervakar konfigurationsändringar finns i Metodtips för konfigurationsuppdatering.

    Som standard är uppdateringsintervallet inställt på 30 sekunder. Du kan anpassa det här intervallet genom att AzureAppConfigurationRefreshOptions.SetRefreshInterval anropa metoden.

  2. Uppdatera Program.cs-filen för att aktivera automatisk konfigurationsuppdatering vid varje funktionskörning genom att lägga till mellanprogrammet App Configuration:

    // Connect to Azure App Configuration
    builder.Configuration.AddAzureAppConfiguration(options =>
    {
        // Omitted the code added in the previous step.
    });
    
    // Add Azure App Configuration middleware to the service collection.
    builder.Services.AddAzureAppConfiguration()
    
    // Use Azure App Configuration middleware for dynamic configuration refresh.
    builder.UseAzureAppConfiguration();
    
    builder.ConfigureFunctionsWebApplication();
    
    builder.Build().Run();
    

Testa funktionen lokalt

  1. Ange miljövariabeln .

    Ange miljövariabeln med namnet AZURE_APPCONFIG_ENDPOINT till slutpunkten för din App Configuration-butik som finns i Azure-portalen under Översikt över din butik.

    Om du använder Windows-kommandotolken kör du följande kommando och startar om kommandotolken så att ändringen börjar gälla:

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

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

    $Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
    

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

    export AZURE_APPCONFIG_ENDPOINT='<endpoint-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äggsundantag för att verktygen ska kunna hantera HTTP-begäranden.

  3. Kopiera URL:en för din funktion från utdata i Azure Functions.

    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 att köra funktion lokalt

  5. Välj ditt App Configuration Store i Azure-portalen och uppdatera värdet för följande nyckel i Configuration Explorer.

    Nyckel Värde
    TestApp:Settings:Message Data från Azure App Configuration – Uppdaterad
  6. Uppdatera webbläsaren några gånger. När standarduppdateringsintervallet på 30 sekunder har passerat visar sidan det uppdaterade värdet som hämtats från Din Azure Functions-app.

    Snabbstart Funktionsuppdatering lokalt

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 Portal 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 självstudien har du aktiverat Azure Functions-appen för att dynamiskt uppdatera konfigurationsinställningarna från App Configuration.

Om du vill lära dig hur du använder funktionsflaggor från Azure App Configuration i din Azure Functions-app går du vidare till följande 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ätt till följande handledning.