Schnellstart: Erstellen einer Funktion in Azure mit Python mithilfe von Visual Studio Code

In diesem Artikel wird mithilfe von Visual Studio Code eine Python-Funktion erstellt, die auf HTTP-Anforderungen reagiert. Der Code wird lokal getestet und anschließend in der serverlosen Umgebung von Azure Functions bereitgestellt.

In diesem Artikel werden die beiden Python-Programmiermodelle behandelt, die von Azure Functions unterstützt werden. Verwenden Sie die Auswahl oben, um Ihr Programmiermodell auszuwählen.

Hinweis

Das Python v2-Programmiermodell für Functions befindet sich derzeit in der Vorschau. Weitere Informationen zum v2-Programmiermodell finden Sie im Entwicklerreferenzleitfaden.

Im Rahmen dieser Schnellstartanleitung fallen in Ihrem Azure-Konto ggf. geringfügige Kosten im Centbereich an.

Es gibt auch eine CLI-basierte Version dieses Artikels.

Konfigurieren Ihrer Umgebung

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Anforderungen erfüllt sind:

  • Die Azure Functions-Erweiterung für Visual Studio Code ab Version 1.8.1.

  • Der lokale Speicheremulator der Azurite-V3-Erweiterung. Sie können auch ein tatsächliches Azure-Speicherkonto verwenden, aber in diesem Artikel wird davon ausgegangen, dass Sie den Azurite-Emulator verwenden.

Wichtig

Functions unterstützt derzeit keine Python-Funktionsentwicklung auf ARM64-Geräten. Um Python-Funktionen auf einem Mac mit einem M1-Chip zu entwickeln, muss die Ausführung in einer emulierten x86-Umgebung erfolgen. Weitere Informationen finden Sie unter x86-Emulation auf ARM64.

Erstellen Ihres lokalen Projekts

In diesem Abschnitt wird mithilfe von Visual Studio Code ein lokales Azure Functions-Projekt in Python erstellt. Weiter unten in diesem Artikel wird der Funktionscode in Azure veröffentlicht.

  1. Wählen Sie in der Aktivitätsleiste das Azure-Symbol aus. Wählen Sie dann im Bereich Arbeitsbereich (lokal) die Schaltfläche + aus, und wählen Sie Funktion erstellen in der Dropdownliste aus. Wenn Sie dazu aufgefordert werden, wählen Sie Neues Projekt erstellen aus.

    Screenshot: das Fenster „Neues Projekt erstellen“.

  2. Wählen Sie den Verzeichnisspeicherort für Ihren Projektarbeitsbereich und anschließend Auswählen aus. Sie sollten entweder einen neuen Ordner erstellen oder einen leeren Ordner für den Projektarbeitsbereich auswählen. Wählen Sie keinen Projektordner aus, der bereits Teil eines Arbeitsbereichs ist.

  1. Geben Sie nach entsprechender Aufforderung Folgendes ein:

    Prompt Auswahl
    Sprache auswählen Klicken Sie auf die Option Python.
    Auswählen einer Python-Interpreters zum Erstellen einer virtuellen Umgebung Wählen Sie Ihren bevorzugten Python-Interpreter aus. Sollte eine Option nicht angezeigt werden, geben Sie den vollständigen Pfad Ihrer Python-Binärdatei ein.
    Auswählen einer Vorlage für die erste Funktion Ihres Projekts Klicken Sie auf die Option HTTP trigger.
    Angeben eines Funktionsnamens Geben Sie HttpExample ein.
    Autorisierungsstufe Wählen Sie Anonymous aus, damit Ihr Funktionsendpunkt von jedem Benutzer aufgerufen werden kann. Weitere Informationen zur Autorisierungsebene finden Sie unter Autorisierungsschlüssel.
    Auswählen, wie Sie Ihr Projekt öffnen möchten Klicken Sie auf die Option Add to workspace.
  2. Visual Studio Code verwendet die bereitgestellten Informationen und generiert ein Azure Functions-Projekt mit einem HTTP-Trigger. Die lokalen Projektdateien können im Explorer angezeigt werden. Weitere Informationen zu den Dateien, die erstellt werden, finden Sie unter Generierte Projektdateien.

  1. Geben Sie nach entsprechender Aufforderung Folgendes ein:

    Prompt Auswahl
    Sprache auswählen Klicken Sie auf die Option Python (Programming Model V2).
    Auswählen einer Python-Interpreters zum Erstellen einer virtuellen Umgebung Wählen Sie Ihren bevorzugten Python-Interpreter aus. Sollte eine Option nicht angezeigt werden, geben Sie den vollständigen Pfad Ihrer Python-Binärdatei ein.
    Auswählen, wie Sie Ihr Projekt öffnen möchten Klicken Sie auf die Option Add to workspace.
  2. Visual Studio Code verwendet die bereitgestellten Informationen und generiert ein Azure Functions-Projekt.

  3. Öffnen Sie die generierte Projektdatei function_app.py, die Ihre Funktionen enthält.

  4. Heben Sie die Kommentierung der Funktion test_function auf, die eine durch HTTP ausgelöste Funktion ist.

  5. Ersetzen Sie den app.route()-Methodenaufruf durch den folgenden Code:

    @app.route(route="hello", auth_level=func.AuthLevel.ANONYMOUS)
    

    Mit diesem Code kann Ihr HTTP-Funktionsendpunkt in Azure aufgerufen werden, ohne Autorisierungsschlüssel bereitstellen zu müssen. Die lokale Ausführung erfordert keine Autorisierungsschlüssel.

    Ihr Funktionscode sollte jetzt wie das folgende Beispiel aussehen:

    app = func.FunctionApp()
    @app.function_name(name="HttpTrigger1")
    @app.route(route="hello", auth_level=func.AuthLevel.ANONYMOUS)
    def test_function(req: func.HttpRequest) -> func.HttpResponse:
        logging.info('Python HTTP trigger function processed a request.')
    
        name = req.params.get('name')
        if not name:
            try:
                req_body = req.get_json()
            except ValueError:
                pass
            else:
                name = req_body.get('name')
    
        if name:
            return func.HttpResponse(f"Hello, {name}. This HTTP triggered function executed successfully.")
        else:
            return func.HttpResponse(
                "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.",
                status_code=200
            ) 
    
  6. Öffnen Sie die Projektdatei „local.settings.json“, und aktualisieren Sie die AzureWebJobsStorage-Einstellung wie im folgenden Beispiel:

    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    

    Dies weist den lokalen Functions-Host an, den Speicheremulator für die derzeit vom v2-Modell verlangte Speicherverbindung zu verwenden. Wenn Sie Ihr Projekt in Azure veröffentlichen, verwenden Sie stattdessen das Standardspeicherkonto. Wenn Sie stattdessen ein Azure Storage-Konto verwenden, legen Sie hier die Verbindungszeichenfolge für Ihr Speicherkonto fest.

Starten des Emulators

  1. Drücken Sie in Visual Studio Code F1, um die Befehlspalette zu öffnen. Suchen Sie in der Befehlspalette den Befehl Azurite: Start, und wählen Sie ihn aus.

  2. Überprüfen Sie die untere Leiste, und stellen Sie sicher, dass die Azurite-Emulationsdienste ausgeführt werden. Wenn dies der Fall ist, können Sie ihre Funktion jetzt lokal ausführen.

Lokales Ausführen der Funktion

Dank der Integration zwischen Visual Studio Code und Azure Functions Core Tools können Sie dieses Projekt vor der Veröffentlichung in Azure zunächst auf Ihrem lokalen Entwicklungscomputer ausführen.

  1. Um die Funktion lokal zu starten, drücken Sie F5, oder klicken Sie auf der Aktivitätsleiste auf der linken Seite auf das Symbol Ausführen und debuggen. Im Terminalbereich wird die Ausgabe aus den Core Tools angezeigt. Ihre App wird im Terminal-Bereich gestartet. Der lokal ausgeführte URL-Endpunkt Ihrer über HTTP ausgelösten Funktion wird angezeigt.

    Screenshot: VS Code-Ausgabe der lokalen Funktion.

    Sollten bei der Ausführung unter Windows Probleme auftreten, vergewissern Sie sich, dass das Standardterminal für Visual Studio Code nicht auf WSL Bash festgelegt ist.

  2. Wählen Sie mit den weiterhin im Terminal ausgeführten Core Tools das Azure-Symbol in der Aktivitätsleiste aus. Erweitern Sie im Bereich Arbeitsbereich die Option Lokales Projekt>Funktionen. Klicken Sie mit der rechten Maustaste auf die neue Funktion (unter Windows ), oder verwenden Sie STRG - (unter macOS), und wählen Sie dann Funktion jetzt ausführen... aus.

    „Funktion jetzt ausführen“ in Visual Studio Code

  3. Unter Enter request body (Anforderungstext eingeben) wird als Wert für den Text der Anforderungsnachricht angezeigt. Drücken Sie die EINGABETASTE, um diese Anforderungsnachricht an Ihre Funktion zu senden.

  4. Wenn die Funktion lokal ausgeführt wird und eine Antwort zurückgibt, wird in Visual Studio Code eine Benachrichtigung ausgelöst. Informationen zur Funktionsausführung werden im Terminal-Bereich angezeigt.

  5. Drücken Sie STRG + C, während der Bereich Terminal den Fokus hat, um die Core Tools zu beenden und den Debugger zu trennen.

Nachdem Sie sich vergewissert haben, dass die Funktion auf Ihrem lokalen Computer korrekt ausgeführt wird, können Sie das Projekt mithilfe von Visual Studio Code direkt in Azure veröffentlichen.

Anmelden bei Azure

Bevor Sie Ihre App veröffentlichen können, müssen Sie sich bei Azure anmelden.

  1. Sollten Sie noch nicht angemeldet sein, wählen Sie auf der Aktivitätsleiste das Azure-Symbol aus. Wählen Sie dann im Bereich Ressourcen die Option Bei Azure anmelden... aus.

    Der Screenshot des Anmeldefensters bei Azure in VS Code.

    Wenn Sie bereits angemeldet sind und Ihre vorhandenen Abonnements anzeigen können, fahren Sie mit dem nächsten Abschnitt fort. Wenn Sie noch kein Azure-Konto haben, wählen Sie Azure-Konto erstellen aus. Lernende können Azure for Students-Konto erstellen... auswählen.

  2. Wählen Sie im Browser nach entsprechender Aufforderung Ihr Azure-Konto aus, und melden Sie sich mit Ihren Azure-Anmeldeinformationen an. Wenn Sie ein neues Konto erstellen, können Sie sich anmelden, nachdem Ihr Konto erstellt wurde.

  3. Wenn Sie sich erfolgreich angemeldet haben, können Sie das neue Browserfenster schließen. Die Abonnements, die zu Ihrem Azure-Konto gehören, werden auf der Seitenleiste angezeigt.

Erstellen der Funktions-App in Azure

In diesem Abschnitt erstellen Sie eine Funktions-App und zugehörige Ressourcen in Ihrem Azure-Abonnement.

  1. Wählen Sie in der Aktivitätsleiste das Azure-Symbol aus. Wählen Sie dann im Bereich Ressourcen das +-Symbol aus, und wählen Sie die Option Funktions-App in Azure erstellen aus.

    Erstellen einer Ressource in Ihrem Azure-Abonnement

  2. Geben Sie nach entsprechender Aufforderung Folgendes ein:

    Prompt Auswahl
    Auswählen des Abonnements Wählen Sie das zu verwendende Abonnement aus. Diese Eingabeaufforderung wird nicht angezeigt, wenn nur ein Abonnement unter Ressourcen sichtbar ist.
    Eingeben eines global eindeutigen Namens für die Funktions-App Geben Sie einen Namen ein, der in einem URL-Pfad gültig ist. Der eingegebene Name wird überprüft, um sicherzustellen, dass er in Azure Functions eindeutig ist.
    Wählen Sie einen Runtimestapel aus Wählen Sie die lokal ausgeführte Sprachversion aus.
    Auswählen eines Standorts für neue Ressourcen Wählen Sie eine Region für Ihre Funktions-App aus.

    Wählen Sie in der aktuellen Vorschau des v2-Programmiermodells eine Region aus einem der folgenden Standorte aus: „Frankreich, Mitte“, „USA, Westen-Mitte“, „Europa, Norden“, „China, Osten“, „USA, Osten“ oder „USA, Norden-Mitte“.

    Die Erweiterung zeigt den Status einzelner Ressourcen an, während diese in Azure im Bereich Azure: Aktivitätsprotokoll erstellt werden.

    Protokoll der Erstellung von Azure-Ressourcen

  3. Nach Abschluss der Erstellung werden in Ihrem Abonnement die folgenden Azure-Ressourcen erstellt. Die Ressourcen werden basierend auf Ihrem Funktions-App-Namen benannt:

    • Eine Ressourcengruppe, bei der es sich um einen logischen Container für verwandte Ressourcen handelt.
    • Ein Azure Storage-Standardkonto, unter dem Status- und andere Informationen zu Ihren Projekten verwaltet werden.
    • Eine Funktions-App, die als Umgebung zum Ausführen Ihres Funktionscodes dient. Mit einer Funktions-App können Sie Funktionen zu logischen Einheiten gruppieren. Dies erleichtert die Verwaltung, Bereitstellung und Freigabe von Ressourcen im selben Hostingplan.
    • Ein App Service-Plan, der den zugrunde liegenden Host für Ihre serverlose Funktions-App definiert.
    • Eine mit der Funktions-App verbundene Application Insights-Instanz, die die Nutzung Ihrer Funktionen in der App nachverfolgt.

    Nach der Erstellung der Funktions-App wird eine Benachrichtigung angezeigt, und das Bereitstellungspaket wird angewendet.

    Tipp

    Standardmäßig werden die von Ihrer Funktions-App benötigten Azure-Ressourcen basierend auf dem von Ihnen angegebenen Namen der Funktions-App erstellt. Darüber hinaus werden sie auch in derselben neuen Ressourcengruppe mit der Funktions-App erstellt. Falls Sie entweder die Namen dieser Ressourcen anpassen oder vorhandene Ressourcen wiederverwenden möchten, müssen Sie das Projekt stattdessen mit den erweiterten Erstellungsoptionen veröffentlichen.

Bereitstellen des Projekts in Azure

Wichtig

Bei der Bereitstellung in einer vorhandenen Funktions-App wird der Inhalt dieser App in Azure immer überschrieben.

  1. Wählen Sie das Azure-Symbol in der Aktivitätsleiste aus, wählen Sie dann im Arbeitsbereichsbereich Ihren Projektordner aus, und wählen Sie die Schaltfläche Bereitstellen... aus.

    Stellen Sie das Projekt aus dem Visual Studio Code-Workspace bereit

  2. Wählen Sie In Funktions-App bereitstellen... aus, wählen Sie die soeben erstellte Funktions-App aus und wählen Sie Bereitstellen.

  3. Wählen Sie nach Abschluss der Bereitstellung Ausgabe anzeigen aus, um die Erstellungs- und Bereitstellungsergebnisse (auch für die von Ihnen erstellten Azure-Ressourcen) anzuzeigen. Wenn Sie die Benachrichtigung übersehen haben, wählen Sie das Glockensymbol in der unteren rechten Ecke aus, um sie erneut anzuzeigen.

    Der Screenshot des Fensters Ausgabe anzeigen.

Aktualisieren von App-Einstellungen

Um das Python v2-Modell in Ihrer Funktions-App zu verwenden, müssen Sie in Azure eine neue Anwendungseinstellung namens AzureWebJobsFeatureFlags mit dem Wert EnableWorkerIndexinghinzufügen. Diese Einstellung befindet sich bereits in der Datei „local.settings.json“.

  1. Drücken Sie in Visual Studio Code F1, um die Befehlspalette zu öffnen. Suchen Sie in der Befehlspalette den Befehl Azure Functions: Add New Setting..., und wählen Sie ihn aus.

  2. Wählen Sie Ihre neue Funktions-App aus, geben Sie AzureWebJobsFeatureFlags als Namen für die neue App-Einstellung ein, und drücken Sie dann die EINGABETASTE.

  3. Geben Sie EnableWorkerIndexing als Wert ein, und drücken Sie dann die EINGABETASTE.

Die Einstellung, die Ihrer neuen Funktions-App hinzugefügt wurde, wodurch sie das v2-Modell in Azure ausführen kann.

Ausführen der Funktion in Azure

  1. Erweitern Sie im Bereich Ressourcen auf der Seitenleiste Ihr Abonnement, die neue Funktions-App und Funktionen. Klicken Sie unter Windows mit der rechten Maustaste (unter macOS STRG+Mausklick) auf die Funktion HttpExample, und wählen Sie Funktion jetzt ausführen... aus.

    Der Screenshot der Ausführungsfunktion in Azure aus Visual Studio Code.

  2. Unter Enter request body (Anforderungstext eingeben) wird als Wert für den Text der Anforderungsnachricht angezeigt. Drücken Sie die EINGABETASTE, um diese Anforderungsnachricht an Ihre Funktion zu senden.

  3. Wenn die Funktion in Azure ausgeführt wird und eine Antwort zurückgibt, wird in Visual Studio Code eine Benachrichtigung ausgelöst.

Bereinigen von Ressourcen

Wenn Sie mit dem nächsten Schritt fortfahren und Ihrer Funktion eine Azure Storage-Warteschlangenbindung hinzufügen möchten, müssen alle Ihre Ressourcen erhalten bleiben, um darauf aufbauen zu können.

Andernfalls können Sie die Funktions-App und die zugehörigen Ressourcen wie im Anschluss beschrieben löschen, um weitere Kosten zu vermeiden.

  1. Drücken Sie in Visual Studio Code F1, um die Befehlspalette zu öffnen. Suchen Sie in der Befehlspalette den Befehl Azure: Open in portal, und wählen Sie ihn aus.

  2. Wählen Sie Ihre Funktions-App aus, und drücken Sie die EINGABETASTE. Die Seite der Funktions-App wird im Azure-Portal geöffnet.

  3. Wählen Sie auf der Registerkarte Übersicht den benannten Link neben Ressourcengruppe aus.

    Der Screenshot der Auswahl der Ressourcengruppe, die von der Funktions-App-Seite gelöscht werden soll.

  4. Überprüfen Sie auf der Seite Ressourcengruppe die Liste mit den enthaltenen Ressourcen, und vergewissern Sie sich, dass es sich dabei um die Ressourcen handelt, die Sie löschen möchten.

  5. Klicken Sie auf Ressourcengruppe löschen, und folgen Sie den Anweisungen.

    Der Löschvorgang kann einige Minuten dauern. Nach Abschluss des Vorgangs wird kurz eine Benachrichtigung angezeigt. Sie können auch am oberen Seitenrand auf das Glockensymbol klicken, um die Benachrichtigung anzuzeigen.

Weitere Informationen zu den Kosten von Functions finden Sie unter Abschätzen der Kosten des Verbrauchstarifs.

Nächste Schritte

Sie haben Visual Studio Code genutzt, um eine Funktions-App mit einer einfachen Funktion zu erstellen, die über HTTP ausgelöst wird. Im nächsten Artikel erweitern Sie diese Funktion, indem Sie eine Verbindung mit Azure Storage herstellen. Weitere Informationen zum Herstellen einer Verbindung mit anderen Azure-Diensten finden Sie unter Hinzufügen von Bindungen zu einer vorhandenen Funktion in Azure Functions.

Treten Probleme auf? Teilen Sie es uns mit.