Tutoriel : acheminer les messages MQTT dans Azure Event Grid vers Azure Functions à l’aide de rubriques personnalisées - portail Azure
Dans ce tutoriel, vous allez apprendre à router les messages MQTT reçus par un espace de noms Azure Event Grid vers une fonction Azure via une rubrique personnalisée Event Grid, en procédant comme suit :
Si vous n’en avez pas, vous pouvez demander un essai gratuit.
Créer une fonction Azure en utilisant le déclencheur Event Grid
Suivez les instructions de Créer une fonction Azure en utilisant Visual Studio Code, mais utilisez le Déclencheur Azure Event Grid au lieu d’utiliser le Déclencheur HTTP. Vous devez obtenir un code similaire à l’exemple suivant :
using System;
using Azure.Messaging;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
namespace Company.Function
{
public class MyEventGridTriggerFunc
{
private readonly ILogger<MyEventGridTriggerFunc> _logger;
public MyEventGridTriggerFunc(ILogger<MyEventGridTriggerFunc> logger)
{
_logger = logger;
}
[Function(nameof(MyEventGridTriggerFunc))]
public void Run([EventGridTrigger] CloudEvent cloudEvent)
{
_logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
}
}
}
Vous utilisez cette fonction Azure comme gestionnaire d’évènements pour l’abonnement d’une rubrique, plus loin dans ce tutoriel.
Remarque
- Créer l’ensemble des ressources dans la même région.
- Ce tutoriel a été testé avec une fonction Azure qui utilise la pile d’exécution .NET 8.0 (isolé).
Créer une rubrique Event Grid (rubrique personnalisée)
Créer une rubrique Event Grid Consultez Créer une rubrique personnalisée depuis le portail. Lorsque vous créez la rubrique Event Grid, sous l’onglet Avancé, pour le schéma d’événement, sélectionnez Cloud Event Schema v1.0.
Remarque
Utilisez le schéma d’évènement cloud partout dans ce tutoriel.
Ajouter un abonnement à la rubrique en utilisant la fonction
Dans cette étape, vous créez un abonnement à la rubrique Event Grid à l’aide de la fonction Azure que vous avez créée précédemment.
Dans la page de rubrique Event Grid, sélectionnez Abonnements dans la barre de navigation de gauche.
Dans la page Créer un abonnement aux événements, effectuez les étapes suivantes :
Dans la page Sélectionner une fonction Azure, effectuez les étapes suivantes :
Pour Abonnement, sélectionnez votre abonnement Azure.
Pour Groupe de ressources, sélectionnez le groupe de ressources qui a votre fonction Azure.
Pour Application de fonction, sélectionnez l’application de fonction qui a la fonction.
Pour Emplacement, sélectionnez Production.
Pour Fonction, sélectionnez votre fonction Azure.
Ensuite, sélectionnez Confirmer la sélection en bas de la page.
Dans la page Créer un abonnement aux événements, sélectionnez Créer.
Dans la page Abonnements aux événements, vous devez voir l’abonnement que vous avez créé.
Créer des liaisons d’espace de noms, de clients, d’espaces de rubrique et d’autorisation
Suivez les instructions de Démarrage rapide : publier et s’abonner aux messages MQTT en utilisant un espace de noms Event Grid avec le portail Azure pour :
- Créez un espace de noms Event Grid.
- Créer deux clients.
- Créer un espace de rubrique.
- Créez des liaisons d’autorisations éditeur et abonné.
- Testez l’utilisation de l’application MQTTX pour confirmer que les clients sont en mesure d’envoyer et de recevoir des messages.
Activer une identité managée pour l’espace de noms
Dans cette section, vous allez activer l’identité managée affectée par le système pour l’espace de noms Event Grid. Ensuite, accordez à l’identité l’autorisation d’envoyer à la rubrique personnalisée Event Grid que vous avez créée précédemment afin qu’elle puisse acheminer le message vers la rubrique personnalisée. Pour ce faire, ajoutez l’identité managée au rôle Expéditeur de données Event Grid dans la rubrique personnalisée.
Sur la page Espace de noms Event Grid, sélectionnez Identité sur le menu de navigation gauche.
Accédez à la rubrique Event Grid de votre rubrique personnalisée Event Grid.
Sélectionnez Contrôle d’accès (IAM) dans le menu de navigation de gauche.
Dans la page Contrôle d’accès, sélectionnez Ajouter, puis Ajouter une attribution de rôle.
Dans la page Rôle de l’Assistant Ajouter une attribution de rôle, sélectionnez rôle Expéditeur de données Event Grid, puis sélectionnez Suivant en bas de la page.
Dans la page Membres de l’Assistant Ajouter une attribution de rôle, sélectionnez Identité managée, puis sélectionnez Sélectionner des membres.
Dans la page Sélectionner des identités managées, procédez comme suit :
Dans la page Ajouter une attribution de rôle, sélectionnez Suivant en bas de la page.
Dans la page Vérifier + affecter, révisez les paramètres, puis sélectionnez Vérifier + affecter en bas de la page.
Configurer le routage des messages vers la fonction Azure via une rubrique personnalisée
Dans cette étape, vous allez configurer le routage de l’espace de noms Event Grid afin que les messages qu’il reçoit soient routés vers la rubrique personnalisée que vous avez créée.
Sur la page Espace de noms Event Grid, sélectionnez Routage dans la barre de navigation de gauche.
Dans la page Routage, sélectionnez Activer le routage.
Pour Type de rubrique, sélectionnez Rubrique personnalisée.
Pour Rubrique, sélectionnez la rubrique personnalisée que vous avez créée pour ce didacticiel.
Pour Identité managée pour la remise, sélectionnez Affectée par le système.
Sélectionnez Appliquer en bas de la page.
Envoyer des messages MQTT de test en utilisant MQTTX
Envoyez des messages MQTT de test à l’espace de noms et vérifiez que la fonction les reçoit.
Suivez les instructions de l’article Publier et s’abonner à des messages en utilisant l’application MQTTX pour envoyer quelques messages de test à l’espace de noms Event Grid.
Voici le flux des évènements ou des messages :
MQTTX envoie des messages à l’espace de la rubrique de l’espace de noms Event Grid.
Les messages sont routés vers la rubrique personnalisée que vous avez configurée.
Les messages sont transférés à l’abonnement à l’évènement, qui est la fonction Azure.
Utilisez la fonctionnalité de journalisation pour vérifier que la fonction a reçu l’évènement.
Étape suivante
Consultez des exemples de code dans ce référentiel GitHub.