Démarrage rapide : diffuser des données avec Azure Event Hubs et Apache Kafka
Article
Ce guide de démarrage rapide vous montre comment diffuser en continu des données vers et à partir d’Azure Event Hubs à l’aide du protocole Apache Kafka. Vous ne modifierez aucun code dans les exemples d’applications de producteur ou de consommateur Kafka. Il vous suffit de mettre à jour les configurations que les clients utilisent pour pointer vers un espace de noms Event Hubs, qui expose un point de terminaison Kafka. Vous ne générez pas et n’utilisez pas de cluster Kafka par vous-même. Au lieu de cela, vous utilisez l’espace de noms Event Hubs avec le point de terminaison Kafka.
Quand vous créez un espace de noms Event Hubs, le point de terminaison Kafka pour l’espace de noms est automatiquement activé. Vous pouvez diffuser des événements à partir de vos applications qui utilisent le protocole Kafka dans Event Hubs. Suivez les instructions pas à pas de l’article Créer un hub d’événements avec le portail Azure pour créer un espace de noms Event Hubs. Si vous utilisez un cluster dédié, consultez Créer un Event Hub et un espace de noms.
Notes
Event Hubs pour Kafka n’est pas pris en charge dans le niveau De base.
Envoyer et recevoir des messages avec Kafka dans Event Hubs
Activez une identité managée affectée par le système pour votre machine virtuelle. Pour plus d’informations sur la configuration d’une identité managée sur une machine virtuelle, consultez Configurer des identités managées pour les ressources Azure sur une machine virtuelle en utilisant le Portail Azure. Les identités managées pour les ressources Azure fournissent aux services Azure une identité automatiquement gérée dans Microsoft Entra ID. Vous pouvez utiliser cette identité pour vous authentifier auprès de n’importe quel service prenant en charge l’authentification Microsoft Entra, sans avoir d’informations d’identification dans votre code.
À l’aide de la page Contrôle d’accès de l’espace de noms Event Hubs que vous avez créé, attribuez le rôle Propriétaire des données Azure Event Hubs à l’identité managée de la machine virtuelle.
Azure Event Hubs prend en charge l’utilisation de Microsoft Entra ID pour autoriser les requêtes de ressources Event Hubs. Microsoft Entra ID vous permet d’utiliser le contrôle d’accès en fonction du rôle (RBAC) Azure pour accorder des autorisations à un principal de sécurité, qui peut être un utilisateur ou un principal de service d’application.
Dans le portail Azure, accédez à votre espace de noms Event Hubs. Accédez à « Contrôle d’accès (IAM) » dans le volet de navigation de gauche.
Sélectionnez + Ajouter, puis sélectionnez Add role assignment.
Sous l’onglet Rôle, sélectionnez Propriétaire des données Azure Event Hubs, puis sélectionnez le bouton Suivant.
Sous l’onglet Membres, sélectionnez l’identité managée dans la section Affecter l’accès à.
Sélectionnez le lien +Sélectionner les membres.
Dans la page Sélectionner des identités managées, procédez comme suit :
Sélectionnez l’abonnement Azure qui a la machine virtuelle.
Pour Identité managée, sélectionnez Machine virtuelle.
Sélectionnez l’identité managée de votre machine virtuelle.
Sélectionnez Sélectionner au bas de la page.
Sélectionnez Vérifier + attribuer.
Redémarrez la machine virtuelle et reconnectez-vous à la machine virtuelle pour laquelle vous avez configuré l’identité managée.
Vous trouverez ici tous les exemples OAuth applicables à Event Hubs pour Kafka.
Revenez au dossier Consommateur dans lequel se trouve le fichier pom.xml et exécutez le code consommateur et traitez les événements à partir du Event Hub à l’aide de vos clients Kafka :
Vous devez voir des messages sur les événements envoyés dans la fenêtre Producteur. À présent, vérifiez la fenêtre de l’application consommateur pour afficher les messages qu’elle reçoit à partir du Event Hub.
Remplacez {YOUR.EVENTHUBS.CONNECTION.STRING} par la chaîne de connexion de votre espace de noms Event Hubs. Pour savoir comment obtenir la chaîne de connexion, consultez Obtenir une chaîne de connexion Event Hubs. Voici un exemple de configuration : sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Exécutez le code du consommateur et traitez les événements depuis le hub d’événements à l’aide de vos clients Kafka :
Remplacez {YOUR.EVENTHUBS.CONNECTION.STRING} par la chaîne de connexion de votre espace de noms Event Hubs. Pour savoir comment obtenir la chaîne de connexion, consultez Obtenir une chaîne de connexion Event Hubs. Voici un exemple de configuration : sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username="$ConnectionString" password="Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=XXXXXXXXXXXXXXXX";
Exécutez le code du producteur et diffusez en streaming les événements dans Event Hubs :
Si votre cluster Kafka Event Hubs a des événements, vous devez maintenant commencer à les recevoir du consommateur.
Validation de schéma pour Kafka avec Schema Registry
Vous pouvez utiliser Azure Schema Registry pour effectuer la validation de schémas lorsque vous diffusez des données avec vos applications Kafka en utilisant Event Hubs.
Azure Schema Registry d’Event Hubs fournit un référentiel centralisé pour la gestion des schémas et vous pouvez connecter en toute transparence vos applications Kafka nouvelles ou existantes à Schema Registry.
Dans cet article, vous avez appris à diffuser en streaming dans Event Hubs sans changer vos clients de protocole ni exécuter vos propres clusters. Pour en savoir plus, consultez Guide du développeur Apache Kafka pour Azure Event Hubs.
Faites la démonstration d’une compréhension des tâches d’engineering données courantes pour implémenter et gérer des charges de travail d’engineering données sur Microsoft Azure en utilisant un certain nombre de services Azure.
Découvrez et apprenez à utiliser Apache Kafka sur Azure Event Hubs pour diffuser en continu les données d’applications Apache Kafka sans configurer de cluster Kafka.