Tutorial: Enrutar eventos personalizados a Conexiones híbridas de Azure Relay con la CLI de Azure y Event Grid

Azure Event Grid es un servicio de eventos para la nube. 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.

Prerrequisitos

  • 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 se representa mediante una entrada 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.

relayname=<namespace-name>
relayrg=<resource-group-for-relay>
hybridname=<hybrid-name>

relayid=$(az resource show --name $relayname --resource-group $relayrg --resource-type Microsoft.Relay/namespaces --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.

  1. Asegúrese de que tiene Visual Studio 2019 o posterior.

  2. Clone el repositorio en la máquina local.

  3. Cargue el proyecto HybridConnectionConsumer en Visual Studio.

  4. 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ó.

  5. Compile y ejecute la aplicación desde Visual Studio.

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: