Utiliser une fonction en tant que gestionnaire d’événements pour des événements Event Grid

Un gestionnaire d’événements désigne l’endroit où l’événement est envoyé. Le gestionnaire effectue une action pour traiter l’événement. Plusieurs services Azure sont automatiquement configurés pour gérer des événements, et Azure Functions est l’un d’eux.

Dans Azure, pour utiliser une fonction en tant que gestionnaire d’événements, suivez l’une des approches suivantes :

  • Utilisez un déclencheur Event Grid. Spécifiez Fonction Azure pour le type de point de terminaison. Ensuite, spécifiez l’application de fonction et la fonction qui gérera les événements.
  • Utilisez un déclencheur HTTP. Spécifiez Webhook comme Type de point de terminaison. Ensuite, spécifiez l’URL de la fonction qui gérera les événements.

Nous vous recommandons d’utiliser la première approche (déclencheur Event Grid), car elle présente les avantages suivants par rapport à la deuxième approche :

  • Event Grid valide automatiquement les déclencheurs Event Grid. Dans le cas des déclencheurs HTTP génériques, vous devez implémenter vous-même la réponse de validation.
  • Event Grid ajuste automatiquement la vitesse à laquelle les événements sont transmis à une fonction déclenchée par un événement Event Grid en fonction de la vitesse perçue à laquelle la fonction peut traiter les événements. Cette fonctionnalité de correspondance de vitesse permet d’éviter les erreurs de remise qui résultent de l’incapacité d’une fonction à traiter les événements, car la vitesse de traitement des événements de la fonction peut varier dans le temps. Pour améliorer l’efficacité à un débit élevé, activez le traitement par lot sur l’abonnement aux événements. Pour plus d’informations, consultez Activer le traitement par lot.

Remarque

  • Lorsque vous ajoutez un abonnement aux évènements à l’aide d’une fonction Azure, Event Grid extrait la clé d’accès de la fonction cible à l’aide des informations d’identification du principal de service Event Grid. Les autorisations sont accordées à Event Grid lorsque vous inscrivez le fournisseur de ressources Event Grid dans son abonnement Azure.
  • Si vous protégez votre fonction Azure avec une application Microsoft Entra ID, vous devez adopter l’approche de webhook générique et utiliser le déclencheur HTTP. Utilisez le point de terminaison de fonction Azure comme URL de webhook lors de l’ajout de l’abonnement.

Tutoriels

Intitulé Description
Démarrage rapide : Gérer les événements avec une fonction Envoie un événement personnalisé à une fonction pour traitement.
Tutoriel : Automatiser le redimensionnement des images chargées à l’aide d’Event Grid Les utilisateurs chargent les images par le biais de l’application web sur le compte de stockage. Quand un objet blob de stockage est créé, Event Grid envoie un événement à l’application de fonction, qui redimensionne l’image chargée.
Tutoriel : Diffuser en continu des Big Data dans un entrepôt de données Quand Event Hubs crée un fichier Capture, Event Grid envoie un événement à une application de fonction. L’application récupère le fichier Capture et migre les données vers un entrepôt de données.
Tutoriel : Exemples d’intégration d’Azure Service Bus et d’Azure Event Grid Event Grid envoie des messages à partir de la rubrique Service Bus à une application de fonction et à une application logique.

Exemple REST (pour 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"
	}
}

Activer le traitement par lot

Pour obtenir un débit plus élevé, activez le traitement par lot sur l’abonnement. Si vous utilisez le portail Azure, vous pouvez définir le nombre maximal d’événements par lot et la taille de lot par défaut en kilo-octets au moment de la création d’un abonnement ou après sa création.

Pour configurer les paramètres de lot, vous pouvez utiliser le portail Azure, PowerShell, CLI ou le modèle Resource Manager.

Portail Azure

Lors de la création d’un abonnement dans l’interface utilisateur, sur la page Créer un abonnement aux événements, basculez sur l’onglet Fonctionnalités avancées et définissez des valeurs pour Nb max. d’événements par lot et Taille de lot par défaut en kilo-octets.

Enable batching at the time of creating a subscription

Vous pouvez mettre à jour ces valeurs pour un abonnement existant sous l’onglet Fonctionnalités de la page Rubrique Event Grid.

Enable batching after creation

Modèle Azure Resource Manager

Vous pouvez définir maxEventsPerBatch et preferredBatchSizeInKilobytes dans un modèle Resource Manager. Pour plus d’informations, consultez Référence sur le modèle Microsoft.EventGrid eventSubscriptions.

Azure CLI

Vous pouvez utiliser la commande az eventgrid event-subscription create pour configurer les paramètres de traitement par lot en utilisant les paramètres suivants : --max-events-per-batch ou --preferred-batch-size-in-kilobytes.

Azure PowerShell

Vous pouvez utiliser la cmdlet New-AzEventGridSubscription ou Update-AzEventGridSubscription pour configurer les paramètres de traitement par lot en utilisant les paramètres suivants : -MaxEventsPerBatch ou -PreferredBatchSizeInKiloBytes.

Notes

Lorsque vous utilisez le déclencheur Event Grid, le service Event Grid extrait la clé secrète client pour la fonction Azure cible et s’en sert pour remettre les événements à la fonction Azure. Si vous protégez votre fonction Azure avec une application Microsoft Entra, vous devez adopter l’approche de webhook générique et utiliser le déclencheur HTTP.

Étapes suivantes

Pour obtenir la liste des gestionnaires d’événements pris en charge, consultez l’article Gestionnaires d’événements.