Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este inicio rápido, usas la CLI de Azure para publicar eventos en un tema de espacio de nombres de Event Grid en el formato JSON de CloudEvents, y luego envías esos eventos a un manejador de Azure Event Hubs. Creas los recursos de la Grid de Eventos y los Centros de Eventos, configuras una identidad gestionada para una entrega segura y envías un evento de muestra usando cURL.
Utilizando temas de espacios de nombres de Azure Event Grid, puedes publicar eventos y entregarlos a gestores como Azure Event Hubs. Entregar eventos a los Centros de Eventos es útil cuando necesitas recopilar flujos de eventos de alto volumen o telemetría para análisis posteriores, almacenamiento o procesamiento adicional.
Si no tiene una cuenta de Azure, cree una cuenta gratuita antes de comenzar.
Prerrequisitos
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulta Quickstart for Bash in Azure Cloud Shell.
Si prefieres ejecutar comandos de referencia CLI localmente, instala la CLI de Azure. Si estás utilizando Windows o macOS, considera ejecutar CLI de Azure en un contenedor Docker. Para obtener más información, consulte Cómo ejecutar el 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. Para finalizar el proceso de autenticación, siga los pasos que se muestran en el terminal. Para otras opciones de inicio de sesión, consulta Iniciar sesión con CLI de Azure.Cuando se le solicite, instale la extensión de la CLI de Azure en el primer uso. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para ver la versión y las bibliotecas dependientes que están instaladas. Para actualizar a la versión más reciente, ejecute az upgrade.
Este inicio rápido requiere la versión 2.53.0 o posterior de la CLI de Azure. Los
az eventgrid namespacecomandos provienen de laeventgridextensión, versión 2.51.0 o posterior, que se instala automáticamente la primera vez que ejecutas uno de estos comandos. Si usa Azure Cloud Shell, la versión más reciente ya está instalada.
Habilitar el proveedor de recursos de Event Grid
Si es la primera vez que usa Event Grid en su suscripción de Azure, es posible que tenga que registrar el proveedor de recursos de Event Grid. Ejecute el siguiente comando para registrar el proveedor:
az provider register --namespace Microsoft.EventGridEl registro puede tardar unos instantes en finalizar. Para comprobar el estado, ejecute el comando siguiente:
az provider show --namespace Microsoft.EventGrid --query "registrationState"Cuando
registrationStateseaRegistered, estará preparado para continuar.
Creación de un grupo de recursos
Cree un grupo de recursos de Azure con el comando az group create. Utiliza este grupo de recursos para guardar todos los recursos que crees en este inicio rápido.
Declare una variable para contener el nombre de un grupo de recursos de Azure. Especifique un nombre para el grupo de recursos reemplazando
<your-resource-group-name>por un valor que desee.resource_group="<your-resource-group-name>"location="<your-resource-group-location>"Cree un grupo de recursos. Cambie la ubicación según su criterio.
az group create --name $resource_group --location $location
Crear un espacio de nombres de Event Grid
Un espacio de nombres de Event Grid proporciona un punto de conexión definido por el usuario al que envía sus eventos. El siguiente ejemplo crea un espacio de nombres en tu grupo de recursos usando Bash en Azure Cloud Shell. El nombre del espacio de nombres debe ser único porque forma parte de una entrada del sistema de nombres de dominio (DNS). Un nombre de espacio de nombres debe cumplir las reglas siguientes:
- Debería tener entre 3 y 50 caracteres.
- Debe ser regionalmente único.
- Los caracteres permitidos son a-z, A-Z, 0-9 y -.
- No debe empezar con prefijos de palabra clave reservados como
Microsoft,SystemoEventGrid.
Declara una variable para almacenar el nombre de tu espacio de nombres de Event Grid. Especifique un nombre para el espacio de nombres reemplazando
<your-namespace-name>por un valor que desee.namespace="<your-namespace-name>"Cree un espacio de nombres. Es posible que quiera cambiar la ubicación en la que se implementa.
az eventgrid namespace create -g $resource_group -n $namespace -l $location
Crear un tema de espacio de nombres de Event Grid
Crea un tema para almacenar todos los eventos publicados en el punto de conexión del espacio de nombres.
Declara una variable para almacenar el nombre del tema en el namespace. Especifique un nombre para el tema del espacio de nombres reemplazando
<your-topic-name>por un valor que desee.topic="<your-topic-name>"Cree el tema del espacio de nombres:
az eventgrid namespace topic create -g $resource_group -n $topic --namespace-name $namespace
Creación de un nuevo recurso de Event Hubs
Crea un recurso de Event Hubs que utilices como destino del controlador para la suscripción de entrega por envío al tema del espacio de nombres.
Declare una variable que contenga el nombre del espacio de nombres de Event Hubs.
eventHubsNamespace="<your-event-hubs-namespace-name>"Cree el espacio de nombres de Event Hubs.
az eventhubs namespace create --resource-group $resource_group --name $eventHubsNamespace --location $locationDeclara una variable para almacenar el nombre del centro de eventos.
eventHubsEventHub="<your-event-hub-name>"Ejecute el comando siguiente para crear un centro de eventos en el espacio de nombres .
az eventhubs eventhub create --resource-group $resource_group --namespace-name $eventHubsNamespace --name $eventHubsEventHub
Entrega eventos a los Event Hubs usando la identidad gestionada
Para entregar eventos a los centros de eventos de tu espacio de nombres de Centros de Eventos usando identidad gestionada, sigue estos pasos:
- Habilite la identidad administrada asignada por el sistema o asignada por el usuario: espacios de nombres. Sigue leyendo hasta la siguiente sección para descubrir cómo habilitar la identidad gestionada usando CLI de Azure.
- Agregue la identidad al rol Remitente de datos de Azure Event Hubs en el espacio de nombres de Event Hubs. Para aprender cómo añadir la asignación de rol, consulta la siguiente sección.
- Habilite el valor Allow trusted servicios Microsoft to bypass this firewall (Permitir que servicios de Microsoft de confianza omitan este firewall) en el espacio de nombres de Event Hubs.
- Configure la suscripción de eventos que usa un centro de eventos como punto de conexión para usar la identidad administrada asignada por el sistema o asignada por el usuario.
Habilitación de la identidad administrada en el espacio de nombres de Event Grid
Habilite la identidad administrada asignada por el sistema en el espacio de nombres de Event Grid.
az eventgrid namespace update --resource-group $resource_group --name $namespace --identity "{type:SystemAssigned}"
Asignar roles en Event Hubs para la identidad administrada de Event Grid
Obtenga el identificador de entidad de seguridad de identidad administrada del sistema del espacio de nombres de Event Grid.
principalId=$(az eventgrid namespace show --resource-group $resource_group --name $namespace --query identity.principalId -o tsv)Obtenga el identificador de recurso del hub de eventos de Event Hubs.
eventHubResourceId=$(az eventhubs eventhub show --resource-group $resource_group --namespace-name $eventHubsNamespace --name $eventHubsEventHub --query id -o tsv)Agregue la asignación de un rol en Event Hubs para la identidad del sistema gestionada por Event Grid.
az role assignment create --role "Azure Event Hubs Data Sender" --assignee $principalId --scope $eventHubResourceId
Creación de una suscripción a evento
Crea una suscripción de eventos de entrega push que utilice la identidad gestionada del espacio de nombres Event Grid para entregar eventos a tu centro de eventos.
event_subscription="<your-event-subscription-name>"
az eventgrid namespace topic event-subscription create --resource-group $resource_group --namespace-name $namespace --topic-name $topic --name $event_subscription --delivery-configuration "{deliveryMode:Push,push:{maxDeliveryCount:10,deliveryWithResourceIdentity:{identity:{type:SystemAssigned},destination:{endpointType:EventHub,properties:{resourceId:$eventHubResourceId}}}}}"
Envía un evento de prueba al tema del espacio de nombres
Ahora, envíe un evento de ejemplo al tema de espacio de nombres siguiendo los pasos de esta sección.
Enumeración de las claves de acceso del espacio de nombres
Obtenga las claves de acceso asociadas al espacio de nombres que creó. Utiliza uno de ellos para autenticar al publicar eventos. Para enumerar sus claves, primero necesita el id. de recurso de espacio de nombres completo. Para obtenerlo, ejecute el siguiente comando:
namespace_resource_id=$(az eventgrid namespace show -g $resource_group -n $namespace --query "id" --output tsv)Obtenga la primera clave del espacio de nombres:
key=$(az eventgrid namespace list-key -g $resource_group --namespace-name $namespace --query "key1" --output tsv)
Publicación de un evento
Recupere el nombre de host del espacio de nombres. Úsalo para configurar el punto de conexión HTTP del espacio de nombres al que envías los eventos.
publish_operation_uri="https://"$(az eventgrid namespace show -g $resource_group -n $namespace --query "topicsConfiguration.hostname" --output tsv)"/topics/"$topic:publish?api-version=2023-06-01-previewCree un evento compatible con CloudEvents de ejemplo:
event=' { "specversion": "1.0", "id": "'"$RANDOM"'", "type": "com.yourcompany.order.ordercreatedV2", "source" : "/mycontext", "subject": "orders/O-234595", "time": "'`date +%Y-%m-%dT%H:%M:%SZ`'", "datacontenttype" : "application/json", "data":{ "orderId": "O-234595", "url": "https://yourcompany.com/orders/o-234595"}} 'El elemento
dataes la carga del evento. En este campo, puede usar cualquier archivo JSON bien formado. Para más información sobre propiedades (también conocidas como atributos de contexto) que pueden aparecer en un evento, consulta las especificaciones de CloudEvents .Usa cURL para enviar el evento al tema. cURL es una utilidad que envía solicitudes HTTP.
curl -X POST -H "Content-Type: application/cloudevents+json" -H "Authorization:SharedAccessKey $key" -d "$event" $publish_operation_uriEn el Azure Portal, ve a la página Espacio de nombres de Event Hubs, actualiza la página y comprueba que el contador de mensajes entrantes del gráfico muestra que se ha recibido un evento.
Limpieza de recursos
Si ya no necesitas los recursos que creaste, elimínalos para evitar cargos adicionales. Elimina el grupo de recursos y todos los recursos que contiene:
az group delete --name $resource_group
Pasos siguientes
En este inicio rápido, creaste y configuraste el espacio de nombres de la Cuadrícula de Eventos y los recursos de los Centros de Eventos, y enviaste los eventos a un centro de eventos. Para aprender cómo recibir eventos desde un centro de eventos, consulta estos tutoriales: