Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In dieser Schnellstartanleitung verwenden Sie Visual Studio Code, um eine App zu erstellen, die auf Ereignisse in einem Blob Storage-Container reagiert. Nachdem Sie den Code lokal mithilfe eines Emulators getestet haben, stellen Sie ihn in einer neuen serverlosen Funktions-App bereit, die in einem Flex-Verbrauchsplan in Azure Functions ausgeführt wird.
Das Projekt verwendet die Azure Developer CLI (azd)-Erweiterung mit Visual Studio Code, um das Initialisieren und Überprüfen des Projektcodes lokal zu vereinfachen und Ihren Code in Azure bereitzustellen. Diese Bereitstellung folgt den aktuellen bewährten Methoden für sichere und skalierbare Azure Functions-Bereitstellungen.
Dieser Artikel unterstützt Version 4 des Node.js Programmiermodells für Azure Functions.
Dieser Artikel unterstützt Version 2 des Python-Programmiermodells für Azure Functions.
Voraussetzungen
Ein Azure-Konto mit einem aktiven Abonnement. Kostenlos ein Konto erstellen.
Visual Studio Code auf einer der unterstützten Plattformen
Azure Functions-Erweiterung für Visual Studio Code Diese Erweiterung erfordert Azure Functions Core Tools. Wenn dieses Tool nicht lokal verfügbar ist, versucht die Erweiterung, es mithilfe eines paketbasierten Installers zu installieren. Sie können das Core Tools-Paket auch installieren oder aktualisieren, indem Sie es über die Befehlspalette ausführen
Azure Functions: Install or Update Azure Functions Core Tools. Wenn npm oder Homebrew nicht auf Ihrem lokalen Computer installiert ist, müssen Sie stattdessen Core Tools manuell installieren oder aktualisieren.
C#-Erweiterung für Visual Studio Code.
Java Development Kit, Version 8, 11, 17 oder 21 (Linux).
Apache Maven, Version 3.0 oder höher
-
Node.js 18.x oder höher. Verwenden Sie den Befehl
node --version, um Ihre Version zu überprüfen.
Von Azure Functions unterstützte Python-Versionen. Weitere Informationen finden Sie unter Installieren von Python.
Python-Erweiterung für Visual Studio Code
- Die Azure Developer CLI-Erweiterung für Visual Studio Code.
REST-Clienterweiterung oder ein entsprechendes REST-Tool, das Sie zum sicheren Ausführen von HTTP-Anforderungen verwenden.
Initialisieren des Projekts
Verwenden Sie den azd init Befehl aus der Befehlspalette, um ein lokales Azure Functions-Codeprojekt aus einer Vorlage zu erstellen.
Öffnen Sie in Visual Studio Code einen Ordner oder Arbeitsbereich, in dem Sie Ihr Projekt erstellen möchten.
Drücken Sie F1, um die Befehlspalette zu öffnen, suchen und führen Sie den Befehl
Azure Developer CLI (azd): Initialize App (init)aus, und wählen Sie dann Vorlage auswählen aus.Es kann eine geringfügige Verzögerung geben, während
azdder aktuelle Ordner oder der aktuelle Arbeitsbereich initialisiert wird.
Wenn Sie dazu aufgefordert werden, wählen Sie eine Vorlage aus, und suchen Sie nach und wählen Sie
Azure Functions C# Event Grid Blob Trigger using Azure Developer CLIaus.Wenn Sie im Terminal dazu aufgefordert werden, geben Sie einen eindeutigen Umgebungsnamen ein, z. B.
blobevents-dotnet.Mit diesem Befehl werden die Projektdateien aus dem Vorlagen-Repository abgerufen und das Projekt im aktuellen Ordner oder Arbeitsbereich initialisiert.
Wenn Sie dazu aufgefordert werden, wählen Sie eine Vorlage aus, und suchen Sie nach und wählen Sie
Azure Functions Python Event Grid Blob Trigger using Azure Developer CLIaus.Wenn Sie im Terminal dazu aufgefordert werden, geben Sie einen eindeutigen Umgebungsnamen ein, z. B.
blobevents-python.Mit diesem Befehl werden die Projektdateien aus dem Vorlagen-Repository abgerufen und das Projekt im aktuellen Ordner oder Arbeitsbereich initialisiert.
Wenn Sie dazu aufgefordert werden, wählen Sie eine Vorlage aus, und suchen Sie nach und wählen Sie
Azure Functions TypeScript Event Grid Blob Trigger using Azure Developer CLIaus.Wenn Sie dazu aufgefordert werden, geben Sie einen eindeutigen Umgebungsnamen ein, z. B.
blobevents-typescript.Mit diesem Befehl werden die Projektdateien aus dem Vorlagen-Repository abgerufen und das Projekt im aktuellen Ordner oder Arbeitsbereich initialisiert.
Wenn Sie dazu aufgefordert werden, wählen Sie eine Vorlage aus, und suchen Sie nach und wählen Sie
Azure Functions Java Event Grid Blob Trigger using Azure Developer CLIaus.Wenn Sie dazu aufgefordert werden, geben Sie einen eindeutigen Umgebungsnamen ein, z. B.
blobevents-java.Mit diesem Befehl werden die Projektdateien aus dem Vorlagen-Repository abgerufen und das Projekt im aktuellen Ordner oder Arbeitsbereich initialisiert.
Wenn Sie dazu aufgefordert werden, wählen Sie eine Vorlage aus, und suchen Sie nach und wählen Sie
Azure Functions PowerShell Event Grid Blob Trigger using Azure Developer CLIaus.Wenn Sie dazu aufgefordert werden, geben Sie einen eindeutigen Umgebungsnamen ein, z. B.
blobevents-powershell.Mit diesem Befehl werden die Projektdateien aus dem Vorlagen-Repository abgerufen und das Projekt im aktuellen Ordner oder Arbeitsbereich initialisiert.
In azdder Umgebung wird ein eindeutiger Bereitstellungskontext für Ihre App verwaltet, und Sie können mehrere definieren. Sie ist auch Teil des Namens der Ressourcengruppe, die Sie in Azure erstellen.
Hinzufügen der local.settings.json Datei
Funktionen benötigen die local.settings.json Datei, um den Host bei der lokalen Ausführung zu konfigurieren.
Führen Sie diesen Befehl aus, um zum
srcApp-Ordner zu wechseln:cd src
Erstellen Sie eine Datei mit dem Namen local.settings.json im Ordner, der
srcdiese JSON-Daten enthält:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Erstellen Sie eine Datei mit dem Namen local.settings.json im Ordner, der
srcdiese JSON-Daten enthält:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "java", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Erstellen Sie eine Datei mit dem Namen local.settings.json im Ordner, der
srcdiese JSON-Daten enthält:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "node", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Erstellen Sie eine Datei mit dem Namen local.settings.json im Ordner, der
srcdiese JSON-Daten enthält:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "powershell", "FUNCTIONS_WORKER_RUNTIME_VERSION": "7.2", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Erstellen Sie eine Datei mit dem Namen local.settings.json im Ordner, der
srcdiese JSON-Daten enthält:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "python", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Erstellen und Aktivieren einer virtuellen Umgebung
Führen Sie im src Ordner die folgenden Befehle aus, um eine virtuelle Umgebung namens " .venvzu erstellen und zu aktivieren:
python3 -m venv .venv
source .venv/bin/activate
Wenn Python das venv-Paket nicht in Ihrer Linux-Verteilung installiert, führen Sie den folgenden Befehl aus:
sudo apt-get install python3-venv
Einrichten des lokalen Speicher-Emulators
Verwenden Sie den Azurite-Emulator, um Ihr Codeprojekt lokal auszuführen, bevor Sie Azure-Ressourcen erstellen und verwenden.
Falls noch nicht geschehen, installieren Sie Azurite.
Drücken Sie F1. Suchen Sie in der Befehlspalette nach dem Befehl, und führen Sie den Befehl
Azurite: Startaus, um den lokalen Speicher-Emulator zu starten.Erweitern Sie im Azure-Bereich den Arbeitsbereich>angefügte Speicherkonten>lokalen Emulator, klicken Sie mit der rechten Maustaste auf Blob-Container (Ctrl-Klick auf einem Mac), wählen Sie Blobcontainer erstellen... und erstellen Sie diese beiden BLOB-Speichercontainer im lokalen Emulator:
-
unprocessed-pdf: Container, der vom Trigger auf Speicherereignisse überwacht wird. -
processed-pdf: Container, in dem die Funktion verarbeitete BLOBs als Ausgabe sendet.
-
Erweitern Sie Blob Containers, klicken Sie mit der rechten Maustaste (oder Ctrl-Klick auf Mac) auf unprocessed-pdf, wählen Sie Dateien hochladen... aus, drücken Sie Enter, um das Stammverzeichnis zu akzeptieren, und laden Sie die PDF-Dateien aus dem
dataProjektordner hoch.
Beim lokalen Ausführen können Sie REST zum Auslösen der Funktion verwenden, indem sie simulieren, dass die Funktion eine Nachricht von einem Ereignisabonnement empfängt.
Lokales Ausführen der Funktion
Visual Studio Code ist in Azure Functions Core-Tools integriert, damit Sie dieses Projekt mithilfe des Azurite-Emulators auf Ihrem lokalen Entwicklungscomputer ausführen können. Die PDFProcessorSTORAGE-Umgebungsvariable definiert die Speicherkontoverbindung, die auch in der Datei „local.settings.json“ auf "UseDevelopmentStorage=true" festgelegt ist, wenn sie lokal ausgeführt wird.
Führen Sie diesen Befehl aus dem
srcProjektordner in einem Terminal oder einer Eingabeaufforderung aus:func startmvn clean package mvn azure-functions:runnpm install func startnpm install npm startWenn der Funktionenhost gestartet wird, schreibt er den Namen des Triggers und den Triggertyp in die Terminalausgabe. In Functions enthält der Projektstammordner die host.json Datei.
Mit den Core Tools, die noch im Terminal laufen, öffnen Sie die
test.httpDatei in Ihrem Projekt und wählen Sie "Anforderung senden" aus, um dieProcessBlobUploadFunktion auszulösen, indem Sie ein Blob-Testereignis an den Blob-Ereigniswebhook senden.Dieser Schritt simuliert den Empfang eines Ereignisses aus einem Ereignisabonnement, wenn es lokal ausgeführt wird, und Sie sollten die in den Protokollen geschriebenen Anforderungs- und verarbeiteten Dateiinformationen sehen. Wenn Sie keinen REST-Client verwenden, müssen Sie ein weiteres sicheres REST-Tool verwenden, um den Endpunkt mit der Nutzlast in
test.httpaufzurufen.Erweitern Sie im Arbeitsbereich für den BLOB-Container den Abschnitt processed-pdf und überprüfen Sie, ob die Funktion die PDF-Datei verarbeitet und mit einem -Präfix kopiert hat.
Wenn Sie fertig sind, drücken Sie STRG+C im Terminalfenster, um den
func.exe-Hostprozess zu beenden.
Überprüfen des Codes (optional)
Sie können den Code überprüfen, der den Ereignisraster-Blobtrigger in der ProcessBlobUpload.cs Projektdatei definiert. Die Funktion veranschaulicht Folgendes:
- Verwenden Sie
BlobTriggermitSource = BlobTriggerSource.EventGridzur nahezu Echtzeitverarbeitung. - An
BlobClientfür das Quell-BLOB und anBlobContainerClientfür das Ziel binden. - Verarbeiten von BLOB-Inhalten und Kopieren in einen anderen Container mithilfe von Streams
Sie können den Code überprüfen, der den Ereignisraster-Blobtrigger in der function_app.py Projektdatei definiert. Die Funktion veranschaulicht Folgendes:
- Verwenden Sie
@app.blob_triggermitsource="EventGrid"zur nahezu Echtzeitverarbeitung. - Zugreifen auf BLOB-Inhalte mithilfe des
InputStreamParameters - Kopieren von verarbeiteten Dateien in den Zielcontainer mithilfe des Azure Storage SDK
Sie können den Code überprüfen, der den Ereignisraster-Blobtrigger in der processBlobUpload.ts Projektdatei definiert. Die Funktion veranschaulicht Folgendes:
- Verwenden Sie
app.storageBlob()mitsource: 'EventGrid'zur nahezu Echtzeitverarbeitung. - Zugreifen auf BLOB-Inhalte mithilfe des Node.js Azure Storage SDK
- Dateien asynchron verarbeiten und in den Zielcontainer kopieren
Sie können den Code überprüfen, der den Ereignisraster-BLOB-Trigger in der ProcessBlobUpload.java Projektdatei definiert. Die Funktion veranschaulicht Folgendes:
- Verwenden Sie
@BlobTriggermitsource = "EventGrid"zur nahezu Echtzeitverarbeitung. - Zugreifen auf BLOB-Inhalte mithilfe des
BlobInputStreamParameters - Kopieren verarbeiteter Dateien in den Zielcontainer mithilfe des Azure Storage SDK für Java
Sie können den Code überprüfen, der den Ereignisraster-Blobtrigger in der ProcessBlobUpload/run.ps1 Projektdatei und der entsprechenden function.jsondefiniert. Die Funktion veranschaulicht Folgendes:
- Konfigurieren des Blob-Trigger mit
"source": "EventGrid"in function.json für die Nahezu-Echtzeit-Verarbeitung - Zugreifen auf BLOB-Inhalte mit PowerShell Azure Storage-Cmdlets
- Verarbeiten und Kopieren von Dateien in den Zielcontainer mithilfe von Azure PowerShell-Modulen
Nachdem Sie den Funktionscode lokal überprüft und verifiziert haben, ist es an der Zeit, das Projekt in Azure zu veröffentlichen.
Erstellen von Azure-Ressourcen und Bereitstellen
Verwenden Sie den azd up Befehl, um die Funktions-App in einem Flex-Verbrauchsplan zusammen mit anderen erforderlichen Azure-Ressourcen zu erstellen, einschließlich des Ereignisabonnements. Nachdem die Infrastruktur fertig ist, stellt azd auch Ihren Projektcode in der neuen Function App in Azure bereit.
Drücken Sie in Visual Studio Code F1, um die Befehlspalette zu öffnen. Suchen Sie nach dem Befehl, und führen Sie den Befehl
Azure Developer CLI (azd): Sign In with Azure Developer CLIaus, und melden Sie sich dann mit Ihrem Azure-Konto an.Drücken Sie im Projektstamm F1 , um die Befehlspalette zu öffnen. Suchen Sie nach dem Befehl, und führen Sie den Befehl
Azure Developer CLI (azd): Provision and Deploy (up)aus, um die erforderlichen Azure-Ressourcen zu erstellen und Ihren Code bereitzustellen.Wenn Sie im Terminalfenster aufgefordert werden, geben Sie die folgenden erforderlichen Bereitstellungsparameter an:
Prompt Description Wählen Sie ein Azure-Abonnement aus, das Sie verwenden möchten. Wählen Sie das Abonnement aus, in dem Sie Ihre Ressourcen erstellen möchten. Umgebungsname Eine Umgebung, die dazu dient, einen eindeutigen Bereitstellungskontext für Ihre Anwendung zu erhalten. Azure-Standort Die Azure-Region, in der die Ressourcengruppe erstellt werden soll, die die neuen Azure-Ressourcen enthält. Es werden nur Regionen angezeigt, die den Flex-Verbrauchsplan derzeit unterstützen. Der
azd upBefehl verwendet Ihre Antworten auf diese Eingabeaufforderungen mit den Bicep-Konfigurationsdateien, um diese erforderlichen Azure-Ressourcen zu erstellen und zu konfigurieren, und zwar nach den neuesten bewährten Methoden:- Flex-Verbrauchsplan und Funktions-App
- Azure Storage-Konto mit BLOB-Containern
- Application Insights (empfohlen)
- Zugriffsrichtlinien und -rollen für Ihr Konto
- Event Grid-Abonnement für Blob-Ereignisse
- Dienst-zu-Dienst-Verbindungen mithilfe von verwalteten Identitäten (anstelle gespeicherter Verbindungszeichenfolgen)
Nachdem der Befehl erfolgreich abgeschlossen wurde, wird Ihre App in Azure mit einem Ereignisabonnement ausgeführt, das so konfiguriert ist, dass Ihre Funktion ausgelöst wird, wenn Blobs dem
unprocessed-pdfContainer hinzugefügt werden.Notieren Sie sich
AZURE_STORAGE_ACCOUNT_NAMEundAZURE_FUNCTION_APP_NAMEin der Ausgabe. Diese Namen sind für Ihr Speicherkonto bzw. Ihre Funktions-App in Azure eindeutig.
Überprüfen der bereitgestellten Funktion
Drücken Sie in Visual Studio Code F1. Suchen Sie in der Befehlspalette nach dem Befehl, und führen Sie den Befehl
Azure Storage: Upload Files...aus. Übernehmen Sie das Stammverzeichnis, und laden Sie wie zuvor eine oder mehrere PDF-Dateien aus demdataProjektordner hoch.Wenn Sie dazu aufgefordert werden, wählen Sie den Namen Ihres neuen Speicherkontos (von
AZURE_STORAGE_ACCOUNT_NAME). Wählen Sie Blob Containers>unprocessed-pdf.Drücken Sie F1. Suchen Sie in der Befehlspalette nach dem Befehl, und führen Sie den Befehl
Azure Storage: Open in Exploreraus. Wählen Sie dasselbe Speicherkonto >Blob-Container>processed-pdf aus und öffnen Sie es dann in einem neuen Fenster.Überprüfen Sie im Explorer, ob die hochgeladenen PDF-Dateien von Ihrer Funktion verarbeitet wurden. Die Ausgabe wird in den
processed-pdfContainer mit einemprocessed-Präfix geschrieben.
Der Ereignisraster-Blobtrigger verarbeitet Dateien innerhalb von Sekunden nach dem Hochladen. Diese Geschwindigkeit veranschaulicht die Funktionen in Quasi-Echtzeit dieses Ansatzes im Vergleich zu herkömmlichen abrufbasierten Blobtriggern.
Erneutes Bereitstellen Ihres Codes
Führen Sie den azd up Befehl so oft aus, wie Sie ihre Azure-Ressourcen bereitstellen und Codeupdates für Ihre Funktions-App bereitstellen müssen.
Hinweis
Bereitgestellte Codedateien werden immer vom neuesten Bereitstellungspaket überschrieben.
Ihre anfänglichen Antworten auf azd-Eingabeaufforderungen und alle von Ihnen generierten azd-Umgebungsvariablen werden lokal in Ihrer benannten Umgebung gespeichert. Verwenden Sie den azd env get-values-Befehl, um alle Variablen in Ihrer Umgebung zu überprüfen, die beim Erstellen von Azure-Ressourcen verwendet wurden.
Bereinigen von Ressourcen
Wenn Sie mit der Arbeit mit Ihrer Funktions-App und verwandten Ressourcen fertig sind, verwenden Sie diesen Befehl, um die Funktions-App und die zugehörigen Ressourcen aus Azure zu löschen. Diese Aktion hilft Ihnen, weitere Kosten zu vermeiden:
azd down --no-prompt
Hinweis
Die --no-prompt-Option weist azd an, Ihre Ressourcengruppe ohne Bestätigung von Ihnen zu löschen.
Dieser Befehl wirkt sich nicht auf Ihr lokales Codeprojekt aus.