Testowanie lokalnie przy użyciu emulatora usługi Azure Event Hubs
W tym artykule przedstawiono podsumowanie kroków opracowywania i testowania lokalnego przy użyciu emulatora usługi Azure Event Hubs.
Wymagania wstępne
- Docker Desktop
- Minimalne wymagania sprzętowe:
- 2 GB pamięci RAM
- 5 GB miejsca na dysku
- konfiguracja Podsystem Windows dla systemu Linux (tylko dla systemu Windows):
Uwaga
Przed kontynuowaniem kroków opisanych w tym artykule upewnij się, że program Docker Desktop działa w tle.
Uruchamianie emulatora
Aby uruchomić emulator usługi Event Hubs, możesz użyć zautomatyzowanego skryptu lub kontenera systemu Linux:
Przed uruchomieniem zautomatyzowanego skryptu sklonuj repozytorium instalatora GitHub emulatora lokalnie.
Windows
Wykonaj następujące kroki, aby uruchomić emulator usługi Event Hubs lokalnie w systemie Windows:
Zezwól na wykonywanie niepodpisanych skryptów, uruchamiając to polecenie w oknie programu PowerShell:
$>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'
Uruchom skrypt instalacyjny LaunchEmulator.ps1. Uruchomienie skryptu powoduje wyświetlenie dwóch kontenerów: emulator usługi Event Hubs i Azurite (zależność emulatora).
Linux i macOS
Aby uruchomić emulator usługi Event Hubs lokalnie w systemie Linux lub macOS:
- Uruchom skrypt konfiguracji LaunchEmulator.sh. Uruchomienie skryptu powoduje wyświetlenie dwóch kontenerów: emulator usługi Event Hubs i Azurite (zależność emulatora).
Po pomyślnym wykonaniu tych kroków można znaleźć kontenery uruchomione na platformie Docker.
Interakcja z emulatorem
Domyślnie emulator używa config.json pliku konfiguracji. Jednostki (tematy usługi Event Hubs/Kafka) można skonfigurować, wprowadzając zmiany w pliku konfiguracji. Aby dowiedzieć się więcej, odwiedź stronę wprowadzanie zmian konfiguracji
Do nawiązania połączenia z emulatorem usługi Event Hubs można użyć następujących parametry połączenia:
- Gdy kontener emulatora i aplikacja współdziałają natywnie na komputerze lokalnym, użyj następujących parametry połączenia:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Aplikacje (konteneryzowane/niekontenerowane) na różnych maszynach i tej samej sieci lokalnej mogą wchodzić w interakcję z emulatorem przy użyciu adresu IPv4 maszyny. Użyj następujących parametry połączenia:
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Kontenery aplikacji w tej samej sieci mostka mogą wchodzić w interakcje z emulatorem przy użyciu aliasu lub adresu IP. Po parametry połączenia przyjęto założenie, że nazwa emulatora ma wartość domyślną"eventhubs-emulator":
"Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Kontenery aplikacji w innej sieci mostka mogą współdziałać z emulatorem przy użyciu hosta "host.docker.internal". Użyj następujących parametry połączenia:
"Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
Podczas interakcji z platformą Kafka upewnij się, że ustawiono konfigurację producent i odbiorca w następujący sposób:
{
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
};
Wartość bootstrapServers i SaslPassword zależy od topologii konfiguracji. Aby uzyskać szczegółowe informacje, zobacz sekcję Interakcja z emulatorem .
Ważne
W przypadku korzystania z platformy Kafka tylko interfejsy API producentów i konsumentów są zgodne z emulatorem usługi Event Hubs.
Aby rozpocząć, zapoznaj się z przykładami emulatora usługi Event Hubs w witrynie GitHub.