Integrar os Hubs de Eventos do Azure com o Conector de Serviço

Esta página mostra métodos e clientes de autenticação com suporte e mostra o código de exemplo que você pode usar para conectar os Hubs de Eventos do Azure a outros serviços de nuvem usando o Service Connector. Você ainda poderá se conectar aos Hubs de Eventos em outras linguagens de programação sem usar o Conector de Serviço. Esta página também mostra nomes e valores de variáveis de ambiente padrão (ou configuração do Spring Boot) que você obtém ao criar conexões de serviço.

Serviço de computação com suporte

O Service Connector pode ser usado para conectar os seguintes serviços de computação aos Hubs de Eventos do Azure:

  • Serviço de aplicativo do Azure
  • Funções do Azure
  • Aplicativos de Contêiner do Azure
  • Azure Spring Apps

Tipos de autenticação e tipos de cliente com suporte

A tabela abaixo mostra quais combinações de tipos de cliente e métodos de autenticação têm suporte para conectar seu serviço de computação aos Hubs de Eventos do Azure usando o Service Connector. Um "Sim" indica que a combinação é suportada, enquanto um "Não" indica que ela não é suportada.

Tipo de cliente Identidade gerenciada atribuída pelo sistema Identidade gerenciada atribuída pelo usuário Cadeia de conexão/segredo Entidade de serviço
.NET Sim Sim Sim Yes
Go Sim Sim Sim Sim
Java Sim Sim Sim Yes
Java – Spring Boot Sim Sim Sim Yes
Kafka - Spring Boot Sim Sim Sim Sim
Node.js Sim Sim Sim Sim
Python Sim Sim Sim Yes
Nenhum Sim Sim Sim Yes

Esta tabela indica que todas as combinações de tipos de cliente e métodos de autenticação na tabela são suportadas. Todos os tipos de cliente podem usar qualquer um dos métodos de autenticação para se conectar aos Hubs de Eventos do Azure usando o Service Connector.

Nomes de variável de ambiente padrão ou propriedades de aplicativo

Use os detalhes de conexão abaixo para conectar os serviços de computação aos Hubs de Eventos. Para cada exemplo abaixo, substitua os textos de espaço reservado <Event-Hubs-namespace>, <access-key-name>, <access-key-value>, <client-ID>, <client-secret> e <tenant-id> pelo seguinte: namespace dos Hubs de Eventos, nome da chave de acesso compartilhada, valor da chave de acesso compartilhada, ID do cliente, segredo do cliente e ID do locatário. Para obter mais informações sobre convenções de nomenclatura, consulte o artigo Internos do Service Connector.

Identidade gerenciada atribuída pelo sistema

Tipo de cliente SpringBoot

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.cloud.azure.eventhub.namespace Namespace do Hubs de Eventos <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.eventhubs.namespace Namespace dos Hubs de Eventos para a versão do Spring Cloud Azure acima de 4.0 <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.eventhubs.credential.managed-identity-enabled Se a identidade gerenciada deve ser habilitada true

Tipo de cliente Kafka-SpringBoot

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.kafka.bootstrap-servidores Servidor de inicialização Kafka <Event-Hub-namespace>.servicebus.windows.net

Outros tipos de clientes

Nome da variável de ambiente padrão Descrição Valor de exemplo
AZURE_EVENTHUB_FULLYQUALIFIEDNAMESPACE Namespace do Hubs de Eventos <Event-Hubs-namespace>.servicebus.windows.net

Código de exemplo

Consulte as etapas e o código abaixo para se conectar aos Hubs de Eventos do Azure usando uma identidade gerenciada atribuída pelo sistema.

  1. Instale as dependências.

    dotnet add package Azure.Identity
    dotnet add package Azure.Messaging.EventHubs
    
  2. Autentique-se usando Azure.Identity e obtenha o namespace Hubs de Eventos do Azure das variáveis de ambiente adicionadas pelo Service Connector. Ao usar o código abaixo, descompacte a parte do snippet de código para o tipo de autenticação que você deseja usar.

    using System; 
    sing Azure.Identity;
    using Azure.Messaging.EventHubs;
    
    // Uncomment the following lines according to the authentication type.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    var fullyQualifiedNamespace = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_FULLYQUALIFIEDNAMESPACE");
    var eventHubName = "<NAME OF THE EVENT HUB>";
    
    // Example of sending events
    var producer = new EventHubProducerClient(fullyQualifiedNamespace, eventHubName, credential);
    

Identidade gerenciada atribuída pelo usuário

Tipo de cliente SpringBoot

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.cloud.azure.eventhub.namespace Namespace do Hubs de Eventos <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.client-id Sua ID de cliente <client-ID>
spring.cloud.azure.eventhubs.namespace Namespace dos Hubs de Eventos para a versão do Spring Cloud Azure acima de 4.0 <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.eventhubs.credential.client-id Sua ID de cliente para a versão do Spring Cloud Azure acima de 4.0 <client-ID>
spring.cloud.azure.eventhubs.credential.managed-identity-enabled Se a identidade gerenciada deve ser habilitada true

Tipo de cliente Kafka-SpringBoot

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.kafka.bootstrap-servidores Servidor de inicialização Kafka <Event-Hub-namespace>.servicebus.windows.net
spring.kafka.properties.azure.credential.managed-identity-enabled Se a identidade gerenciada deve ser habilitada true
spring.kafka.properties.azure.credential.client-id Sua ID de cliente <client-ID>

Outros tipos de clientes

Nome da variável de ambiente padrão Descrição Valor de exemplo
AZURE_EVENTHUB_FULLYQUALIFIEDNAMESPACE Namespace do Hubs de Eventos <Event-Hubs-namespace>.servicebus.windows.net
AZURE_EVENTHUB_CLIENTID Sua ID de cliente <client-ID>

Código de exemplo

Consulte as etapas e o código abaixo para se conectar aos Hubs de Eventos do Azure usando uma identidade gerenciada atribuída pelo usuário.

  1. Instale as dependências.

    dotnet add package Azure.Identity
    dotnet add package Azure.Messaging.EventHubs
    
  2. Autentique-se usando Azure.Identity e obtenha o namespace Hubs de Eventos do Azure das variáveis de ambiente adicionadas pelo Service Connector. Ao usar o código abaixo, descompacte a parte do snippet de código para o tipo de autenticação que você deseja usar.

    using System; 
    sing Azure.Identity;
    using Azure.Messaging.EventHubs;
    
    // Uncomment the following lines according to the authentication type.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    var fullyQualifiedNamespace = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_FULLYQUALIFIEDNAMESPACE");
    var eventHubName = "<NAME OF THE EVENT HUB>";
    
    // Example of sending events
    var producer = new EventHubProducerClient(fullyQualifiedNamespace, eventHubName, credential);
    

Connection string

Tipo de cliente SpringBoot

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.cloud.azure.storage.connection-string Cadeia de conexão dos Hubs de Eventos Endpoint=sb://servicelinkertesteventhub.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>
spring.cloud.azure.eventhubs.connection-string Cadeia de conexão dos Hubs de Eventos para a versão do Spring Cloud Azure acima de 4.0 Endpoint=sb://servicelinkertesteventhub.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>

Tipo de cliente Kafka-SpringBoot

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.cloud.azure.eventhubs.connection-string Cadeia de conexão dos Hubs de Eventos Endpoint=sb://servicelinkertesteventhub.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>

Outros tipos de clientes

Nome da variável de ambiente padrão Descrição Valor de exemplo
AZURE_EVENTHUB_CONNECTIONSTRING Cadeia de conexão dos Hubs de Eventos Endpoint=sb://<Event-Hubs-namespace>.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>

Código de exemplo

Consulte as etapas e o código abaixo para se conectar aos Hubs de Eventos do Azure usando uma cadeia de conexão.

  1. Instalar dependência.

    dotnet add package Azure.Messaging.EventHubs
    
  2. Obtenha a cadeia de conexão da variável de ambiente adicionada pelo Service Connector.

    using System; 
    using Azure.Messaging.EventHubs;
    
    string connectionString = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CONNECTIONSTRING");
    var eventHubName = "<NAME OF THE EVENT HUB>";
    var consumerGroup = EventHubConsumerClient.DefaultConsumerGroupName;
    
    var producer = new EventHubProducerClient(connectionString, eventHubName);
    var consumer = new EventHubConsumerClient(consumerGroup, connectionString, eventHubName);
    

Entidade de serviço

Tipo de cliente SpringBoot

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.cloud.azure.eventhub.namespace Namespace do Hubs de Eventos <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.client-id Sua ID de cliente <client-ID>
spring.cloud.azure.tenant-id Seu segredo do cliente <client-secret>
spring.cloud.azure.client-secret Sua ID de locatário <tenant-id>
spring.cloud.azure.eventhubs.namespace Namespace dos Hubs de Eventos para a versão do Spring Cloud Azure acima de 4.0 <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.eventhubs.credential.client-id Sua ID de cliente para a versão do Spring Cloud Azure acima de 4.0 <client-ID>
spring.cloud.azure.eventhubs.credential.client-secret Seu segredo de cliente para a versão do Spring Cloud Azure acima de 4.0 <client-secret>
spring.cloud.azure.eventhubs.profile.tenant-id Sua ID de locatário para a versão do Spring Cloud Azure acima de 4.0 <tenant-id>

Tipo de cliente Kafka-SpringBoot

Nome da variável de ambiente padrão Descrição Valor de exemplo
spring.kafka.bootstrap-servidores Servidor de inicialização Kafka <Event-Hub-namespace>.servicebus.windows.net
spring.kafka.properties.azure.credential.client-id Sua ID de cliente <client-ID>
spring.kafka.properties.azure.credential.client-secret Seu segredo do cliente <client-secret>
spring.kafka.properties.azure.profile.tenant-id Sua ID de locatário <tenant-id>

Outros tipos de clientes

Nome da variável de ambiente padrão Descrição Valor de exemplo
AZURE_EVENTHUB_FULLYQUALIFIEDNAMESPACE Namespace do Hubs de Eventos <Event-Hubs-namespace>.servicebus.windows.net
AZURE_EVENTHUB_CLIENTID Sua ID de cliente <client-ID>
AZURE_EVENTHUB_CLIENTSECRET Seu segredo do cliente <client-secret>
AZURE_EVENTHUB_TENANTID Sua ID de locatário <tenant-id>

Código de exemplo

Consulte as etapas e o código abaixo para se conectar aos Hubs de Eventos do Azure usando uma entidade de serviço.

  1. Instale as dependências.

    dotnet add package Azure.Identity
    dotnet add package Azure.Messaging.EventHubs
    
  2. Autentique-se usando Azure.Identity e obtenha o namespace Hubs de Eventos do Azure das variáveis de ambiente adicionadas pelo Service Connector. Ao usar o código abaixo, descompacte a parte do snippet de código para o tipo de autenticação que você deseja usar.

    using System; 
    sing Azure.Identity;
    using Azure.Messaging.EventHubs;
    
    // Uncomment the following lines according to the authentication type.
    // system-assigned managed identity
    // var credential = new DefaultAzureCredential();
    
    // user-assigned managed identity
    // var credential = new DefaultAzureCredential(
    //     new DefaultAzureCredentialOptions
    //     {
    //         ManagedIdentityClientId = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CLIENTID");
    //     });
    
    // service principal 
    // var tenantId = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_TENANTID");
    // var clientId = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CLIENTID");
    // var clientSecret = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_CLIENTSECRET");
    // var credential = new ClientSecretCredential(tenantId, clientId, clientSecret);
    
    var fullyQualifiedNamespace = Environment.GetEnvironmentVariable("AZURE_EVENTHUB_FULLYQUALIFIEDNAMESPACE");
    var eventHubName = "<NAME OF THE EVENT HUB>";
    
    // Example of sending events
    var producer = new EventHubProducerClient(fullyQualifiedNamespace, eventHubName, credential);
    

Próximas etapas

Siga os tutoriais listados abaixo para saber mais sobre o Conector de Serviço.