Azure Event Grid-Bindungen für Azure Functions
In dieser Referenz wird gezeigt, wie Sie mithilfe von Azure Functions-Triggern und -Bindungen eine Verbindung mit Azure Event Grid herstellen.
Event Grid ist ein Azure-Dienst, mit dem HTTP-Anforderungen gesendet werden, um Sie über Ereignisse zu benachrichtigen, die in Herausgebern erfolgen. Ein Herausgeber ist der Dienst oder die Ressource, von dem bzw. der das Ereignis stammt. Ein Azure Blob Storage-Konto ist beispielsweise ein Herausgeber, der Upload oder die Löschung eines Blobs ist dagegen ein Ereignis. Einige Azure-Dienste bieten eine integrierte Unterstützung zum Veröffentlichen von Ereignissen in Event Grid.
Ereignishandler empfangen und verarbeiten Ereignisse. Azure Functions ist einer von mehreren Azure-Diensten, die eine integrierte Unterstützung für die Behandlung von Event Grid-Ereignissen bieten. Functions stellt einen Event Grid-Trigger bereit, der eine Funktion aufruft, wenn ein Ereignis von Event Grid empfangen wird. Eine ähnliche Ausgabebindung kann verwendet werden, um Ereignisse von Ihrer Funktion an ein benutzerdefiniertes Event Grid-Thema zu senden.
Für Event Grid-Ereignisse kann auch ein HTTP-Trigger verwendet werden. Weitere Informationen finden Sie unter Empfangen von Ereignissen an einem HTTP-Endpunkt. Es wird empfohlen, den Event Grid-Trigger dem HTTP-Trigger vorzuziehen.
Aktion | type |
---|---|
Ausführen einer Funktion, wenn ein Event Grid-Ereignis ausgegeben wird | Trigger |
Senden eines Event Grid-Ereignisses | Ausgabebindung |
Steuern des zurückgegebenen HTTP-Statuscodes | HTTP-Endpunkt |
Installieren der Erweiterung
Das NuGet-Erweiterungspaket, das Sie installieren, hängt vom C#-Modus ab, den Sie in Ihrer Funktions-App verwenden:
Funktionen werden in einem isolierten C#-Workerprozess ausgeführt. Weitere Informationen finden Sie im Leitfaden zum Ausführen von Azure Functions (C#) in einem isolierten Workerprozess.
Die Funktionalität der Erweiterung ist abhängig von der Erweiterungsversion unterschiedlich:
Fügen Sie ihrem Projekt die Erweiterung hinzu, indem Sie das NuGet-Paket, Version 3.x, installieren.
Installieren des Pakets
Die Event Grid-Erweiterung ist Teil eines Erweiterungspakets, das in der Projektdatei „host.json“ angegeben ist. Möglicherweise müssen Sie dieses Paket ändern, um die Version der Event Grid-Bindung zu ändern, oder wenn Pakete noch nicht installiert sind. Weitere Informationen finden Sie unter Erweiterungspakete.
Sie können diese Version der Erweiterung aus dem Erweiterungspaket v3 hinzufügen, indem Sie die folgende Konfiguration in der Datei host.json
hinzufügen oder ersetzen:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[3.3.0, 4.0.0)"
}
}
Weitere Informationen finden Sie unter Aktualisierung Ihrer Erweiterungen.
Bindungstypen
Die für .NET unterstützten Bindungstypen hängen sowohl von der Erweiterungsversion als auch von dem C#-Ausführungsmodus ab, der einer der folgenden sein kann:
Eine Klassenbibliothek in einem isolierten Workerprozess ist eine kompilierte C#-Funktion, die in einem von der Runtime isolierten Prozess ausgeführt wird.
Wählen Sie eine Version aus, um für den Modus und die Version Details zum Bindungstyp anzuzeigen.
Der isolierte Workerprozess unterstützt Parametertypen gemäß den folgenden Tabellen. Unterstützung für die Bindung an Stream
und an Typen aus Azure.Messaging befindet sich in der Vorschauphase.
Event Grid-Trigger
Wenn die Funktion ein einzelnes Ereignis verarbeiten soll, kann der Event Grid-Trigger an die folgenden Typen gebunden werden:
type | BESCHREIBUNG |
---|---|
Serialisierbare JSON-Typen | Functions versucht, die JSON-Daten des Ereignisses in einen POCO-Typ (Plain-Old CLR Object) zu deserialisieren. |
string |
Das Ereignis als Zeichenfolge. |
BinaryData1 | Die Bytes der Ereignisnachricht. |
CloudEvent1 | Das Ereignisobjekt. Verwenden Sie dieses Objekt, wenn Event Grid für die Übermittlung mithilfe des CloudEvents-Schemas konfiguriert ist. |
EventGridEvent1 | Das Ereignisobjekt. Verwenden Sie dieses Objekt, wenn Event Grid für die Übermittlung mithilfe des Event Grid-Schemas konfiguriert ist. |
Wenn die Funktion einen Ereignisbatch verarbeiten soll, kann der Event Grid-Trigger an die folgenden Typen gebunden werden:
type | BESCHREIBUNG |
---|---|
CloudEvent[] 1,EventGridEvent[] 1,string[] ,BinaryData[] 1 |
Ein Array von Ereignissen aus dem Batch. Jeder Eintrag stellt ein Ereignis dar. |
1 Um diese Typen zu verwenden, müssen Sie auf Microsoft.Azure.Functions.Worker.Extensions.EventGrid 3.3.0 oder höher und die gemeinsamen Abhängigkeiten für SDK-Typbindungen verweisen.
Event Grid-Ausgabebindung
Wenn die Funktion ein einzelnes Ereignis schreiben soll, kann die Event Grid-Ausgabebindung an die folgenden Typen gebunden werden:
type | BESCHREIBUNG |
---|---|
string |
Das Ereignis als Zeichenfolge. |
byte[] |
Die Bytes der Ereignisnachricht. |
Serialisierbare JSON-Typen | Ein Objekt, das ein JSON-Ereignis darstellt. Functions versucht, einen POCO-Typ (Plain-Old CLR Object) in JSON-Daten zu serialisieren. |
Wenn die Funktion mehrere Ereignisse schreiben soll, kann die Event Grid-Ausgabebindung an die folgenden Typen gebunden werden:
type | BESCHREIBUNG |
---|---|
T[] , wobei T einer der einzelnen Ereignistypen ist |
Ein Array, das mehrere Ereignisse enthält. Jeder Eintrag stellt ein Ereignis dar. |
Erstellen und verwenden Sie für andere Ausgabeszenarien einen EventGridPublisherClient mit anderen Typen von Azure.Messaging.EventGrid direkt. Ein Beispiel für die Verwendung der Abhängigkeitsinjektion zum Erstellen eines Clienttyps aus dem Azure SDK finden Sie unter Registrieren von Azure-Clients .
Einstellungen für „host.json“
Der Event Grid-Trigger verwendet eine Webhook-HTTP-Anforderung, die mit den gleichen host.json-Einstellungen wie der HTTP-Trigger konfiguriert werden kann.
Nächste Schritte
- Wenn Sie Fragen haben, können Sie hier ein Problem an das Team melden.
- Event Grid-Trigger
- Event Grid-Ausgabebindung
- Ausführen einer Funktion, wenn ein Event Grid-Ereignis ausgegeben wird
- Versenden eines Event Grid-Ereignisses