Lokaal testen met behulp van de Azure Event Hubs-emulator
In dit artikel vindt u een overzicht van de stappen voor het lokaal ontwikkelen en testen met behulp van de Azure Event Hubs-emulator.
Vereisten
- Docker-bureaublad
- Minimale hardwarevereisten:
- 2 GB RAM-geheugen
- 5 GB schijfruimte
- configuratie van Windows-subsysteem voor Linux (WSL) (alleen voor Windows):
Notitie
Voordat u doorgaat met de stappen in dit artikel, moet u ervoor zorgen dat Docker Desktop op de achtergrond operationeel is.
De emulator uitvoeren
Als u de Event Hubs-emulator wilt uitvoeren, kunt u een geautomatiseerd script of een Linux-container gebruiken:
Voordat u een geautomatiseerd script uitvoert, kloont u de GitHub-installatieopslagplaats van de emulator lokaal.
Windows
Gebruik de volgende stappen om de Event Hubs-emulator lokaal uit te voeren in Windows:
Sta de uitvoering van niet-ondertekende scripts toe door deze opdracht uit te voeren in het PowerShell-venster:
$>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'
Voer het installatiescript LaunchEmulator.ps1 uit. Het uitvoeren van het script brengt twee containers met zich mee: de Event Hubs-emulator en De Azure-emulator (een afhankelijkheid voor de emulator).
Linux en macOS
De Event Hubs-emulator lokaal uitvoeren op Linux of macOS:
- Voer het installatiescript uit LaunchEmulator.sh. Het uitvoeren van het script brengt twee containers met zich mee: de Event Hubs-emulator en De Azure-emulator (een afhankelijkheid voor de emulator).
Nadat de stappen zijn voltooid, kunt u de containers vinden die worden uitgevoerd in Docker.
Interactie met de emulator
De emulator gebruikt standaard config.json configuratiebestand. U kunt entiteiten (Event Hubs/Kafka-onderwerpen) configureren door wijzigingen aan te brengen in het configuratiebestand. Als u meer wilt weten, gaat u naar Configuratiewijzigingen aanbrengen
U kunt de volgende verbindingsreeks gebruiken om verbinding te maken met de Event Hubs-emulator:
- Gebruik de volgende verbindingsreeks wanneer de emulatorcontainer en interactietoepassing systeemeigen worden uitgevoerd op de lokale computer:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Toepassingen (Containerized/Niet-containerized) op de verschillende computer en hetzelfde lokale netwerk kunnen communiceren met emulator met behulp van het IPv4-adres van de machine. Gebruik de volgende verbindingsreeks:
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Toepassingscontainers in hetzelfde brugnetwerk kunnen communiceren met Emulator met behulp van de alias of het IP-adres. In het volgende verbindingsreeks wordt ervan uitgegaan dat de naam van de emulator de standaardwaarde heeft die 'eventhubs-emulator' is:
"Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Toepassingscontainers in het verschillende brugnetwerk kunnen communiceren met Emulator met behulp van de host.docker.internal. Gebruik de volgende verbindingsreeks:
"Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
Zorg er tijdens interactie met Kafka voor dat u de producer- en consumentenconfiguratie als volgt instelt:
{
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
};
De waarde van BootstrapServers en SaslPassword is afhankelijk van uw installatietopologie. Raadpleeg de sectie Interactie met emulator voor meer informatie.
Belangrijk
Wanneer u Kafka gebruikt, zijn alleen Producer- en Consumer-API's compatibel met de Event Hubs-emulator.
Raadpleeg de Event Hubs-emulatorvoorbeelden op GitHub om aan de slag te gaan.