Schnellstart: Erstellen einer Azure Functions-App mit Azure App Configuration

In diesem Schnellstart integrieren Sie den Azure App Configuration-Dienst in eine Azure Functions-App, um die Speicherung und Verwaltung von allen Anwendungseinstellungen getrennt von Ihrem Code zu zentralisieren.

Voraussetzungen

Hinzufügen eines Schlüssel-Wert-Paars

Fügen Sie dem App Configuration-Speicher den folgenden Schlüsselwert hinzu, und übernehmen Sie für Bezeichnung und Inhaltstyp die Standardwerte. Weitere Informationen zum Hinzufügen von Schlüssel-Wert-Paaren zu einem Speicher mithilfe des Azure-Portals oder der CLI finden Sie unter Erstellen eines Schlüssel-Wert-Paars.

Schlüssel Wert
TestApp:Settings:Message Daten aus Azure App Configuration

Erstellen einer Functions-App

Mit der Azure Functions-Projektvorlage in Visual Studio wird ein Bibliotheksprojekt der Klasse C# erstellt, das Sie in einer Funktions-App in Azure veröffentlichen können. Sie können mit einer Funktions-App Funktionen zu logischen Einheiten gruppieren. Dies erleichtert die Verwaltung, Bereitstellung, Skalierung und Freigabe von Ressourcen.

  1. Wählen Sie im Visual Studio-Menü Datei>Neu>Projekt aus.

  2. Geben Sie unter Neues Projekt erstellen den Suchbegriff functions in das Suchfeld ein, und wählen Sie die Vorlage Azure Functions und anschließend Weiter aus.

  3. Geben Sie unter Neues Projekt konfigurieren im Feld Projektname einen Namen für Ihr Projekt ein, und wählen Sie anschließend Erstellen aus. Der Name der Funktions-App muss als C#-Namespace gültig sein, verwenden Sie daher keine Unterstriche, Bindestriche oder andere nicht alphanumerische Zeichen.

  4. Verwenden Sie für die Einstellungen zum Erstellen einer neuen Azure Functions-Anwendung die Werte in der folgenden Tabelle:

    Einstellung Wert Beschreibung
    .NET-Version .NET 6 (isoliert) Dieser Wert erstellt ein Funktionsprojekt, das in einem isolierten Workerprozess ausgeführt wird. Der isolierte Arbeitsprozess unterstützt andere Nicht-LTS-Versionen von .NET und .NET Framework. Weitere Informationen finden Sie unter Einstellen von Runtimeversionen von Azure Functions als Ziel.
    Funktionsvorlage HTTP-Trigger Mit diesem Wert wird eine Funktion erstellt, die durch eine HTTP-Anforderung ausgelöst wird.
    Speicherkonto (AzureWebJobsStorage) Speicheremulator Da für eine Funktions-App in Azure ein Speicherkonto erforderlich ist, wird ein Speicherkonto zugewiesen oder erstellt, wenn Sie Ihr Projekt in Azure veröffentlichen. Von HTTP-Triggern wird keine Azure Storage-Kontoverbindungszeichenfolge verwendet. Für alle anderen Triggertypen ist dagegen eine gültige Azure Storage-Kontoverbindungszeichenfolge erforderlich.
    Autorisierungsstufe Anonym Die erstellte Funktion kann von jedem Client ausgelöst werden, ohne dass ein Schlüssel angegeben werden muss. Diese Autorisierungseinstellung erleichtert Ihnen das Testen Ihrer neuen Funktion. Weitere Informationen zu Schlüsseln und zur Autorisierung finden Sie unter Autorisierungsschlüssel sowie in der Übersicht über HTTP-Trigger und -Bindungen in Azure Functions.

    Azure Functions-Projekteinstellungen

    Stellen Sie sicher, dass Autorisierungsstufe auf Anonym festgelegt ist. Bei Verwendung der Standardebene Funktion muss in Anforderungen für den Zugriff auf den Funktionsendpunkt der Funktionsschlüssel angegeben werden.

  5. Wählen Sie Erstellen aus, um das Funktionsprojekt und die HTTP-Triggerfunktion zu erstellen.

Herstellen einer Verbindung mit einem App Configuration-Speicher

In diesem Projekt wird die Abhängigkeitsinjektion in Azure Functions (.NET) verwendet und Azure App Configuration als zusätzliche Konfigurationsquelle hinzugefügt. Azure Functions unterstützt die Ausführung von In-Process oder Isolated-Process. Wählen Sie die Option aus, die Ihren Anforderungen entspricht.

  1. Klicken Sie mit der rechten Maustaste auf Ihr Projekt, und wählen Sie NuGet-Pakete verwalten aus. Suchen Sie auf der Registerkarte Durchsuchen nach den folgenden NuGet-Paketen, und fügen Sie sie Ihrem Projekt hinzu.

  2. Fügen Sie Code hinzu, um eine Verbindung mit Azure App Configuration herzustellen.

    Fügen Sie die neue Datei Startup.cs mit dem folgenden Code hinzu. Hierbei wird eine Klasse mit dem Namen Startup definiert, mit der die abstrakte Klasse FunctionsStartup implementiert wird. Es wird ein assembly-Attribut verwendet, um den Typnamen anzugeben, der beim Starten von Azure Functions genutzt wird.

    Die ConfigureAppConfiguration-Methode wird überschrieben, und der Azure App Configuration-Anbieter wird als zusätzliche Konfigurationsquelle hinzugefügt, indem AddAzureAppConfiguration() aufgerufen wird. Die Configure-Methode wird leer gelassen, da Sie an diesem Punkt noch keine Dienste registrieren müssen.

    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. Öffnen Sie Function1.cs, und fügen Sie den folgenden Namespace hinzu, wenn er noch nicht vorhanden ist.

    using Microsoft.Extensions.Configuration;
    

    Fügen Sie einen Konstruktor hinzu, der verwendet wird, um eine Instanz von IConfiguration per Abhängigkeitsinjektion abzurufen, oder aktualisieren Sie einen.

    private readonly IConfiguration _configuration;
    
    public Function1(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    
  4. Aktualisieren Sie die Run-Methode, um Werte aus der Konfiguration zu lesen.

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

    Hinweis

    Die Function1-Klasse und die Run-Methode sollten nicht statisch sein. Entfernen Sie den Modifizierer static, falls er automatisch generiert wurde.

Lokales Testen der Funktion

  1. Legen Sie eine Umgebungsvariable mit dem Namen ConnectionString fest, und geben Sie dafür den Zugriffsschlüssel für Ihren App Configuration-Speicher an. Führen Sie bei Verwendung einer Windows-Eingabeaufforderung den folgenden Befehl aus, und starten Sie die Eingabeaufforderung neu, damit die Änderung wirksam wird:

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

    Führen Sie bei Verwendung von Windows PowerShell den folgenden Befehl aus:

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

    Führen Sie bei Verwendung von macOS oder Linux den folgenden Befehl aus:

        export ConnectionString='connection-string-of-your-app-configuration-store'
    
  2. Drücken Sie F5, um Ihre Funktion zu testen. Akzeptieren Sie die entsprechende Aufforderung von Visual Studio zum Herunterladen und Installieren der Azure Functions Core (CLI) -Tools. Sie müssen möglicherweise auch eine Firewallausnahme aktivieren, damit die Tools HTTP-Anforderungen verarbeiten können.

  3. Kopieren Sie die URL Ihrer Funktion aus der Azure Functions-Laufzeitausgabe.

    Schnellstart: Debuggen von Funktionen in VS

  4. Fügen Sie die URL zu der HTTP-Anforderung in die Adressleiste Ihres Browsers ein. In der folgenden Abbildung sehen Sie die Antwort des Browsers auf die von der Funktion zurückgegebene lokale GET-Anforderung.

    Schnellstart: Lokales Starten von Funktionen

Bereinigen von Ressourcen

Wenn Sie die in diesem Artikel erstellten Ressourcen nicht mehr verwenden möchten, löschen Sie die erstellte Ressourcengruppe, um Kosten zu vermeiden.

Wichtig

Das Löschen einer Ressourcengruppe kann nicht rückgängig gemacht werden. Die Ressourcengruppe und alle darin enthaltenen Ressourcen werden unwiderruflich gelöscht. Achten Sie daher darauf, dass Sie nicht versehentlich die falsche Ressourcengruppe oder die falschen Ressourcen löschen. Falls Sie die Ressourcen für diesen Artikel in einer Ressourcengruppe erstellt haben, die andere beizubehaltende Ressourcen enthält, löschen Sie die Ressourcen einzeln über den entsprechenden Bereich, statt die Ressourcengruppe zu löschen.

  1. Melden Sie sich beim Azure-Portal an, und klicken Sie auf Ressourcengruppen.
  2. Geben Sie im Feld Nach Name filtern den Namen Ihrer Ressourcengruppe ein.
  3. Wählen Sie in der Ergebnisliste den Ressourcengruppennamen aus, um eine Übersicht anzuzeigen.
  4. Wählen Sie die Option Ressourcengruppe löschen.
  5. Sie werden aufgefordert, das Löschen der Ressourcengruppe zu bestätigen. Geben Sie zur Bestätigung den Namen Ihrer Ressourcengruppe ein, und klicken Sie auf Löschen.

Daraufhin werden die Ressourcengruppe und alle darin enthaltenen Ressourcen gelöscht.

Nächste Schritte

In diesem Schnellstart haben Sie über den Anbieter App Configuration einen neuen App Configuration-Speicher erstellt und mit einer Azure Functions-App verwendet. Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie Ihre Azure Functions-App für die dynamische Aktualisierung der Konfiguration aktualisieren.

Fahren Sie mit dem nächsten Tutorial fort, um zu erfahren, wie Sie eine von Azure verwaltete Identität hinzufügen, um den Zugriff auf App Configuration zu optimieren.