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 :

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

  1. 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.

    Screenshot of the Identity tab of a virtual machine page in the Azure portal.

  2. À 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.

    1. 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.

    2. Sélectionnez + Ajouter, puis sélectionnez Add role assignment.

      Screenshot of the Access Control page of an Event Hubs namespace.

    3. Sous l’onglet Rôle, sélectionnez Propriétaire des données Azure Event Hubs, puis sélectionnez le bouton Suivant.

      Screenshot showing the selection of the Azure Event Hubs Data Owner role.

    4. Sous l’onglet Membres, sélectionnez l’identité managée dans la section Affecter l’accès à.

    5. Sélectionnez le lien +Sélectionner les membres.

    6. Dans la page Sélectionner des identités managées, procédez comme suit :

      1. Sélectionnez l’abonnement Azure qui a la machine virtuelle.

      2. Pour Identité managée, sélectionnez Machine virtuelle.

      3. Sélectionnez l’identité managée de votre machine virtuelle.

      4. Sélectionnez Sélectionner au bas de la page.

        Screenshot showing the Add role assignment -> Select managed identities page.

    7. Sélectionnez Vérifier + attribuer.

      Screenshot showing the Add role assignment page with role assigned to VM's managed identity.

  3. Redémarrez la machine virtuelle et reconnectez-vous à la machine virtuelle pour laquelle vous avez configuré l’identité managée.

  4. Clonez le dépôt Azure Event Hubs pour Kafka.

  5. Accédez à azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer.

  6. Basculez vers le dossier src/main/resources/, puis ouvrez consumer.config. Remplacez namespacename 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.

  7. 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"                                    
    
  8. Lancez une autre fenêtre d’invite de commandes et accédez à azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer.

  9. Basculez vers le dossier src/main/resources/, puis ouvrez producer.config. Remplacez mynamespace par le nom de votre espace de noms Event Hub.

  10. 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.

    Screenshot showing the Producer and Consumer app windows showing the events.

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.