Dela via


Testa lokalt med hjälp av Azure Event Hubs-emulatorn

Azure Event Hubs-emulatorn gör det möjligt för utvecklare att testa och verifiera sina program lokalt utan att ansluta till molnet. Den här guiden innehåller stegvisa instruktioner för att konfigurera, köra och interagera med emulatorn med hjälp av Docker eller automatiserade skript.

Prerequisites

Note

Innan du fortsätter med stegen i den här artikeln kontrollerar du att Docker Desktop fungerar i bakgrunden.

Kör Azure Event Hubs-emulatorn

Kör Azure Event Hubs-emulatorn med antingen ett automatiserat skript eller en Linux-container. Välj den metod som passar bäst för din utvecklingsmiljö.

Innan du kör ett automatiserat skript klonar du emulatorns GitHub-installationsplats lokalt.

Windows

Använd följande steg för att köra Event Hubs-emulatorn lokalt i Windows.

  1. Öppna PowerShell och navigera till katalogen där den gemensamma skriptmappen klonas med hjälp av cd:
    cd <path to your common scripts folder> # Update this path
    
    
  2. Utfärda wsl-kommandot för att öppna WSL i den här katalogen.
    wsl
    
    
  3. Kör installationsskriptet./LaunchEmulator.sh Att köra skriptet innehåller två containrar: Event Hubs-emulatorn och Azurite (ett beroende för emulatorn).
    ./Launchemulator.sh
    
    
    

Linux och macOS

Så här kör du Event Hubs-emulatorn lokalt i Linux eller macOS:

  • Kör installationsskriptet LaunchEmulator.sh. När skriptet körs skapas två containrar: Event Hubs-emulatorn och Azurite (ett beroende för emulatorn).

När stegen har slutförts kan du hitta containrarna som körs i Docker.

Skärmbild av Azure Event Hubs-emulatorn som körs i en container.

Interagera med emulatorn

Som standard använder emulatorn config.json konfigurationsfil. Du kan konfigurera entiteter (Event Hubs/Kafka-ämnen) genom att göra ändringar i konfigurationsfilen. Mer information finns i Göra konfigurationsändringar

Du kan använda följande anslutningssträng för att ansluta till Event Hubs-emulatorn:

  • När emulatorcontainern och det interagerande programmet körs internt på den lokala datorn använder du följande anslutningssträng:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Program (containerbaserade/icke-containerbaserade) på den olika datorn och samma lokala nätverk kan interagera med emulatorn med hjälp av datorns IPv4-adress. Använd följande anslutningssträng:
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Programcontainrar i samma bryggnätverk kan interagera med emulatorn med hjälp av dess alias eller IP. Följande anslutningssträng förutsätter att namnet på emulatorn har standardvärdet "eventhubs-emulator":
"Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Programcontainrar i det olika bryggnätverket kan interagera med emulatorn med hjälp av "host.docker.internal" som värd. Använd följande anslutningssträng:
"Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"

När du interagerar med Kafka måste du ange producent- och konsumentkonfigurationen enligt följande:


        {
            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
        };

Värdet för BootstrapServers och SaslPassword beror på din konfigurationstopologi. Mer information finns i Avsnittet Interagera med emulatorn .

Important

När du använder Kafka är endast producent- och konsument-API:er kompatibla med Event Hubs-emulatorn.

Kom igång genom att läsa Event Hubs-emulatorexempel på GitHub.

Översikt över Azure Event Hubs-emulatorn
Event Hubs-emulatorexempel på GitHub