Liaisons Azure Event Grid pour Azure Functions

Cette référence montre comment se connecter à Azure Event Grid à l’aide de déclencheurs et de liaisons Azure Functions.

Event Grid est un service Azure qui envoie des requêtes HTTP de notification au sujet des événements qui surviennent dans les éditeurs. Un éditeur est le service ou la ressource qui est à l’origine de l’événement. Par exemple, un compte de Stockage Blob Azure est un éditeur, et un chargement ou une suppression d’objet blob un événement. Certains services Azure intègrent la prise en charge de la publication d’événements sur Event Grid.

Les gestionnaires d’événements reçoivent et traitent les événements. Azure Functions est l’un des nombreux services Azure qui intègrent la prise en charge de la gestion des événements Event Grid. Fonctions fournit un déclencheur Event Grid, qui appelle une fonction lors de la réception d’un événement en provenance d’Event Grid. Une liaison de sortie similaire peut être utilisée pour envoyer des événements de votre fonction à une rubrique personnalisée Event Grid.

Vous pouvez également utiliser un déclencheur HTTP pour traiter les événements Event Grid. Pour plus d’informations, consultez Recevoir des événements sur un point de terminaison HTTP. Nous vous recommandons d’utiliser le déclencheur Event Grid sur le déclencheur HTTP.

Action Type
Exécuter une fonction lorsqu’un événement Event Grid est distribué Déclencheur
Envoie un événement Event Grid Liaison de sortie
Contrôler le code d’état HTTP renvoyé Point de terminaison HTTP

Installer l’extension

Le package NuGet de l’extension que vous installez dépend du mode C# que vous utilisez dans votre application de fonction :

Les fonctions s’exécutent dans un processus de travail C# isolé. Pour en savoir plus, consultez Guide pour l’exécution d’Azure Functions C# dans un processus Worker isolé.

La fonctionnalité de l’extension varie en fonction de la version de l’extension :

Ajoutez l’extension à votre projet en installant le package NuGet, version 3.x.

Installer le bundle

L’extension Event Grid fait partie d’un bundle d’extension, qui est spécifié dans votre Fichier projet host.json. Vous devrez peut-être modifier cette offre groupée pour modifier la version de la liaison Event Grid, ou si les offres groupées ne sont pas encore installées. Pour plus d’informations, consultez le bundle d’extensions.

Vous pouvez ajouter cette version de l’extension à partir de l’offre groupée d’extension v3 en ajoutant ou en remplaçant la configuration suivante dans votre fichier host.json :

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

Pour en savoir plus, consultez Mettre à jour vos extensions.

Types de liaisons

Les types de liaisons pris en charge pour .NET dépendent à la fois de la version de l’extension et du mode d’exécution C#, qui peut être l’un des suivants :

Une bibliothèque de classes de processus Worker isolé est une fonction C# compilée exécutée dans un processus Worker isolé du runtime.

Choisissez une version pour afficher les détails des types de liaison du mode et de la version.

Le processus Worker isolé prend en charge les types de paramètres en fonction des tableaux ci-dessous. La prise en charge de la liaison à Stream et aux types à partir d’Azure.Messaging est en préversion.

Déclencheur Event Grid

Quand vous souhaitez que la fonction traite un seul événement, le déclencheur Event Grid peut se lier aux types suivants :

Type Description
Types sérialisables JSON Functions tente de désérialiser les données JSON de l’événement dans un type d’objet POCO (Plain-Old CLR Object).
string Événement sous forme de chaîne.
BinaryData1 Octets du message de l’événement.
CloudEvent1 Objet événement. À utiliser quand Event Grid est configuré pour la livraison à l’aide du schéma CloudEvents.
EventGridEvent1 Objet événement. À utiliser quand Event Grid est configuré pour la livraison à l’aide du schéma Event Grid.

Quand vous souhaitez que la fonction traite un lot d’événements, le déclencheur Event Grid peut se lier aux types suivants :

Type Description
CloudEvent[]1,
EventGridEvent[]1,
string[],
BinaryData[]1
Tableau d’événements du lot. Chaque entrée représente un événement.

1 Pour utiliser ces types, vous devez référencer Microsoft.Azure.Functions.Worker.Extensions.EventGrid 3.3.0 ou version ultérieure et les dépendances courantes pour les liaisons de type kit de développement logiciel (SDK).

Liaison de sortie Event Grid

Quand vous souhaitez que la fonction écrive un seul événement, la liaison de sortie Event Grid peut se lier aux types suivants :

Type Description
string Événement sous forme de chaîne.
byte[] Octets du message de l’événement.
Types sérialisables JSON Objet représentant un événement JSON. Functions tente de sérialiser un objet POCO (Plain-Old CLR Object) en données JSON.

Quand vous souhaitez que la fonction écrive plusieurs événements, la liaison de sortie Event Grid peut se lier aux types suivants :

Type Description
T[]T est l’un des types d’événements uniques Tableau contenant plusieurs événements. Chaque entrée représente un événement.

Pour d’autres scénarios de sortie, créez et utilisez un EventGridPublisherClient avec d’autres types d’Azure.Messaging.EventGrid directement. Consultez Inscrire des clients Azure pour obtenir un exemple d’utilisation de l’injection de dépendances pour créer un type de client à partir du Kit de développement logiciel (SDK) Azure.

Paramètres host.json

Le déclencheur Event Grid utilise une requête HTTP webhook, qui peut être configurée à l’aide des mêmes paramètres host.json que le déclencheur HTTP.

Étapes suivantes