Verwenden einer Funktion als Ereignishandler für Event Grid-Ereignisse
Ein Ereignishandler ist der Ort, an den das Ereignis gesendet wird. Der Handler ergreift zur Verarbeitung des Ereignisses eine Maßnahme. Mehrere Azure-Dienste werden automatisch für die Behandlung von Ereignissen konfiguriert. Azure Functions ist einer dieser Dienste. Beispielsweise kann Azure Event Grid Azure Functions als Antibeschädigungsschicht verwenden, um Ereignisse zu transformieren oder zu überprüfen, bevor sie an nachgeschaltete Systeme weitergeleitet werden.
Um eine Funktion in Azure als Handler für Ereignisse zu verwenden, verfolgen Sie einen der folgenden Ansätze:
- Verwenden eines Event Grid-Triggers. Angeben von Azure-Funktion als Endpunkttyp. Geben Sie dann die Funktions-App und die Funktion für die Verarbeitung der Ereignisse an.
- Verwenden eines HTTP-Triggers. Geben Sie Webhook als Endpunkttyp an. Geben Sie dann die URL für die Funktion an, die die Ereignisse verarbeitet.
Es wird empfohlen, den ersten Ansatz (Event Grid-Trigger) zu verwenden, da er im Vergleich zum zweiten Ansatz folgende Vorteile bietet:
- Event Grid überprüft Event Grid-Trigger automatisch. Bei generischen HTTP-Triggern müssen Sie die Überprüfungsantwort selbst implementieren.
- Event Grid passt die Rate, mit der Ereignisse übermittelt werden, automatisch an eine Funktion an, die von einem Event Grid-Ereignis ausgelöst wird, basierend auf der erkannten Rate, mit der die Funktion Ereignisse verarbeiten kann. Diese Ratenübereinstimmungsfunktion verhindert Übermittlungsfehler, die sich aus der Unfähigkeit einer Funktion ergeben, Ereignisse zu verarbeiten, da die Ereignisverarbeitungsrate der Funktion im Laufe der Zeit variieren kann. Um die Effizienz bei hohem Durchsatz zu verbessern, aktivieren Sie Batchverarbeitung für das Ereignisabonnement. Weitere Informationen finden Sie unter Aktivieren von Batchverarbeitung.
Hinweis
- Wenn Sie ein Ereignisabonnement verwenden, um einen Event Grid-Trigger mithilfe einer Azure-Funktion hinzufügen, ruft Event Grid den Zugriffsschlüssel für die Zielfunktion mithilfe der Anmeldeinformationen des Event Grid-Dienstprinzipals ab. Die Berechtigungen werden Event Grid erteilt, wenn Sie den Event Grid-Ressourcenanbieter im jeweiligen Azure-Abonnement registrieren.
- Wenn Sie Ihre Azure-Funktion mit einer Microsoft Entra ID-App schützen, müssen Sie den generischen Webhook-Ansatz mit dem HTTP-Trigger wählen. Verwenden Sie den Azure-Funktionsendpunkt als Webhook-URL beim Hinzufügen des Abonnements.
Tutorials
Titel | BESCHREIBUNG |
---|---|
Schnellstart: Verarbeiten von Ereignissen mit Funktionen | Beschreibt das Senden eines benutzerdefinierten Ereignisses an eine Funktion, damit dieses verarbeitet wird |
Tutorial: Streamen von Big Data in ein Data Warehouse | Wenn Event Hubs eine Capture-Datei erstellt, sendet Event Grid ein Ereignis an eine Funktions-App. Die App ruft die Capture-Datei ab und migriert Daten zu einem Data Warehouse. |
Tutorial: Beispiele für die Integration von Azure Service Bus in Azure Event Grid | Event Grid sendet Nachrichten von einem Service Bus-Thema an eine Funktions-App und an eine Logik-App. |
REST-Beispiel (für PUT)
{
"properties":
{
"destination":
{
"endpointType": "AzureFunction",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Web/sites/<FUNCTION APP NAME>/functions/<FUNCTION NAME>",
"maxEventsPerBatch": 10,
"preferredBatchSizeInKilobytes": 64
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Aktivieren von Batchverarbeitung
Aktivieren Sie für höheren Durchsatz Batchverarbeitung für das Abonnement. Wenn Sie das Azure-Portal verwenden, können Sie die maximale Anzahl von Ereignissen pro Batch und die bevorzugte Batchgröße in Kilobyte zum Zeitpunkt der Erstellung eines Abonnements oder nach der Erstellung festlegen.
Sie können Batcheinstellungen über das Azure-Portal, mit PowerShell, mit der CLI oder mit einer Resource Manager-Vorlage erstellen.
Azure-Portal
Navigieren Sie zum Zeitpunkt der Erstellung eines Abonnements in der Benutzeroberfläche auf der Seite Ereignisabonnement erstellen zur Registerkarte Erweiterte Funktionen, und legen Sie Werte für Max. Anzahl von Ereignissen pro Batch und Bevorzugte Batchgröße in KB fest.
Sie können diese Werte für ein vorhandenes Abonnement auf der Registerkarte Funktionen der Seite Event Grid-Thema aktualisieren.
Azure Resource Manager-Vorlage
Sie können maxEventsPerBatch und preferredBatchSizeInKilobytes in einer Azure Resource Manager-Vorlage festlegen. Weitere Informationen finden Sie unter Microsoft.EventGrid eventSubscriptions-Vorlagenreferenz.
Azure-Befehlszeilenschnittstelle
Sie können den Befehl az eventgrid event-subscription create
verwenden, um batchbezogene Einstellungen mithilfe der folgenden Parameter zu konfigurieren: --max-events-per-batch
oder --preferred-batch-size-in-kilobytes
.
Azure PowerShell
Sie können das Cmdlet New-AzEventGridSubscription oder Update-AzEventGridSubscription zum Konfigurieren von batchbezogenen Einstellungen mithilfe der folgenden Parameter verwenden: -MaxEventsPerBatch
oder -PreferredBatchSizeInKiloBytes
.
Hinweis
Wenn Sie Event Grid-Trigger verwenden, ruft der Event Grid-Dienst den geheimen Clientschlüssel für die Azure-Zielfunktion ab und verwendet diesen zum Übermitteln von Ereignissen an die Azure-Funktion. Wenn Sie Ihre Azure-Funktion mit einer Microsoft Entra-Anwendung schützen, müssen Sie den Ansatz mit einem generischen Webhook und den HTTP-Trigger verwenden.
Nächste Schritte
Eine Liste der unterstützten Ereignishandler finden Sie im Artikel zu Ereignishandlern.