Condividi tramite


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

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:

  1. 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'

  2. 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.

Screenshot che mostra l'emulatore di Hub eventi in esecuzione in un contenitore.

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.

Panoramica dell'emulatore di Hub eventi di Azure