Tutorial: Enrutar eventos personalizados a Conexiones híbridas de Azure Relay con la CLI de Azure y Event Grid
La solución Conexiones híbridas de Azure Relay es uno de los controladores de eventos compatibles. Las conexiones híbridas se usan como el controlador de eventos cuando es necesario procesar los eventos de las aplicaciones que no tienen un punto de conexión público. Estas aplicaciones pueden estar dentro de la red empresarial corporativa. En este artículo, se usará la CLI de Azure para crear un tema personalizado, suscribirse a él y desencadenar el evento para ver el resultado. Los eventos se envían a la conexión híbrida.
Nota:
Si no está familiarizado con Azure Event Grid, vea ¿Qué es Azure Event Grid? para obtener información general del servicio antes de realizar este tutorial.
Requisitos previos
- En este artículo, se presupone que ya tiene una conexión híbrida y una aplicación de escucha. Para empezar a trabajar con las conexiones híbridas, consulte Introducción a Conexiones híbridas de Relay: .NET o Introducción a Conexiones híbridas de Relay: nodo.
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
- En este artículo se necesita la versión 2.0.56 de la CLI de Azure, o cualquier versión posterior. Si usa Azure Cloud Shell, ya está instalada la versión más reciente.
Crear un grupo de recursos
Los temas de Event Grid son recursos de Azure y se deben colocar en un grupo de recursos de Azure. El grupo de recursos de Azure es una colección lógica en la que se implementan y administran los recursos de Azure.
Para crear un grupo de recursos, use el comando az group create.
En el ejemplo siguiente, se crea un grupo de recursos denominado gridResourceGroup en la ubicación westus2.
az group create --name gridResourceGroup --location westus2
Creación de un tema personalizado
Un tema de Event Grid proporciona un punto de conexión definido por el usuario en el que se registran los eventos. En el ejemplo siguiente se crea el tema personalizado en el grupo de recursos. Reemplace <topic_name>
por un nombre único para el tema personalizado. El nombre del tema de Event Grid debe ser único porque está representado por una entrada del sistema de nombres de dominio (DNS).
az eventgrid topic create --name <topic_name> -l westus2 -g gridResourceGroup
Suscripción a un tema personalizado
Suscríbete a un tema de cuadrícula de eventos para indicar a Event Grid los eventos cuyo seguimiento deseas realizar. En el ejemplo siguiente te suscribirás al tema personalizado que creaste y pasarás el identificador de recurso de la conexión híbrida al punto de conexión. El identificador de conexión híbrida tiene el formato siguiente:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Relay/namespaces/<relay-namespace>/hybridConnections/<hybrid-connection-name>
En el siguiente script, el identificador de recurso se obtiene del espacio de nombres de Relay. Se genera el identificador de la conexión híbrida y se suscribe a un tema de Event Grid. El script establece el tipo de punto de conexión en hybridconnection
y se usa el identificador de conexión híbrida para el punto de conexión.
relaynsname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>
relayid=$(az relay namespace show --resource-group $relayrg --name $relaynsname --query id --output tsv)
hybridid="$relayid/hybridConnections/$hybridname"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)
az eventgrid event-subscription create \
--source-resource-id $topicid \
--name <event_subscription_name> \
--endpoint-type hybridconnection \
--endpoint $hybridid \
--expiration-date "<yyyy-mm-dd>"
Tenga en cuenta que se ha establecido una fecha de expiración para la suscripción.
Creación de una aplicación para procesar eventos
Necesita una aplicación que puede recuperar eventos desde la conexión híbrida. El ejemplo de consumidor de conexión híbrida de Microsoft Azure Event Grid para C# ejecuta esa operación. Ya completó los pasos de requisitos previos.
Asegúrese de que tiene Visual Studio 2019 o posterior.
Clone el repositorio en la máquina local.
Cargue el proyecto HybridConnectionConsumer en Visual Studio.
En Program.cs, reemplace
<relayConnectionString>
y<hybridConnectionName>
por la cadena de conexión de Relay y el nombre de la conexión híbrida que creó.Compile y ejecute la aplicación desde Visual Studio.
Importante
Usamos la cadena de conexión para la autenticación en el espacio de nombres de Azure Relay para simplificar el tutorial. Recomendamos usar la autenticación de Microsoft Entra ID en entornos de producción. Al usar una aplicación, puede habilitar la identidad administrada para la aplicación y asignar a la identidad un rol adecuado (propietario de Azure Relay, agente de escucha de Azure Relay o remitente de Azure Relay) en el espacio de nombres de Relay. Para más información, consulte Autenticación de una identidad administrada con Microsoft Entra ID para acceder a recursos de Azure Relay.
Envío de un evento al tema
Vamos a desencadenar un evento para ver cómo Event Grid distribuye el mensaje al punto de conexión. En este artículo se muestra cómo usar la CLI de Azure para desencadenar el evento. De manera alternativa, puede usar la aplicación de publicador de Event Grid.
En primer lugar, vamos a obtener la dirección URL y la clave del tema personalizado. De nuevo, use su nombre de tema personalizado para <topic_name>
.
endpoint=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name <topic_name> -g gridResourceGroup --query "key1" --output tsv)
Para simplificar este artículo, usará datos de evento de ejemplo para enviar al tema personalizado. Normalmente, una aplicación o servicio de Azure enviaría los datos del evento. CURL es una utilidad que envía solicitudes HTTP. En este artículo, usará CURL para enviar el evento al tema personalizado.
event='[ {"id": "'"$RANDOM"'", "eventType": "recordInserted", "subject": "myapp/vehicles/motorcycles", "eventTime": "'`date +%Y-%m-%dT%H:%M:%S%z`'", "data":{ "make": "Ducati", "model": "Monster"},"dataVersion": "1.0"} ]'
curl -X POST -H "aeg-sas-key: $key" -d "$event" $endpoint
La aplicación de agente de escucha debe recibir el mensaje de evento.
Limpieza de recursos
Si piensa seguir trabajando con este evento, no limpie los recursos creados en este artículo. En caso contrario, use el siguiente comando para eliminar los recursos creados en este artículo.
az group delete --name gridResourceGroup
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas y eventos, aprenda más sobre cómo Event Grid puede ayudarle: