Prueba local mediante el emulador de Azure Event Hubs
En este artículo se resumen los pasos para desarrollar y probar localmente mediante el emulador de Azure Event Hubs.
Requisitos previos
- Escritorio de Docker
- Requisitos mínimos de hardware:
- 2 GB de RAM
- 5 GB de espacio en disco
- Configuración del Subsistema de Windows para Linux (WSL) (solo para Windows):
Nota:
Antes de continuar con los pasos de este artículo, asegúrese de que Docker Desktop está operativo en segundo plano.
Ejecución del emulador
Para ejecutar el emulador de Event Hubs, puede usar un script automatizado o un contenedor de Linux:
Antes de ejecutar un script automatizado, clone el repositorio del instalador de GitHub del emulador localmente.
Windows
Siga estos pasos para ejecutar el emulador de Event Hubs localmente en Windows:
Permita la ejecución de scripts sin firmar ejecutando este comando en la ventana de PowerShell:
$>Start-Process powershell -Verb RunAs -ArgumentList 'Set-ExecutionPolicy Bypass –Scope CurrentUser'
Ejecute el script de instalación LaunchEmulator.ps1. Al ejecutar el script se muestran dos contenedores: el emulador de Event Hubs y Azurite (una dependencia para el emulador).
Linux y macOS
Para ejecutar el emulador de Event Hubs localmente en Linux o macOS:
- Ejecute el script de instalación LaunchEmulator.sh. Al ejecutar el script se muestran dos contenedores: el emulador de Event Hubs y Azurite (una dependencia para el emulador).
Una vez que los pasos se realicen correctamente, puede encontrar los contenedores que se ejecutan en Docker.
Interacción con el emulador
De forma predeterminada, el emulador usa el archivo de configuración config.json. Puede configurar entidades (temas de Event Hubs/Kafka) realizando cambios en el archivo de configuración. Para más información, visite realizar cambios de configuración
Puede usar la siguiente cadena de conexión para conectarse al emulador de Event Hubs:
- Cuando el contenedor emulador y la aplicación que interactúa se ejecutan de forma nativa en la máquina local, utilice la siguiente cadena de conexión:
"Endpoint=sb://localhost;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Las aplicaciones (en contenedores o no en contenedores) en la máquina diferente y la misma red local pueden interactuar con emulador mediante la dirección IPv4 de la máquina. Use la siguiente cadena de conexión:
"Endpoint=sb://192.168.y.z;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Los contenedores de aplicaciones de la misma red de puente pueden interactuar con emulator mediante su alias o IP. La siguiente cadena de conexión supone que el nombre del emulador tiene el valor predeterminado que es "eventhubs-emulator":
"Endpoint=sb://eventhubs-emulator;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
- Los contenedores de aplicaciones de la red de puentes diferentes pueden interactuar con el emulador mediante "host.docker.internal" como host. Use la siguiente cadena de conexión:
"Endpoint=sb://host.docker.internal;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SAS_KEY_VALUE;UseDevelopmentEmulator=true;"
Al interactuar con Kafka, asegúrese de establecer la configuración de productor y consumidor como se indica a continuación:
{
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
};
El valor de BootstrapServers y SaslPassword dependerá de la topología de configuración. Consulte la sección Interactuar con el emulador para obtener más información.
Importante
Cuando se usa Kafka, solo las API de productor y consumidor son compatibles con el emulador de Event Hubs.
Para empezar, consulte los ejemplos del emulador de Event Hubs en GitHub.