Compartilhar via


Testar localmente usando o emulador dos Hubs de Eventos do Azure

Esse artigo resume as etapas para desenvolver e testar localmente usando o emulador dos Hubs de Eventos do Azure.

Pré-requisitos

Observação

Antes de prosseguir com as etapas incluídas nesse artigo, certifique-se de que o Docker Desktop esteja operacional em segundo plano.

Executar o emulador

Para executar o emulador dos Hubs de Eventos, você pode usar um script automatizado ou um contêiner do Linux:

Antes de executar um script automatizado, clone o Repositório do instalador do GitHub do emulador localmente.

Windows

Use as seguintes etapas para executar o emulador dos Hubs de Eventos localmente no Windows:

  1. Permitir a execução de scripts não assinados executando esse comando na janela do PowerShell:

    $>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'

  2. Execute o script de instalação LaunchEmulator.ps1. A execução do script introduz dois contêineres: o emulador dos Hubs de Eventos e o Azurite (uma dependência do emulador).

Linux e macOS

Para executar o emulador dos Hubs de Eventos localmente no Linux ou no macOS:

  • Execute o script de instalação LaunchEmulator.sh. A execução do script introduz dois contêineres: o emulador dos Hubs de Eventos e o Azurite (uma dependência do emulador).

Após concluir as etapas com sucesso, você poderá encontrar os contêineres em execução no Docker.

Captura de tela mostrando o emulador de Hubs de Eventos em execução em um contêiner.

Interagir com o emulador

Por padrão, o emulador usa o arquivo de configuração config.json. Você pode configurar entidades (tópicos dos Hubs de Eventos/Kafka) fazendo alterações no arquivo de configuração. Para saber mais, visite fazer alterações na configuração

Você pode usar a cadeia de conexão a seguir para se conectar ao emulador dos Hubs de Eventos:

  • Quando o contêiner do emulador e o aplicativo em execução nativa estão no mesmo computador, use a seguinte cadeia de conexão:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Aplicativos (Conteinerizados/Não conteinerizados) em computadores diferentes e na mesma rede local podem interagir com o emulador usando o endereço IPv4 do computador. Use a seguinte cadeia de conexão:
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Contêineres de aplicativos na mesma ponte de rede podem interagir com o Emulador usando seu alias ou IP. A cadeia de conexão a seguir pressupõe que o nome do Emulador tenha o valor padrão "eventhubs-emulator":
"Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Contêineres de aplicativos em pontes de rede diferentes podem interagir com o Emulador usando "host.docker.internal" como host. Use a seguinte cadeia de conexão:
"Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"

Ao interagir com o Kafka, certifique-se de definir a configuração do produtor e do consumidor da seguinte maneira:


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

O valor de BootstrapServers e SaslPassword dependeria da topologia de configuração. Consulte a seção Interagir com o Emulador para obter detalhes.

Importante

Ao usar o Kafka, somente as APIs de produtor e consumidor são compatíveis com o emulador dos Hubs de Eventos.

Para começar, consulte as Amostras do emulador dos Hubs de Eventos no GitHub.

Visão geral do emulador dos Hubs de Eventos do Azure