Avvio rapido: Trasmettere i dati con Hub eventi di Azure e Apache Kafka

Hub eventi di Azure fornisce un endpoint Kafka che è possibile usare per connettere le applicazioni Apache Kafka a un servizio di streaming gestito senza eseguire il proprio cluster. Se sono già presenti applicazioni producer o consumer Kafka, è possibile indirizzarle a Hub eventi con modifiche minime alla configurazione.

In questa guida introduttiva, si configurano app di esempio per produttori e consumatori Kafka per trasmettere dati tramite un namespace di Event Hubs utilizzando il protocollo Apache Kafka.

Nota

Questo esempio è disponibile in GitHub.

Prerequisiti

Per completare questa guida introduttiva, accertarsi di soddisfare i requisiti seguenti:

Creare uno spazio dei nomi di Hub eventi di Azure

Quando si crea uno spazio dei nomi di Hub eventi, l'endpoint Kafka per lo spazio dei nomi viene abilitato automaticamente. È ora possibile trasmettere gli eventi dalle applicazioni che usano il protocollo Kafka in Hub eventi. Seguire le istruzioni dettagliate illustrate in Creare un hub eventi usando il portale di Azure per creare uno spazio dei nomi di Hub eventi. Se è in uso un cluster dedicato, vedere Creare uno spazio dei nomi e un Hub eventi in un cluster dedicato.

Nota

Hub eventi per Kafka non è supportato nel livello Basic.

Inviare e ricevere messaggi con Kafka in Hub eventi

Questa sezione illustra come abilitare un'identità gestita per una macchina virtuale e usare tale identità per l'autenticazione con Hub eventi per Kafka. Questo meccanismo di autenticazione è consigliato quando ci si connette a Hub eventi per Kafka da Azure servizi di calcolo perché elimina la necessità di credenziali nel codice.

  1. Abilitare l'identità gestita assegnata dal sistema per la macchina virtuale. Per altre informazioni sulla configurazione dell'identità gestita in una macchina virtuale, vedere Configurare le identità gestite per le risorse di Azure in una macchina virtuale usando il portale di Azure. Le identità gestite per le risorse di Azure offrono servizi di Azure con un'identità gestita automaticamente in Microsoft Entra ID. È possibile usare questa identità per l'autenticazione in qualsiasi servizio che supporta l'autenticazione di Microsoft Entra senza dover immettere le credenziali nel codice.

    Screenshot della scheda Identità di una macchina virtuale nel portale di Azure.

  2. Usando la pagina Access control dello spazio dei nomi di Event Hubs che hai creato, assegnare il ruolo Hub eventi di Azure Data Owner all'identità gestita della macchina virtuale. Hub eventi di Azure supporta l'utilizzo di Microsoft Entra ID per autorizzare le richieste alle risorse di Hub eventi. Con Microsoft Entra ID, è possibile usare il controllo degli accessi in base al ruolo di Azure (Azure RBAC) per concedere autorizzazioni a un'entità di sicurezza, che può essere un utente o un principale del servizio applicativo.

    1. Nel portale di Azure, vai al namespace degli Event Hubs. Passare a Controllo di accesso (IAM) nel riquadro di spostamento a sinistra.

    2. Selezionare + Aggiungi e selezionare Aggiungi assegnazione di ruolo.

      Schermata della pagina Controllo di accesso di un namespace di Event Hubs.

    3. Nella scheda Role selezionare Hub eventi di Azure Data Owner e selezionare Next.

      Screenshot che mostra la selezione del ruolo di Proprietario dei dati di Hub eventi di Azure.

    4. Alla scheda Membri, selezionare Identità gestita nella sezione Assegnare accesso a.

    5. Selezionare il link +Seleziona membri.

    6. Alla pagina Selezionare identità gestite, seguire questi passaggi:

      1. Selezionare la sottoscrizione di Azure che include la VM.

      2. Per Identità gestita selezionare Macchina virtuale.

      3. Selezionare l'identità gestita della macchina virtuale.

      4. Selezionare Seleziona nella parte inferiore della pagina.

        Screenshot che mostra la pagina Aggiungi assegnazione di ruolo -> Seleziona identità gestite.

    7. Selezionare Rivedi + Assegna.

      Screenshot che mostra la pagina Aggiungi assegnazione di ruolo con il ruolo assegnato all'identità gestita della macchina virtuale.

  3. Riavviare la macchina virtuale e accedere di nuovo alla macchina virtuale per cui è stata configurata l'identità gestita.

  4. Clonare gli Hub eventi di Azure per il repository di Kafka.

  5. Accedere a azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/consumer.

  6. Passare alla cartella src/main/resources/ e aprire consumer.config. Sostituire namespacename con il nome dello spazio dei nomi di Hub eventi.

    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;
    

    Nota

    Tutti gli esempi di OAuth per Hub eventi per Kafka sono disponibili qui.

  7. Tornare alla cartella Consumer in cui si trova il pom.xml file ed eseguire il codice consumer per elaborare gli eventi dall'hub eventi usando i client Kafka:

    mvn clean package
    mvn exec:java -Dexec.mainClass="TestConsumer"                                    
    
  8. Aprire un'altra finestra del prompt dei comandi e vai a azure-event-hubs-for-kafka/tutorials/oauth/java/managedidentity/producer.

  9. Passare alla cartella src/main/resources/ e aprire producer.config. Sostituire mynamespace con il nome dello spazio dei nomi di Hub eventi.

  10. Tornare alla cartella Producer in cui si trova il pom.xml file ed eseguire il codice producer per trasmettere gli eventi in Hub eventi:

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

    Vengono visualizzati messaggi sugli eventi inviati nella finestra del produttore. Ora, controllare la finestra dell'app consumer per vedere i messaggi che riceve dall'hub eventi.

    Screenshot che mostra le finestre dell'app Producer e Consumer che mostrano gli eventi.

Convalida schemi per Kafka con Schema Registry

È possibile usare registro schemi di Azure per eseguire una convalida schema quando si trasmettono dati con le applicazioni Kafka usando Hub eventi. Azure Registro schemi di Hub eventi fornisce un repository centralizzato per la gestione degli schemi ed è possibile connettere facilmente le applicazioni Kafka nuove o esistenti con il Registro schemi.

Per scoprire di più, vedere Convalidare schemi per le applicazioni Apache Kafka usando Avro.

Pulire le risorse

Se le risorse non sono più necessarie, eliminare il gruppo di risorse e tutte le risorse correlate. Nel portale di Azure, seleziona il gruppo di risorse per l'namespace di Event Hub e seleziona Elimina.

Passaggi successivi

In questo articolo è stato illustrato come eseguire lo streaming in Event Hubs senza modificare i client di protocollo o gestire cluster personalizzati. Per altre informazioni, vedere Guida per sviluppatori Apache Kafka per Hub eventi di Azure.