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