Teilen über


Ausführen lokaler Tests mithilfe des Azure Event Hubs-Emulators

In diesem Artikel werden die Schritte zum lokalen Entwickeln und Testen mithilfe des Azure Event Hubs-Emulators zusammengefasst.

Voraussetzungen

Hinweis

Stellen Sie sicher, dass Docker Desktop im Hintergrund ausgeführt wird, bevor Sie mit den Schritten in diesem Artikel fortfahren.

Ausführen des Emulators

Zum Ausführen des Event Hubs-Emulators können Sie ein automatisiertes Skript oder einen Linux-Container verwenden:

Klonen Sie vor dem Ausführen eines automatisierten Skripts das GitHub-Installer-Repository des Emulators lokal.

Windows

Führen Sie die folgenden Schritte aus, um den Event Hubs-Emulator lokal unter Windows auszuführen:

  1. Führen Sie den folgenden Befehl im PowerShell-Fenster aus, um die Ausführung nicht signierter Skripts zuzulassen:

    $>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'

  2. Führen Sie das Setupskript LaunchEmulator.ps1 aus. Wenn Sie das Skript ausführen, werden zwei Container angezeigt: der Event Hubs-Emulator und Azurite (eine Abhängigkeit für den Emulator).

Linux und macOS

So führen Sie den Event Hubs-Emulator lokal unter Linux oder macOS aus

  • Führen Sie das Setupskript LaunchEmulator.sh aus. Wenn Sie das Skript ausführen, werden zwei Container angezeigt: der Event Hubs-Emulator und Azurite (eine Abhängigkeit für den Emulator).

Nach erfolgreicher Ausführung der Schritte werden die Container in Docker ausgeführt.

Screenshot: Ausführung des Event Hubs-Emulators in einem Container

Interagieren mit dem Emulator

Standardmäßig verwendet der Emulator die Konfigurationsdatei config.json. Sie können Entitäten (Event Hubs/Kafka-Themen) konfigurieren, indem Sie Änderungen an der Konfigurationsdatei vornehmen. Weitere Informationen finden Sie unter Vornehmen von Konfigurationsänderungen

Sie können die folgende Verbindungszeichenfolge verwenden, um eine Verbindung mit dem Event Hubs-Emulator herzustellen:

  • Wenn der Emulatorcontainer und die interagierende Anwendung nativ auf dem lokalen Computer ausgeführt werden, verwenden Sie die folgende Verbindungszeichenfolge:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Anwendungen (containerisiert/nicht containerisiert) auf dem anderen Computer und dem gleichen lokalen Netzwerk können mit dem Emulator interagieren, indem die IPv4-Adresse des Computers verwendet wird. Verwenden Sie die folgende Verbindungszeichenfolge:
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Anwendungscontainer im selben Brückennetzwerk können mit dem Emulator mithilfe des Alias oder der IP interagieren. Die folgende Verbindungszeichenfolge setzt voraus, dass der Name des Emulators den Standardwert „eventhubs-emulator“ aufweist:
"Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Anwendungscontainer im anderen Brückennetzwerk können mit dem Emulator interagieren, indem „host.docker.internal“ als Host verwendet wird. Verwenden Sie die folgende Verbindungszeichenfolge:
"Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"

Stellen Sie bei der Interaktion mit Kafka sicher, dass die Producer- und Consumerkonfiguration wie folgt festgelegt wird:


        {
            BootstrapServers =  //Value of bootstrap servers would depend on kind of connection string being used
            SecurityProtocol = SecurityProtocol.SaslPlaintext,
            SaslMechanism = SaslMechanism.Plain,
            SaslUsername = "$ConnectionString",
            SaslPassword = //Value of connection string would depend on topology
        };

Der Wert von BootstrapServers und SaslPassword hängt von der Topologie Ihres Setup ab. Ausführliche Informationen finden Sie im Abschnitt Interaktion mit dem Emulator.

Wichtig

Bei Verwendung von Kafka sind nur Producer- und Consumer-APIs mit dem Event Hubs-Emulator kompatibel.

Informationen zu den ersten Schritten finden Sie in den Event Hubs-Emulatorbeispielen auf GitHub.

Übersicht über den Azure Event Hubs-Emulator