Een functie gebruiken als gebeurtenis-handler voor Event Grid-gebeurtenissen

Een event handler is de bestemming waar Azure Event Grid een event naartoe stuurt voor verwerking. Azure configureert automatisch meerdere services om gebeurtenissen af te handelen, en Azure Functions is daar één van.

Wanneer je een functie als event handler gebruikt, voer je aangepaste code uit als reactie op elk event zonder servers te provisionen of te beheren. Event Grid kan bijvoorbeeld een functie gebruiken als anti-corruptielaag die gebeurtenissen transformeert of valideert voordat deze wordt doorgestuurd naar downstreamsystemen.

Dit artikel beschrijft de twee manieren om een functie als event handler te gebruiken en legt uit welke benadering te gebruiken moet zijn.

Als u een functie in Azure wilt gebruiken als handler voor gebeurtenissen, volgt u een van de volgende methoden:

  • Gebruik een Event Grid-trigger. Geef De Azure-functie op als het eindpunttype. Specificeer vervolgens de functie-app en de functie die gebeurtenissen afhandelt.
  • Gebruik een HTTP-trigger. Geef Webhook op als het eindpunttype. Geef vervolgens de URL aan voor de functie die gebeurtenissen afhandelt.

Gebruik de eerste aanpak (Event Grid trigger). Het heeft de volgende voordelen ten opzichte van de tweede benadering:

  • Event Grid valideert automatisch Event Grid-triggers. Met algemene HTTP-triggers moet u het validatieantwoord zelf implementeren.
  • Event Grid past automatisch de snelheid aan waarmee het gebeurtenissen aflevert aan een functie die een Event Grid-gebeurtenis activeert, op basis van de waargenomen snelheid waarmee de functie gebeurtenissen kan verwerken. Deze rate-match-functie voorkomt leveringsfouten die voortkomen uit het onvermogen van een functie om gebeurtenissen te verwerken, omdat de verwerkingssnelheid van de functie in de tijd kan variëren. Om de efficiëntie bij hoge doorvoer te verbeteren, schakelt u batchverwerking in op het gebeurtenisabonnement. Zie Batchverwerking inschakelen voor meer informatie.

Notitie

  • Wanneer je een Event Grid-trigger gebruikt om een eventabonnement toe te voegen via een Azure-functie, haalt Event Grid de toegangssleutel voor de doelfunctie op via de inloggegevens van de Event Grid-serviceprincipal. Event Grid ontvangt de rechten wanneer je de Event Grid-resourceprovider registreert in je Azure-abonnement.
  • Als je je Azure-functie beschermt met een Microsoft Entra ID-applicatie, moet je de generieke webhook-aanpak gebruiken door de HTTP-trigger te gebruiken. Gebruik het Azure-functie-eindpunt als een webhook-URL bij het toevoegen van het abonnement.

Handleidingen

Titel Beschrijving
Quickstart: Gebeurtenissen verwerken met functie Verzendt een aangepaste gebeurtenis naar een functie voor verwerking.
Zelfstudie: big data streamen naar een datawarehouse Wanneer een Event Hub een Capture-bestand maakt, verzendt Event Grid een gebeurtenis naar een functie-app. De app haalt het Capture-bestand op en migreert gegevens naar een datawarehouse.
Zelfstudie: Azure Service Bus naar Azure Event Grid-integratievoorbeelden Event Grid stuurt berichten van een Service Bus-onderwerp naar een functie-app en een logica-app.

REST API-voorbeeld

Het volgende voorbeeld toont het verzoeklichaam voor een PUT-operatie dat een gebeurtenisabonnement aanmaakt met een Azure-functie als gebeurtenishandler. Het stelt de resource-ID van de doelfunctie in en maakt batching mogelijk.

{
    "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"
    }
}

Batchverwerking inschakelen

Voor hogere doorvoersnelheid schakel batching in op het abonnement. Als je het Azure-portaal gebruikt, kun je het maximale aantal gebeurtenissen per batch en de gewenste batchgrootte in kilobytes instellen wanneer je een abonnement aanmaakt of daarna.

Configureer batchinstellingen door gebruik te maken van het Azure-portaal, PowerShell, CLI of een Resource Manager-sjabloon.

Azure Portal

Wanneer je een abonnement aanmaakt in het portaal, schakel op de pagina Evenementenabonnement maken over naar het tabblad Geavanceerde Functies en stel waarden in voor Maximale gebeurtenissen per batch en Voorkeursbatchgrootte in kilobytes.

Screenshot van het tabblad Geavanceerde Functies op de pagina Evenement Aanmaken Abonnement met de batchinstellingen.

Werk deze waarden bij voor een bestaand abonnement op het tabblad Functies van de Event Grid Topic-pagina .

Screenshot van het tabblad Functies op de pagina Event Grid Topic met batchinstellingen voor een bestaand abonnement.

Azure Resource Manager-sjabloon

Stel maxEventsPerBatch en preferredBatchSizeInKilobytes in een Azure Resource Manager-sjabloon. Zie de referentie voor de Microsoft.EventGrid eventSubscriptions-sjabloon voor meer informatie.

Azure-CLI

Gebruik het az eventgrid event-subscription create commando om batch-gerelateerde instellingen te configureren met de volgende parameters: --max-events-per-batch of --preferred-batch-size-in-kilobytes.

Azure PowerShell

Gebruik de cmdlet New-AzEventGridSubscription of Update-AzEventGridSubscription om batch-gerelateerde instellingen te configureren. Gebruik de -MaxEventsPerBatch of-parameter -PreferredBatchSizeInKiloBytes om je voorkeuren in te stellen.

Voor een lijst van ondersteunde event handlers, zie het artikel Event handlers .