Eseguire il test in locale usando l'emulatore di Hub eventi di Azure
Questo articolo riepiloga i passaggi per sviluppare e testare localmente usando l'emulatore di Hub eventi di Azure.
Prerequisiti
- Desktop Docker
- Requisiti hardware minimi:
- 2 GB di RAM
- 5 GB di spazio su disco
- configurazione di sottosistema Windows per Linux (WSL) (solo per Windows):
Nota
Prima di continuare con i passaggi descritti in questo articolo, assicurarsi che Docker Desktop sia operativo in background.
Eseguire l'emulatore
Per eseguire l'emulatore di Hub eventi, è possibile usare uno script automatizzato o un contenitore Linux:
Prima di eseguire uno script automatizzato, clonare il repository del programma di installazione GitHub dell'emulatore in locale.
Finestre
Usare la procedura seguente per eseguire l'emulatore di Hub eventi in locale in Windows:
Consentire l'esecuzione di script non firmati eseguendo questo comando nella finestra di PowerShell:
$>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'
Eseguire lo script di installazione LaunchEmulator.ps1. L'esecuzione dello script visualizza due contenitori: l'emulatore di Hub eventi e Azurite (una dipendenza per l'emulatore).
Linux e macOS
Per eseguire l'emulatore di Hub eventi in locale in Linux o macOS:
- Eseguire lo script di installazione LaunchEmulator.sh. L'esecuzione dello script visualizza due contenitori: l'emulatore di Hub eventi e Azurite (una dipendenza per l'emulatore).
Dopo aver completato i passaggi, è possibile trovare i contenitori in esecuzione in Docker.
Interagire con l'emulatore
Per impostazione predefinita, l'emulatore usa config.json file di configurazione. È possibile configurare le entità (argomenti di Hub eventi/ Kafka) apportando modifiche al file di configurazione. Per altre informazioni, vedere Apportare modifiche alla configurazione
È possibile usare i stringa di connessione seguenti per connettersi all'emulatore di Hub eventi:
- Quando il contenitore dell'emulatore e l'applicazione di interazione vengono eseguiti in modo nativo nel computer locale, usare i stringa di connessione seguenti:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Le applicazioni (in contenitori o non in contenitori) nel computer diverso e nella stessa rete locale possono interagire con l'emulatore usando l'indirizzo IPv4 del computer. Usare i stringa di connessione seguenti:
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- I contenitori di applicazioni nella stessa rete bridge possono interagire con l'emulatore usando il relativo alias o IP. Di seguito stringa di connessione si presuppone che il nome dell'emulatore abbia il valore predefinito"eventhubs-emulator":
"Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- I contenitori di applicazioni nella rete bridge diversa possono interagire con l'emulatore usando "host.docker.internal" come host. Usare i stringa di connessione seguenti:
"Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
Durante l'interazione con Kafka, assicurarsi di impostare la configurazione producer e consumer come segue:
{
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
};
Il valore di BootstrapServers e SaslPassword dipende dalla topologia di installazione. Per informazioni dettagliate, vedere la sezione Interagire con l'emulatore .
Importante
Quando si usa Kafka, solo le API Producer e consumer sono compatibili con l'emulatore di Hub eventi.
Per iniziare, vedere gli esempi di emulatori di Hub eventi in GitHub.