Integrieren von Azure Event Hubs mit dem Dienstconnector

Diese Seite zeigt unterstützte Authentifizierungsmethoden und -clients und zeigt Beispielcode an, mit dem Sie Azure Event Hubs mit anderen Clouddiensten mithilfe von Service Verbinden or verbinden können. Möglicherweise können Sie auch in anderen Programmiersprachen eine Verbindung mit Event Hubs herstellen, ohne den Dienstconnector zu verwenden. Auf dieser Seite werden auch Die Namen und Werte der Standardumgebungsvariablen (oder Spring Boot-Konfiguration) angezeigt, die Sie beim Erstellen von Dienstverbindungen erhalten.

Unterstützte Computedienste

Der Dienst Verbinden or kann verwendet werden, um die folgenden Computedienste mit Azure Event Hubs zu verbinden:

  • Azure App Service
  • Azure-Funktionen
  • Azure Container Apps
  • Azure Spring Apps

Unterstützte Authentifizierungstypen und Clienttypen

Die folgende Tabelle zeigt, welche Kombinationen von Clienttypen und Authentifizierungsmethoden unterstützt werden, um Ihren Computedienst mit Azure Event Hubs mithilfe von Service Verbinden or zu verbinden. Ein "Ja" gibt an, dass die Kombination unterstützt wird, während ein "Nein" angibt, dass sie nicht unterstützt wird.

Clienttyp Systemseitig zugewiesene verwaltete Identität Benutzerseitig zugewiesene verwaltete Identität Geheimnis/Verbindungszeichenfolge Dienstprinzipal
.NET Ja Ja Ja Ja
Go Ja Ja Ja Ja
Java Ja Ja Ja Ja
Java - Spring Boot Ja Ja Ja Ja
Kafka - Spring Boot Ja Ja Ja Ja
Node.js Ja Ja Ja Ja
Python Ja Ja Ja Ja
Keine Ja Ja Ja Ja

Diese Tabelle gibt an, dass alle Kombinationen von Clienttypen und Authentifizierungsmethoden in der Tabelle unterstützt werden. Alle Clienttypen können jede der Authentifizierungsmethoden verwenden, um mithilfe von Service Verbinden or eine Verbindung mit Azure Event Hubs herzustellen.

Standardnamen von Umgebungsvariablen oder Anwendungseigenschaften

Verwenden Sie die nachstehenden Verbindungsdetails, um Computedienste mit Event Hubs zu verbinden. Ersetzen Sie für jedes Beispiel unten die Platzhaltertexte<Event-Hubs-namespace>, <access-key-name>, <access-key-value><client-ID>, <client-secret> und <tenant-id> mit Ihrem Event Hubs-Namespace, dem Namen des freigegebenen Zugriffsschlüssels, dem Wert des Schlüssels für den gemeinsamen Zugriff, der Client-ID, dem geheimen Clientschlüssel und der Mandanten-ID. Weitere Informationen zu Benennungskonventionen finden Sie im Artikel "Service Verbinden or internals".

Systemseitig zugewiesene verwaltete Identität

SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielwert
spring.cloud.azure.eventhub.namespace Event Hubs-Namespace <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.eventhubs.namespace Event Hubs-Namespace für Spring Cloud Azure Version über 4.0 <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.eventhubs.credential.managed-identity-enabled Gibt an, ob verwaltete Identität aktiviert werden soll true

Kafka-SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielwert
spring.kafka.bootstrap-servers Kafka-Bootstrapserver <Event-Hub-namespace>.servicebus.windows.net

Andere Clienttypen

Standardname der Umgebungsvariablen Beschreibung Beispielwert
AZURE_EVENTHUB_FULLYQUALIFIEDNAMESPACE Event Hubs-Namespace <Event-Hubs-namespace>.servicebus.windows.net

Beispielcode

Lesen Sie die schritte und den folgenden Code, um eine Verbindung mit Azure Event Hubs mithilfe einer vom System zugewiesenen verwalteten Identität herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Azure.Identity
    dotnet add package Azure.Messaging.EventHubs
    
  2. Authentifizieren Sie sich mithilfe Azure.Identity des Azure Event Hubs-Namespaces aus den Von Service Verbinden or hinzugefügten Umgebungsvariablen. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.

    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);
    

Benutzerseitig zugewiesene verwaltete Identität

SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielwert
spring.cloud.azure.eventhub.namespace Event Hubs-Namespace <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.client-id Ihre Client-ID <client-ID>
spring.cloud.azure.eventhubs.namespace Event Hubs-Namespace für Spring Cloud Azure Version über 4.0 <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.eventhubs.credential.client-id Ihre Client-ID für Spring Cloud Azure Version über 4.0 <client-ID>
spring.cloud.azure.eventhubs.credential.managed-identity-enabled Gibt an, ob verwaltete Identität aktiviert werden soll true

Kafka-SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielwert
spring.kafka.bootstrap-servers Kafka-Bootstrapserver <Event-Hub-namespace>.servicebus.windows.net
spring.kafka.properties.azure.credential.managed-identity-enabled Gibt an, ob verwaltete Identität aktiviert werden soll true
spring.kafka.properties.azure.credential.client-id Ihre Client-ID <client-ID>

Andere Clienttypen

Standardname der Umgebungsvariablen Beschreibung Beispielwert
AZURE_EVENTHUB_FULLYQUALIFIEDNAMESPACE Event Hubs-Namespace <Event-Hubs-namespace>.servicebus.windows.net
AZURE_EVENTHUB_CLIENTID Ihre Client-ID <client-ID>

Beispielcode

Lesen Sie die schritte und den folgenden Code, um mithilfe einer vom Benutzer zugewiesenen verwalteten Identität eine Verbindung mit Azure Event Hubs herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Azure.Identity
    dotnet add package Azure.Messaging.EventHubs
    
  2. Authentifizieren Sie sich mithilfe Azure.Identity des Azure Event Hubs-Namespaces aus den Von Service Verbinden or hinzugefügten Umgebungsvariablen. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.

    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);
    

Verbindungszeichenfolge

SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielwert
spring.cloud.azure.storage.connection-string Event Hubs-Verbindungszeichenfolge Endpoint=sb://servicelinkertesteventhub.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>
spring.cloud.azure.eventhubs.connection-string Event Hubs Verbindungszeichenfolge für Spring Cloud Azure Version über 4.0 Endpoint=sb://servicelinkertesteventhub.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>

Kafka-SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielwert
spring.cloud.azure.eventhubs.connection-string Event Hubs-Verbindungszeichenfolge Endpoint=sb://servicelinkertesteventhub.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>

Andere Clienttypen

Standardname der Umgebungsvariablen Beschreibung Beispielwert
AZURE_EVENTHUB_CONNECTIONSTRING Event Hubs-Verbindungszeichenfolge Endpoint=sb://<Event-Hubs-namespace>.servicebus.windows.net/;SharedAccessKeyName=<access-key-name>;SharedAccessKey=<access-key-value>

Beispielcode

Lesen Sie die schritte und den folgenden Code, um mithilfe eines Verbindungszeichenfolge eine Verbindung mit Azure Event Hubs herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Azure.Messaging.EventHubs
    
  2. Rufen Sie die Verbindungszeichenfolge aus der Umgebungsvariable ab, die von Service Verbinden or hinzugefügt wurde.

    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);
    

Dienstprinzipal

SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielwert
spring.cloud.azure.eventhub.namespace Event Hubs-Namespace <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.client-id Ihre Client-ID <client-ID>
spring.cloud.azure.tenant-id Ihr geheimer Clientschlüssel <client-secret>
spring.cloud.azure.client-secret Ihre Mandanten-ID <tenant-id>
spring.cloud.azure.eventhubs.namespace Event Hubs-Namespace für Spring Cloud Azure Version über 4.0 <Event-Hub-namespace>.servicebus.windows.net
spring.cloud.azure.eventhubs.credential.client-id Ihre Client-ID für Spring Cloud Azure Version über 4.0 <client-ID>
spring.cloud.azure.eventhubs.credential.client-secret Ihr geheimer Clientschlüssel für Spring Cloud Azure, Version über 4.0 <client-secret>
spring.cloud.azure.eventhubs.profile.tenant-id Ihre Mandanten-ID für Spring Cloud Azure Version über 4.0 <tenant-id>

Kafka-SpringBoot-Clienttyp

Standardname der Umgebungsvariablen Beschreibung Beispielwert
spring.kafka.bootstrap-servers Kafka-Bootstrapserver <Event-Hub-namespace>.servicebus.windows.net
spring.kafka.properties.azure.credential.client-id Ihre Client-ID <client-ID>
spring.kafka.properties.azure.credential.client-secret Ihr geheimer Clientschlüssel <client-secret>
spring.kafka.properties.azure.profile.tenant-id Ihre Mandanten-ID <tenant-id>

Andere Clienttypen

Standardname der Umgebungsvariablen Beschreibung Beispielwert
AZURE_EVENTHUB_FULLYQUALIFIEDNAMESPACE Event Hubs-Namespace <Event-Hubs-namespace>.servicebus.windows.net
AZURE_EVENTHUB_CLIENTID Ihre Client-ID <client-ID>
AZURE_EVENTHUB_CLIENTSECRET Ihr geheimer Clientschlüssel <client-secret>
AZURE_EVENTHUB_TENANTID Ihre Mandanten-ID <tenant-id>

Beispielcode

Lesen Sie die schritte und den folgenden Code, um mithilfe eines Dienstprinzipals eine Verbindung mit Azure Event Hubs herzustellen.

  1. Installieren Sie Abhängigkeiten.

    dotnet add package Azure.Identity
    dotnet add package Azure.Messaging.EventHubs
    
  2. Authentifizieren Sie sich mithilfe Azure.Identity des Azure Event Hubs-Namespaces aus den Von Service Verbinden or hinzugefügten Umgebungsvariablen. Wenn Sie den folgenden Code verwenden, heben Sie die Auskommentierung des Teils des Codeschnipsels für den Authentifizierungstyp auf, den Sie verwenden möchten.

    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);
    

Nächste Schritte

Arbeiten Sie das unten aufgeführte Tutorial durch, um mehr über den Dienstconnector zu erfahren.