Démarrage rapide : diffuser des données avec Azure Event Hubs et Apache Kafka
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.
Notes
Cet exemple est disponible sur GitHub.
Prérequis
Pour suivre ce démarrage rapide, vérifiez que vous avez :
- Lisez l’article Event Hubs pour Apache Kafka.
- Un abonnement Azure. Si vous n’en avez pas, créez un compte gratuit avant de commencer.
- Créez une machine virtuelle Windows et installez les composants suivants :
- Java Development Kit (JDK) 1.7+.
- Téléchargez et installez une archive binaire Maven.
- Git
Créer un espace de noms Azure Event Hubs
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.
Clonez le dépôt Azure Event Hubs pour Kafka.
Accédez à
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer
.Basculez vers le dossier
src/main/resources/
, puis ouvrezconsumer.config
. Remplaceznamespacename
par le nom de votre espace de noms Event Hub.bootstrap.servers=NAMESPACENAME.servicebus.windows.net:9093 security.protocol=SASL_SSL sasl.mechanism=OAUTHBEARER sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required; sasl.login.callback.handler.class=CustomAuthenticateCallbackHandler;
Notes
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 :
mvn clean package mvn exec:java -Dexec.mainClass="TestConsumer"
Lancez une autre fenêtre d’invite de commandes et accédez à
azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer
.Basculez vers le dossier
src/main/resources/
, puis ouvrezproducer.config
. Remplacezmynamespace
par le nom de votre espace de noms Event Hub.Revenez au dossier Producteur où se trouve le fichier
pom.xml
et exécutez le code du producteur et diffusez des événements dans Event Hubs :mvn clean package mvn exec:java -Dexec.mainClass="TestProducer"
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.
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.
Si vous souhaitez obtenir plus d’informations, consultez Valider les schémas pour les applications Apache Kafka avec Avro.
Étapes suivantes
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.