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 diesem Tutorial erfahren Sie, wie Sie eine Python-Funktion mit einer Speicherwarteschlange als Trigger konfigurieren, indem Sie die folgenden Aufgaben ausführen.
- Verwenden von Visual Studio Code zum Erstellen eines Python-Funktionsprojekts.
- Verwenden von Visual Studio Code zum lokalen Ausführen der Datei.
- Verwenden der Azure CLI, um mithilfe eines Dienstconnectors eine Verbindung zwischen der Azure-Funktion und der Speicherwarteschlange erstellen.
- Verwenden von Visual Studio zum Bereitstellen Ihrer Funktion.
Hier eine Übersicht über die Komponenten des Funktionsprojekts dieses Tutorials:
| Projektkomponente | Auswahl/Lösung |
|---|---|
| Quelldienst | Azure-Funktion |
| Zieldienst | Azure Storage-Warteschlange |
| Funktionsbindung | Speicherwarteschlange als Trigger |
| Lokaler Projektauthentifizierungstyp | Verbindungszeichenfolge |
| Cloudfunktionsauthentifizierungstyp | Verbindungszeichenfolge |
Warnung
Microsoft empfiehlt, immer den sichersten Authentifizierungsflow zu verwenden. Der in diesem Verfahren beschriebene Authentifizierungsfluss erfordert ein hohes Vertrauen in die Anwendung und trägt Risiken, die in anderen Flüssen nicht vorhanden sind. Sie sollten diesen Flow nur verwenden, wenn andere sicherere Flows (z. B. verwaltete Identitäten) nicht anwendbar sind.
Voraussetzungen
- Installieren Sie Visual Studio Code auf einer der unterstützten Plattformen.
- Die Azure CLI Sie können sie in Azure Cloud Shell verwenden oder lokal installieren.
- Ein Azure Storage-Konto und eine Speicherwarteschlange. Wenn Sie über keine Azure Storage verfügen, müssen Sie eine erstellen.
- In diesem Leitfaden wird davon ausgegangen, dass Sie die grundlegenden Konzepte kennen, die im Entwicklerhandbuch Azure Functions sowie im Artikel Herstellen einer Verbindung mit Diensten in Functions vorgestellt werden.
Erstellen eines Python-Funktionsprojekts
Folgen Sie dem Lernprogramm, um ein lokales Azure Functions-Projekt zu erstellen. Geben Sie bei entsprechender Aufforderung die folgenden Informationen ein:
| Prompt | Auswahl |
|---|---|
| Wählen Sie eine Sprache | Klicken Sie auf die Option Python. (Programmiersprachenmodell v1) |
| Wählen Sie einen Python-Interpreter, um eine virtuelle Umgebung zu erstellen | 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. |
| Wählen Sie eine Vorlage für die erste Funktion in Ihrem Projekt | Klicken Sie auf die Option Azure Queue Storage trigger. |
| Geben Sie einen Funktionsnamen an | Geben Sie QueueStorageTriggerFunc ein. |
| Wählen Sie eine Einstellung aus „local.settings.json“ | Wählen Sie Create new local app settings, um Ihr Speicherkonto auszuwählen und den Namen Ihrer Warteschlange anzugeben, die als Auslöser dient. |
Mit diesen Informationen generiert Visual Studio Code ein Python-Funktionsprojekt mit Azure Storage Queue als Trigger. Das lokale Projekt verbindet sich mit Azure Storage unter Verwendung der in der local.settings.json-Datei gespeicherten Verbindungszeichenfolge. Schließlich kann die main-Funktion in der __init__.py-Datei der Funktion die Verbindungszeichenfolge mit Hilfe der in der function.json-Datei definierten Funktionsbindung verwenden.
Lokales Ausführen der Funktion
Folgen Sie dem Tutorial, um die Funktion lokal auszuführen und den Trigger zu überprüfen.
- Wenn Sie aufgefordert werden, eine Verbindung mit dem Speicher herzustellen, wählen Sie das Speicherkonto aus, das Sie beim Erstellen der Azure Function-Ressource ausgewählt haben. Dieser Wert wird für die Laufzeit der Azure-Funktion verwendet und ist nicht unbedingt mit dem Speicherkonto identisch, das Sie für den Trigger verwenden.
- Um die Funktion lokal zu starten, drücken Sie
<kbd>F5</kbd>, oder wählen Sie auf der Aktivitätsleiste auf der linken Seite das Symbol Ausführen und debuggen aus. - Um zu überprüfen, ob der Trigger ordnungsgemäß funktioniert, führen Sie die Funktion lokal aus, und öffnen Sie den Bereich "Speicherwarteschlange" im Azure-Portal. Wählen Sie "Nachricht hinzufügen" aus, und geben Sie eine Testnachricht an. Sie sollten sehen, dass die Funktion getriggert und als Warteschlangenelement in Ihrem Visual Studio Code Terminal verarbeitet wird.
Herstellen einer Verbindung mithilfe des Dienstconnectors
Im letzten Schritt haben Sie das Funktionsprojekt lokal überprüft. Als Nächstes erfahren Sie, wie Sie die Verbindung zwischen der Azure-Funktion und der Azure Storage-Warteschlange konfigurieren. Sobald Ihre Funktion in der Cloud bereitgestellt ist, bietet diese Verbindung Ihrer Funktion die Möglichkeit, Trigger aus der Warteschlange des Storage zu empfangen.
- Öffnen Sie die
function.jsonDatei in Ihrem lokalen Projekt, und ändern Sie den Wert derconnectionEigenschaftbindingsso, dass sie seinAZURE_STORAGEQUEUE_CONNECTIONSTRINGsoll. - Führen Sie den folgenden Azure CLI-Befehl aus, um eine Verbindung zwischen Ihrer Azure-Funktion und Ihrem Azure Storage-Konto zu erstellen.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
-
--source-idFormat:/subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site} -
--target-idFormat:/subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default
Dieser Schritt hat eine Dienstconnectorressource erstellt, die eine AZURE_STORAGEQUEUE_CONNECTIONSTRING-Variable in den App-Einstellungen der Funktion konfiguriert. Die Funktionsbindungslaufzeit verwendet sie zum Herstellen einer Verbindung mit dem Speicher, sodass die Funktion Trigger aus der Speicherwarteschlange akzeptieren kann. Weiter Informationen finden Sie unter wie der Dienstconnector Azure Functions bei der Verbindung mit Diensten unterstützt.
Bereitstellen Ihrer Funktion in Azure
Sie können jetzt Ihre Funktion in Azure bereitstellen und überprüfen, ob der Warteschlangentrigger funktioniert.
- Dieses Azure Functions-Tutorial unterstützt Sie dabei, Ihre Funktion in Azure bereitzustellen.
- Öffnen Sie den Bereich "Speicherwarteschlange" im Azure-Portal. Wählen Sie "Nachricht hinzufügen" aus, und geben Sie eine Testnachricht an. Sie sollten sehen, dass die Funktion getriggert und als Warteschlangenelement in Ihren Funktionsprotokollen verarbeitet wird.
Problembehandlung
Wenn irgendwelche Fehler wie No such host is known (<account-name>.queue.core.windows.net:443) im Zusammenhang mit dem Speicherhost auftreten, prüfen Sie, ob die Verbindungszeichenfolge, die Sie für die Verbindung mit Azure Storage verwenden, den Warteschlangenendpunkt enthält. Wenn dies nicht der Fall ist, gehen Sie zu Azure Storage im Azure-Portal, kopieren Sie die Verbindungszeichenfolge aus dem Bereich Access keys und ersetzen Sie die Werte.
Wenn dieser Fehler beim lokalen Starten des Projekts auftritt, überprüfen Sie die Datei local.settings.json.
Wenn dieser Fehler beim Bereitstellen Ihrer Funktion in der Cloud auftritt (in diesem Fall schlägt die Funktionsbereitstellung in der Regel bei Syncing triggers fehl), überprüfen Sie die App-Einstellungen Ihrer Funktion.
Bereinigen von Ressourcen
Wenn Sie dieses Projekt nicht weiterverwenden möchten, löschen Sie die zuvor erstellte Funktions-App-Ressource.
- Öffnen Sie im Azure-Portal die Funktions-App-Ressource, und wählen Sie Löschen aus.
- Geben Sie den Namen der App ein, und wählen Sie zum Bestätigen Löschen.
Nächste Schritte
Lesen Sie die folgenden Artikel, um mehr über Service Connector-Konzepte zu erfahren und wie Azure Functions die Verbindung zu Diensten unterstützt.