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
- Área de trabalho do Docker
- Requisitos mínimos de hardware:
- 2 GB de RAM
- 5 GB de espaço em disco
- Configuração do Subsistema Windows para Linux (WSL) (apenas para Windows):
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:
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'
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.
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.