Partilhar via


Teste localmente usando o emulador de Hubs de Eventos do Azure

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

Pré-requisitos

Nota

Antes de continuar com as etapas neste artigo, verifique se o Docker Desktop está operacional em segundo plano.

Execute o emulador

Para executar o emulador de Hubs de Eventos, você pode usar um script automatizado ou um contêiner 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 de Hubs de Eventos localmente no Windows:

  1. Permita a execução de scripts não assinados executando este 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 traz dois contêineres: o emulador de Hubs de Eventos e o Azurite (uma dependência para o emulador).

Linux e macOS

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

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

Depois que as etapas forem bem-sucedidas, você poderá encontrar os contêineres em execução no Docker.

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

Interaja com o emulador

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

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

  • Quando o contêiner do emulador e o aplicativo que interage estiverem sendo executados nativamente na máquina local, use a seguinte cadeia de conexão:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Aplicativos (em contêineres/não conteinerizados) na máquina diferente e na mesma rede local podem interagir com o emulador usando o endereço IPv4 da máquina. Use a seguinte cadeia de conexão:
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Os contêineres de aplicativos na mesma rede de ponte podem interagir com o emulador usando seu alias ou IP. A sequência de conexão a seguir assume que o nome do emulador tem o valor padrão que é"eventhubs-emulator":
"Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
  • Os contêineres de aplicativos na rede ponte diferente podem interagir com o emulador usando o "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 Kafka, certifique-se de definir a configuração Produtor e consumidor da seguinte forma:


        {
            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 emulador para obter detalhes.

Importante

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

Para começar, consulte os exemplos de emulador de Hubs de Eventos no GitHub.

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