Delen via


Azure Event Grid-bindingen voor Azure Functions

In deze verwijzing ziet u hoe u verbinding maakt met Azure Event Grid met behulp van Azure Functions-triggers en -bindingen.

Event Grid is een Azure-service die HTTP-aanvragen verzendt om u op de hoogte te stellen van gebeurtenissen die plaatsvinden in uitgevers. Een uitgever is de service of resource die afkomstig is van de gebeurtenis. Een Azure Blob Storage-account is bijvoorbeeld een uitgever en een blobupload of -verwijdering is een gebeurtenis. Sommige Azure-services hebben ingebouwde ondersteuning voor het publiceren van gebeurtenissen naar Event Grid.

Gebeurtenis-handlers ontvangen en verwerken gebeurtenissen. Azure Functions is een van de verschillende Azure-services die ingebouwde ondersteuning bieden voor het verwerken van Event Grid-gebeurtenissen. Functions biedt een Event Grid-trigger die een functie aanroept wanneer een gebeurtenis wordt ontvangen van Event Grid. Een vergelijkbare uitvoerbinding kan worden gebruikt om gebeurtenissen van uw functie te verzenden naar een aangepast Event Grid-onderwerp.

U kunt ook een HTTP-trigger gebruiken om Event Grid-gebeurtenissen te verwerken. Zie Gebeurtenissen ontvangen naar een HTTP-eindpunt voor meer informatie. U wordt aangeraden de Event Grid-trigger via HTTP-trigger te gebruiken.

Actie Type
Een functie uitvoeren wanneer een Event Grid-gebeurtenis wordt verzonden Trigger
Een Event Grid-gebeurtenis verzenden Uitvoerbinding
De geretourneerde HTTP-statuscode beheren HTTP-eindpunt

De extensie installeren

Het NuGet-extensiepakket dat u installeert, is afhankelijk van de C#-modus die u gebruikt in uw functie-app:

Functies worden uitgevoerd in een geïsoleerd C#-werkproces. Zie De handleiding voor het uitvoeren van C# Azure Functions in een geïsoleerd werkproces voor meer informatie.

De functionaliteit van de extensie varieert afhankelijk van de extensieversie:

Voeg de extensie toe aan uw project door het NuGet-pakket, versie 3.x, te installeren.

Bundel installeren

De Event Grid-extensie maakt deel uit van een extensiebundel, die is opgegeven in uw host.json projectbestand. Mogelijk moet u deze bundel wijzigen om de versie van de Event Grid-binding te wijzigen of als bundels nog niet zijn geïnstalleerd. Zie uitbreidingsbundel voor meer informatie.

U kunt deze versie van de extensie toevoegen vanuit de extensiebundel v3 door de volgende configuratie in uw host.json bestand toe te voegen of te vervangen:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

Zie Uw extensies bijwerken voor meer informatie.

Bindingstypen

De bindingstypen die worden ondersteund voor .NET zijn afhankelijk van zowel de extensieversie als de C#-uitvoeringsmodus. Dit kan een van de volgende zijn:

Een geïsoleerde werkprocesklassebibliotheek gecompileerde C#-functie wordt uitgevoerd in een proces dat is geïsoleerd van de runtime.

Kies een versie om de details van het bindingstype voor de modus en versie weer te geven.

Het geïsoleerde werkproces ondersteunt parametertypen volgens de onderstaande tabellen. Ondersteuning voor binding met Streamen typen van Azure.Messaging is in preview.

Event Grid-trigger

Wanneer u wilt dat de functie één gebeurtenis verwerkt, kan de Event Grid-trigger worden gekoppeld aan de volgende typen:

Type Description
JSON serialiseerbare typen Functions probeert de JSON-gegevens van de gebeurtenis te deserialiseren in een niet-oud CLR-objecttype (POCO).
string De gebeurtenis als een tekenreeks.
BinaryData1 De bytes van het gebeurtenisbericht.
CloudEvent1 Het gebeurtenisobject. Gebruik deze functie wanneer Event Grid is geconfigureerd voor levering met behulp van het CloudEvents-schema.
EventGridEvent1 Het gebeurtenisobject. Gebruik deze functie wanneer Event Grid is geconfigureerd voor levering met behulp van het Event Grid-schema.

Wanneer u wilt dat de functie een batch gebeurtenissen verwerkt, kan de Event Grid-trigger worden gekoppeld aan de volgende typen:

Type Description
CloudEvent[]1,
EventGridEvent[]1,
string[],
BinaryData[]1
Een matrix met gebeurtenissen uit de batch. Elke vermelding vertegenwoordigt één gebeurtenis.

1 Als u deze typen wilt gebruiken, moet u verwijzen naar Microsoft.Azure.Functions.Worker.Extensions.EventGrid 3.3.0 of hoger en de algemene afhankelijkheden voor SDK-typebindingen.

Event Grid-uitvoerbinding

Wanneer u wilt dat de functie één gebeurtenis schrijft, kan de Event Grid-uitvoerbinding worden gekoppeld aan de volgende typen:

Type Description
string De gebeurtenis als een tekenreeks.
byte[] De bytes van het gebeurtenisbericht.
JSON serialiseerbare typen Een object dat een JSON-gebeurtenis vertegenwoordigt. Functions probeert een eenvoudig oud CLR-objecttype (POCO) te serialiseren in JSON-gegevens.

Wanneer u wilt dat de functie meerdere gebeurtenissen schrijft, kan de Event Grid-uitvoerbinding worden gekoppeld aan de volgende typen:

Type Description
T[] waarbij T een van de gebeurtenistypen voor één gebeurtenis is Een matrix met meerdere gebeurtenissen. Elke vermelding vertegenwoordigt één gebeurtenis.

Voor andere uitvoerscenario's maakt en gebruikt u een EventGridPublisherClient met andere typen rechtstreeks vanuit Azure.Messaging.EventGrid . Zie Azure-clients registreren voor een voorbeeld van het gebruik van afhankelijkheidsinjectie om een clienttype te maken op basis van de Azure SDK.

host.json-instellingen

De Event Grid-trigger maakt gebruik van een WEBhook HTTP-aanvraag, die kan worden geconfigureerd met dezelfde host.json instellingen als de HTTP-trigger.

Volgende stappen