Démarrage rapide : diffuser des données avec Azure Event Hubs et Apache Kafka

Azure Event Hubs fournit un point de terminaison Kafka que vous pouvez utiliser pour connecter des applications Apache Kafka à un service de streaming managé sans exécuter votre propre cluster. Si vous disposez déjà d’applications de producteur ou de consommateur Kafka, vous pouvez les pointer vers Event Hubs avec des modifications de configuration minimales.

Dans ce démarrage rapide, vous configurez des exemples d’applications de producteur et de consommateur Kafka pour diffuser en continu des données via un espace de noms Event Hubs à l’aide du protocole Apache Kafka.

Note

Cet exemple est disponible sur GitHub.

Prérequis

Pour suivre ce démarrage rapide, vérifiez que vous avez les prérequis suivants :

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.

Note

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

Cette section vous montre comment activer une identité managée pour une machine virtuelle et utiliser cette identité pour s’authentifier auprès d’Event Hubs pour Kafka. Ce mécanisme d’authentification est recommandé lors de la connexion à Event Hubs pour Kafka à partir de Azure services de calcul, car il élimine le besoin d’informations d’identification dans votre code.

  1. Activez une identité managée affectée par le système pour votre machine virtuelle. Pour plus d’informations sur la configuration de l’identité managée sur une machine virtuelle, consultez Configurer des identités managées pour les ressources Azure sur une machine virtuelle à l’aide du 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.

    Capture d’écran de l’onglet Identité d’une page de machine virtuelle dans le Portail Azure.

  2. À l'aide de la page Contrôle d'accès de l'espace de noms Event Hubs que vous avez créé, affectez le rôle Azure Event Hubs Data Owner à 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. Avec Microsoft Entra ID, vous pouvez utiliser Azure contrôle d’accès en fonction du rôle (Azure RBAC) 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 à Access Control (IAM) dans le volet de navigation gauche.

    2. Sélectionnez + Ajouter, puis Ajouter une attribution de rôle.

      Capture d’écran de la page Contrôle d’accès d’un espace de noms Event Hubs.

    3. Sous l’onglet Role, sélectionnez Azure Event Hubs Propriétaire des données, puis sélectionnez Next.

      Capture d’écran montrant la sélection du rôle propriétaire de données Azure Event Hubs.

    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 l’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.

        Capture d’écran montrant la page Ajouter une attribution de rôle -> Sélectionner des identités managées.

    7. Sélectionnez Vérifier + attribuer.

      Capture d’écran montrant la page Ajouter une attribution de rôle avec le rôle attribué à l’identité managée de la machine virtuelle.

  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;
    

    Note

    Vous trouverez ici tous les exemples OAuth applicables à Event Hubs pour Kafka.

  7. Revenez au dossier Consommateur où se trouve le pom.xml fichier et exécutez le code consommateur pour traiter les événements à partir du hub d’événements à 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 pom.xml fichier et exécutez le code du producteur pour diffuser des événements dans Event Hubs :

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestProducer"                                    
    

    Vous voyez des messages concernant des événements envoyés dans la fenêtre du producteur. À présent, vérifiez la fenêtre de l’application consommateur pour afficher les messages qu’elle reçoit à partir du Event Hub.

    Capture d’écran montrant les fenêtres de l’application Producteur et Consommateur affichant les événements.

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 Registre de schémas 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.

Nettoyer les ressources

Si vous n’avez plus besoin des ressources, supprimez le groupe de ressources et toutes les ressources associées. Dans le portail Azure, sélectionnez le groupe de ressources de votre espace de noms Event Hubs, puis sélectionnez Delete.

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