Guía de Azure Event Grid en IoT Edge
Guía de Azure Event Grid en IoT Edge
Este artículo le guía por todos los pasos necesarios para publicar eventos y suscribirse a ellos mediante Event Grid
en IoT Edge.
NOTE
Para información sobre los temas y las suscripciones de Azure Event Grid, consulte Conceptos de Event Grid.
Prerrequisitos
Para realizar este tutorial, necesitará lo siguiente:
Una suscripción a Azure : cree una cuenta gratuita si aún no tiene una.
Dispositivo Azure IoT Hub e IoT Edge : siga los pasos del inicio rápido para dispositivos Linux o Windows si
aún no tiene uno.
NOTE
En este tutorial, implementará el módulo de Event Grid sin persistencia. Esto significa que los temas y las suscripciones que
cree en este tutorial se eliminarán al volver a implementar el módulo. Para más información sobre cómo configurar la
persistencia, consulte los artículos siguientes: Persistencia del estado en Linux o Persistencia del estado en Windows. En el
caso de las cargas de trabajo de producción, se recomienda instalar el módulo de Event Grid con persistencia.
NOTE
Compruebe siempre la versión de la imagen para asegurarse de que tiene las características que necesita. Si tiene una
versión anterior de la imagen de contenedor ya extraída en el equipo, deberá especificar la etiqueta de versión que
desee o eliminar la imagen existente antes de volver a extraerla con la etiqueta :latest . Para más información sobre
las versiones y etiquetas de las imágenes, consulte las notas de la versión.
{
"Env": [
"inbound__clientAuth__clientCert__enabled=false"
],
"HostConfig": {
"PortBindings": {
"4438/tcp": [
{
"HostPort": "4438"
}
]
}
}
}
IMPORTANT
En este tutorial, implementará el módulo de Event Grid con la autenticación de cliente deshabilitada. En el caso de las
cargas de trabajo de producción, se recomienda habilitar la autenticación de cliente. Para más información sobre cómo
configurar el módulo de Event Grid de forma segura, consulte Seguridad y autenticación.
Si va a usar una máquina virtual de Azure como dispositivo perimetral, agregue una regla de puerto de entrada para
permitir tráfico entrante en el puerto 4438. Para instrucciones sobre cómo agregar la regla, consulte Apertura de
puertos en una máquina virtual.
de un tema
Como publicador de un evento, debe crear un tema de Event Grid. En Azure Event Grid, un tema hace referencia a
un punto de conexión al que los publicadores pueden enviar eventos.
1. Cree [Link] con el siguiente contenido. Para más información sobre la carga, consulte nuestra
documentación de API.
{
"name": "sampleTopic1",
"properties": {
"inputschema": "eventGridSchema"
}
}
2. Ejecute el comando siguiente para crear un tema de Event Grid. Confirme que se muestra el código de
estado HTTP 200 OK .
3. Use el siguiente comando para comprobar que se creó el tema correctamente. Se devolverá el código de
estado HTTP "200 - Correcto".
NOTE
Si necesita asegurarse de que los eventos pendientes persisten en caso de que se reinicie el dispositivo, deberá habilitar la
persistencia para la suscripción de eventos. Para más información sobre cómo configurar la persistencia, consulte los artículos
siguientes: Persistencia del estado en Linux o Persistencia del estado en Windows.
1. Cree el archivo [Link] con el siguiente contenido. Para más información sobre la carga, consulte la
Documentación de API
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "[Link]
}
}
}
}
NOTE
La propiedad endpointType especifica que el suscriptor es un webhook . La propiedad endpointUrl especifica la
dirección URL en la que el suscriptor escucha los eventos. Esta dirección URL corresponde al ejemplo de suscriptor de
Azure que implementó anteriormente.
2. Ejecute el siguiente comando para crear una suscripción para el tema. Confirme que se muestra el código de
estado HTTP 200 OK .
3. Ejecute el siguiente comando para comprobar que la suscripción se ha creado correctamente. Se devolverá
el código de estado HTTP "200 - Correcto".
curl -k -H "Content-Type: application/json" -X GET -g [Link]
here>:4438/topics/sampleTopic1/eventSubscriptions/sampleSubscription1?api-version=2019-01-01-preview
{
"id": "/iotHubs/eg-iot-edge-hub/devices/eg-edge-
device/modules/eventgridmodule/topics/sampleTopic1/eventSubscriptions/sampleSubscription1",
"type": "[Link]/eventSubscriptions",
"name": "sampleSubscription1",
"properties": {
"Topic": "sampleTopic1",
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "[Link]
}
}
}
}
Publicación de un evento
1. Cree el archivo [Link] con el siguiente contenido. Para más información sobre la carga, consulte nuestra
documentación de API.
[
{
"id": "eventId-func-0",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2019-07-28T21:03:07+00:00",
"dataVersion": "1.0",
"data": {
"make": "Ducati",
"model": "Monster"
}
}
]
Received Event:
{
"id": "eventId-func-0",
"topic": "sampleTopic1",
"subject": "myapp/vehicles/motorcycles",
"eventType": "recordInserted",
"eventTime": "2019-07-28T21:03:07+00:00",
"dataVersion": "1.0",
"metadataVersion": "1",
"data": {
"make": "Ducati",
"model": "Monster"
}
}
Limpieza de recursos
Ejecute el siguiente comando para eliminar el tema y todas sus suscripciones.
Pasos siguientes
En este tutorial, ha creado un tema y una suscripción de Event Grid y ha publicado eventos. Ahora que conoce los
pasos básicos, consulte los siguientes artículos:
Para solucionar problemas relacionados con el uso de Azure Event Grid en IoT Edge, consulte la Guía de solución
de problemas.
Cree o actualice una suscripción con filtros.
Habilite la persistencia del módulo de Event Grid en Linux o Windows.
Siga la documentación para configurar la autenticación de cliente
Reenvíe eventos a Azure Functions en la nube siguiendo este tutorial.
Reacción a eventos de Blob Storage en IoT Edge
Supervisión de temas y suscripciones en el perímetro
¿Qué es Azure Event Grid?
04/08/2020 • 9 minutes to read • Edit Online
Azure Event Grid permite crear fácilmente aplicaciones con arquitecturas basadas en eventos. En primer
lugar, seleccione el recurso de Azure al que le gustaría suscribirse y, posteriormente, asigne el
controlador de eventos o el punto de conexión de WebHook para enviar el evento. Event Grid tiene
compatibilidad integrada para eventos procedentes de los servicios de Azure, como los blobs de
almacenamiento y los grupos de recursos. Event Grid también tiene compatibilidad para sus propios
eventos mediante temas personalizados.
Puede usar filtros para enrutar eventos específicos a distintos puntos de conexión, multidifusión a varios
puntos de conexión y asegurarse de que los eventos se entregan de forma confiable.
Azure Event Grid se implementa para maximizar la disponibilidad mediante la distribución nativa por
múltiples dominios de error en cada región, y por zonas de disponibilidad (en regiones que los admiten).
Para obtener una lista de las regiones que admite Event Grid, consulte Productos disponibles por región.
Este artículo ofrece información general sobre Azure Event Grid. Para comenzar a usar rápidamente
Event Grid, consulte Creación y enrutamiento de eventos personalizados con Azure Event Grid.
En esta imagen se muestra cómo se conectan los orígenes y los controladores en Event Grid, pero no
proporciona una lista completa de las integraciones admitidas.
Orígenes de eventos
Actualmente, los siguientes servicios de Azure admiten el envío de eventos a Event Grid:
Azure App Configuration
Azure Blob Storage
Azure Container Registry
Azure Event Hubs
Azure IoT Hub
Azure Key Vault
Azure Machine Learning
Azure Maps
Azure Media Services
Grupos de recursos de Azure
Azure Service Bus
Azure SignalR
Suscripciones de Azure
Controladores de eventos
Para obtener una información completa sobre las funcionalidades de cada controlador, así como los
artículos relacionados, consulte controladores de eventos. Actualmente, los siguientes servicios de Azure
admiten el control de eventos de Event Grid:
Azure Automation
Funciones de Azure
Event Hubs
Retransmisión de conexiones híbridas
Logic Apps
Power Automate (conocido anteriormente como Microsoft Flow)
Service Bus
Queue Storage
Webhooks
Conceptos
Hay cinco conceptos en Azure Event Grid que le permiten empezar a trabajar:
Eventos : ¿qué ha ocurrido?
Orígenes de eventos : ¿dónde tuvo lugar el evento?
Temas : el punto de conexión donde los publicadores envían los eventos.
Suscripciones a eventos : el punto de conexión o mecanismo integrado para enrutar eventos, a
veces a más de un controlador. Los controladores también usan las suscripciones para filtrar los
eventos de entrada de forma inteligente.
Controladores de eventos : la aplicación o servicio que reacciona al evento.
Para más información acerca de estos conceptos, consulte Conceptos en Azure Event Grid.
Capacidades
Estas son algunas características clave de Azure Event Grid:
Simplicidad : seleccione y haga clic para conseguir eventos desde el recurso de Azure a cualquier
controlador de eventos o punto de conexión.
Filtrado avanzado : filtre por tipo de evento o por ruta de acceso del publicador del evento para
asegurarse de que los controladores de eventos solo reciben eventos pertinentes.
Distribución ramificada : suscriba varios puntos de conexión al mismo evento para enviar copias
del evento a tantos lugares como sea necesario.
Confiabilidad : 24 horas de reintento con retroceso exponencial para asegurarse de que se entregan
los eventos.
Pago por evento : pague solo por la cantidad utilizada en Event Grid.
Alto rendimiento : cree cargas de trabajo de gran volumen en Event Grid con soporte para millones
de eventos por segundo.
Eventos integrados : desarrolle y ejecute rápidamente con eventos integrados definidos por el
recurso.
Eventos personalizados : use Event Grid para enrutar, filtrar y entregar de forma confiable eventos
personalizados en su aplicación.
Para obtener una comparación de Event Grid, Event Hubs y Service Bus, vea Choose between Azure
services that deliver message (Elección entre servicios de Azure de envío mensajes).
Event Grid conecta orígenes de datos y controladores de eventos. Por ejemplo, usar Event Grid para
desencadenar una función sin servidor que analiza imágenes cuando se agregan a un contenedor de
almacenamiento de blobs.
Automatización de operaciones
Event Grid permite agilizar la automatización y simplificar el cumplimiento de directivas. Por ejemplo,
puede usar Event Grid para enviar una notificación a Azure Automation cuando se crea una máquina
virtual o una base de datos en Azure SQL. Use los eventos para comprobar de forma automática que la
configuración del servicio es compatible, poner metadatos en herramientas de operaciones, etiquetar
máquinas virtuales o archivar elementos de trabajo.
Integración de aplicaciones
Event Grid conecta su aplicación con otros servicios. Por ejemplo, cree un tema personalizado para
enviar los datos de eventos de su aplicación a Event Grid y aprovechar la entrega confiable, el
enrutamiento avanzado y la integración directa con Azure que ofrece. También puede usar Event Grid
con Logic Apps para procesar datos en cualquier parte, sin necesidad de escribir código.
Pasos siguientes
Enrutamiento de los eventos de Storage Blob
Permite responder a los eventos de Storage Blob mediante Event Grid.
Crear eventos personalizados y suscribirse a ellos
Para comenzar de inmediato y empezar a enviar sus propios eventos personalizados a cualquier
punto de conexión con el inicio rápido de Azure Event Grid.
Uso de Logic Apps como controlador de eventos
Tutorial sobre la creación de una aplicación con Logic Apps para reaccionar ante eventos enviados
por Event Grid.
Transmisión de macrodatos a un almacén de datos
Tutorial en el que se usa Azure Functions para transmitir datos desde Event Hubs al SQL Data
Warehouse.
Referencia de la API de REST de Event Grid
Proporciona contenido de referencia para la administración de suscripciones a eventos, el
enrutamiento y el filtrado.
Elija entre los servicios de mensajería de Azure: Event
Grid, Event Hubs y Service Bus
04/08/2020 • 10 minutes to read • Edit Online
Azure ofrece tres servicios que le ayudan en la entrega de mensajes de evento en una solución. Estos servicios son
los siguientes:
Event Grid
Event Hubs
Service Bus
Aunque son similares, cada servicio se designa para escenarios determinados. Este artículo describe las diferencias
entre estos servicios y le ayuda a entender cuál elegir para su aplicación. En muchos casos, los servicios de
mensajería son complementarios y se pueden usar conjuntamente.
Comparación de servicios
SERVIC IO P RO P Ó SITO T IP O C UÁ N DO SE USA
Event Grid Programación reactiva Distribución de eventos Reacción ante los cambios
(discretos) de estado
Event Grid
Event Grid es un panel posterior de eventos que habilita la programación orientada a eventos y reactiva. Utiliza un
modelo de publicación-suscripción. Los publicadores emiten eventos, pero no tienen expectativas sobre qué
eventos se administran. Los suscriptores deciden qué eventos quieren administrar.
Event Grid está totalmente integrado con los servicios de Azure y puede integrarse con servicios de terceros.
Simplifica el consumo de eventos y reduce los costos mediante la eliminación de la necesidad de un sondeo
constante. Event Grid enruta de forma eficiente y fiable eventos desde recursos de Azure y que no son de Azure.
Distribuye los eventos a los puntos de conexión del suscriptor registrado. El mensaje de evento tiene la
información que necesita para reaccionar a los cambios en los servicios y aplicaciones. Event Grid no es una
canalización de datos y no entrega el objeto real que se ha actualizado.
Event Grid admite colas de mensajes fallidos para los eventos que no se pueden entregar en un punto de
conexión.
Tiene las siguientes características:
dinámicamente escalable
bajo costo
sin servidor
al menos una entrega
Event Hubs
Azure Event Hubs es una canalización de macrodatos. Facilita la captura, la retención y la reproducción de los datos
de streaming de eventos y telemetría. Los datos pueden proceder de distintos orígenes simultáneos. Event Hubs
permite que los datos de telemetría y eventos estén disponibles para una variedad de servicios de análisis e
infraestructuras de procesamiento de streaming. Está disponible como transmisiones de datos o lotes de eventos
agrupados. Este servicio proporciona una solución única que permite una recuperación de datos rápida para el
procesamiento en tiempo real, así como una reproducción repetida de los datos sin procesar almacenados. Puede
capturar los datos de streaming en un archivo para su procesamiento y análisis.
Tiene las siguientes características:
baja latencia
capacidad de recibir y procesar millones de eventos por segundo
al menos una entrega
Azure Service Bus
Service Bus se ha diseñado para aplicaciones empresariales tradicionales. Estas aplicaciones empresariales
requieren transacciones, ordenación, detección de duplicados y coherencia inmediata. Service Bus permite que las
aplicaciones nativas de la nube proporcionen una administración de transición de estado de confianza para los
procesos empresariales. Cuando se administran mensajes de gran valor que no se pueden perder o duplicarse, use
Azure Service Bus. Service Bus también facilita la comunicación de alta seguridad en soluciones híbridas en la
nube y pueden conectar sistema locales existentes a soluciones en la nube.
Service Bus es un sistema de mensajería asincrónica. Almacena los mensajes en un "agente" (por ejemplo, una
cola) hasta que la parte consumidora esté preparada para recibirlos.
Tiene las siguientes características:
entrega de mensajes asincrónica de confianza (mensajería empresarial como servicio) que requiere el sondeo.
características de mensajería avanzada, como FIFO, procesamiento por lotes o sesiones, transacciones, colas de
mensajes fallidos, control temporal, enrutamiento y filtrado, y detección de duplicados
al menos una entrega
entrega en orden opcional
Pasos siguientes
Vea los artículos siguientes:
Opciones de mensajería asincrónica en Azure
Events, Data Points, and Messages - Choosing the right Azure messaging service for your data (Eventos, puntos
de datos y mensajes - Elección del servicio de mensajería de Azure adecuado para los datos).
Colas de Storage y de Service Bus: comparación y diferencias
Para comenzar a usar rápidamente Event Grid, vea Creación y enrutamiento de eventos personalizados con
Azure Event Grid.
Para comenzar a usar Event Hubs, vea Creación de un espacio de nombres de Event Hubs y un centro de
eventos con Azure Portal.
Para comenzar a usar Service Bus, vea Creación de un espacio de nombres de Service Bus mediante Azure
Portal.
Novedades de Azure Event Grid
04/08/2020 • 6 minutes to read • Edit Online
Reciba notificaciones para volver a visitar esta página y obtener actualizaciones; para ello, copie y pegue la
dirección URL
[Link] en el
lector de fuentes.
En Azure Event Grid se realizan mejoras de forma continua. Para mantenerse al día de los avances más recientes,
este artículo proporciona información acerca de los elementos siguientes:
Versiones más recientes
Problemas conocidos
Corrección de errores
Funciones obsoletas
Planes de cambios
6.0.0 (2020-06)
Agregue compatibilidad a la nueva versión 2020-06-01 de la API de servicio de disponibilidad general.
Las nuevas características que han pasado a tener disponibilidad general son:
Asignaciones de entradas
Esquema de entrada personalizado
Esquema de eventos en la nube v10
Tema de Service Bus como destino
Función de Azure como destino
Procesamiento por lotes de webhooks
Webhook seguro (soporte técnico de Azure Active Directory)
Filtrado de IP
Soporte técnico del servicio Private Link
Esquema de entrega de eventos
5.3.2-preview (2020-05)
Esta versión incluye correcciones de errores adicionales para mejorar la calidad.
Como la versión 5.3.1-preview, esta versión corresponde a la versión de API 2020-04-01-preview, que incluye
las siguientes funcionalidades nuevas:
Compatibilidad con el filtrado de IP al publicar eventos en dominios y temas
Temas de asociados
Temas del sistema como recursos en seguimiento en Azure Portal
Entrega de evento con Managed Service Identity
Soporte técnico del servicio Private Link
5.3.0-preview (2020-03)
Incorporamos nuevas características sobre las características ya agregadas en la versión 5.2.0-preview.
Como la versión de 5.2.0-preview, esta versión corresponde a la versión de API 2020-04-01-Preview.
Agrega compatibilidad con las siguientes funcionalidades nuevas:
Compatibilidad con el filtrado de IP al publicar eventos en dominios y temas
Temas de asociados
Temas del sistema como recursos en seguimiento en Azure Portal
Entrega de evento con Managed Service Identity
Soporte técnico del servicio Private Link
5.2.0-preview (2020-01)
Esta versión corresponde a la versión de API 2020-04-01-preview.
Agrega compatibilidad con la siguiente funcionalidad nueva:
Compatibilidad con el filtrado de IP al publicar eventos en dominios y temas
5.0.0 (2019-05)
Esta versión corresponde a la versión de API 2019-06-01 .
Agrega compatibilidad con las siguientes funcionalidades nuevas:
Dominios
Paginación y filtro de búsqueda para las operaciones de lista de recursos. Para obtener un ejemplo,
consulte Temas: Lista por suscripción.
Cola de Service Bus como destino
Filtrado avanzado
4.1.0-preview (2019-03)
Esta versión corresponde a la versión de API 2019-02-01-preview.
Agrega compatibilidad con las siguientes funcionalidades nuevas:
Paginación y filtro de búsqueda para las operaciones de lista de recursos. Para obtener un ejemplo,
consulte Temas: Lista por suscripción.
Temas de creación y eliminación manual de dominios
Cola de Service Bus como destino
4.0.0 (2018-12)
Esta versión corresponde a la versión de API 2019-01-01 estable.
Admite la disponibilidad general de las siguientes funcionalidades relacionadas con las suscripciones a eventos:
Destino de la cola de mensajes fallidos
Cola de Azure Storage como destino
Azure Relay: Conexiones híbridas como destino
Validación manual del protocolo de enlace
Compatibilidad con directivas de reintento
Todavía se puede acceder a las características que aún están en versión preliminar (como los dominios de Event
Grid o la compatibilidad con filtros avanzados mediante la versión 3.0.1-preview del SDK.
3.0.1-preview (2018-10)
Dependencia de la versión 10.0.3 del paquete NuGet de Newtonsoft.
3.0.0-preview (2018-10)
Esta versión es un SDK de versión preliminar para las nuevas características introducidas en la versión de API
2018-09-15-preview. Esta versión incluye compatibilidad con:
Dominios y temas de dominio
Presentación de fecha de expiración para la suscripción de eventos
Presentación de filtrado avanzado para suscripciones de eventos
La versión estable del SDK que tiene como destino la versión de API 2018-01-01 sigue existiendo como
versión 1.3.0
Pasos siguientes
Inicio rápido: Enrutamiento de eventos de Blob
Storage a un punto de conexión web personalizado
con Azure Portal
04/08/2020 • 11 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. En este artículo, se usará Azure Portal para crear una
cuenta de Blob Storage, suscribirse a eventos de Blob Storage y desencadenar un evento para ver el resultado. Por
lo general, se envían eventos a un punto de conexión que procesa los datos del evento y realiza acciones. Sin
embargo, para simplificar en este artículo, los eventos se envían a una aplicación web que recopila y muestra los
mensajes.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Cuando haya terminado, verá que los datos del evento se han enviado a la aplicación web.
NOTE
Solo las cuentas de almacenamiento de tipo StorageV2 (uso general v2) y BlobStorage admiten la
integración de eventos. Storage (uso general v1) no admite la integración con Event Grid.
3. La implementación puede tardar unos minutos en completarse. Seleccione Alertas (el icono de la campana)
en el portal y, después, seleccione Ir al grupo de recursos .
4. En la página Grupo de recursos , en la lista de recursos, seleccione la aplicación web que ha creado. En esta
lista también se ven el plan de App Service y la cuenta de almacenamiento.
5. En la página App Ser vice de la aplicación web, seleccione la dirección URL para ir al sitio web. La dirección
URL debe tener este formato: [Link] .
6. Confirme que ve el sitio, pero que aún no se han publicado eventos en él.
2. Seleccione + Contenedor . Asigne un nombre al contenedor, use cualquier nivel de acceso, y seleccione
Crear .
4. Para cargar un archivo, seleccione Cargar . En la página Cargar blob , busque y seleccione el archivo que
desea cargar para las pruebas y, después, seleccione Cargar en la página.
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas personalizados y eventos, aprenda más acerca de cómo puede
ayudarle Event Grid:
Una introducción a Azure Event Grid
Enrutamiento de eventos de Blob Storage a un punto de conexión web personalizado
Supervisión de los cambios en máquinas virtuales con Azure Event Grid y Logic Apps
Transmisión de macrodatos a un almacén de datos
Inicio rápido: Enrutamiento de eventos de
almacenamiento a un punto de conexión web con
la CLI de Azure
04/08/2020 • 11 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. En este artículo, se usa la CLI de Azure para suscribirse
a los eventos de Blob Storage y desencadenar el evento para ver el resultado.
Por lo general, se envían eventos a un punto de conexión que procesa los datos del evento y realiza acciones. Sin
embargo, para simplificar en este artículo, los eventos se envían a una aplicación web que recopila y muestra los
mensajes.
Al completar los pasos descritos en este artículo, verá que los datos del evento se han enviado a la aplicación
web.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
sitename=<your-site-name>
La implementación puede tardar unos minutos en completarse. Después de que la implementación se haya
realizado correctamente, puede ver la aplicación web para asegurarse de que se está ejecutando. En un
explorador web, vaya a: [Link]
Debería ver el sitio, que no muestra ningún mensaje actualmente.
Puede tardar unos instantes en finalizarse el registro. Para comprobar el estado, ejecute:
Vuelva a la aplicación web y observe que se ha enviado un evento de validación de suscripción. Seleccione el
icono del ojo para expandir los datos del evento. Event Grid envía el evento de validación para que el punto de
conexión pueda verificar que desea recibir datos de eventos. La aplicación web incluye código para validar la
suscripción.
export AZURE_STORAGE_ACCOUNT=<storage_account_name>
export AZURE_STORAGE_ACCESS_KEY="$(az storage account keys list --account-name <storage_account_name> --
resource-group <resource_group_name> --query "[0].value" --output tsv)"
touch [Link]
az storage blob upload --file [Link] --container-name testcontainer --name [Link]
Ha desencadenado el evento y Event Grid ha enviado el mensaje al punto de conexión que configuró al realizar
la suscripción. Vaya a la aplicación web para ver el evento que acaba de enviar.
[{
"topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/resourceGroups/myrg/providers/[Link]/storageAccounts/myblobstorageaccount",
"subject": "/blobServices/default/containers/testcontainer/blobs/[Link]",
"eventType": "[Link]",
"eventTime": "2017-08-16T20:33:51.0595757Z",
"id": "4d96b1d4-0001-00b3-58ce-16568c064fab",
"data": {
"api": "PutBlockList",
"clientRequestId": "d65ca2e2-a168-4155-b7a4-2c925c18902f",
"requestId": "4d96b1d4-0001-00b3-58ce-16568c000000",
"eTag": "0x8D4E4E61AE038AD",
"contentType": "text/plain",
"contentLength": 0,
"blobType": "BlockBlob",
"url": "[Link]
"sequencer": "00000000000000EB0000000000046199",
"storageDiagnostics": {
"batchId": "dffea416-b46e-4613-ac19-0371c0c5e352"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
Limpieza de recursos
Si planea seguir trabajando con esta cuenta de almacenamiento y suscripción de eventos, no elimine los
recursos creados en este artículo. Si no va a continuar, use el siguiente comando para eliminar los recursos
creados en este artículo.
Sustituya <resource_group_name> por el nombre del grupo de recursos que ha creado.
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas y eventos, obtenga más información acerca de los eventos de
Blob Storage y lo que Event Grid puede ayudarle a hacer:
Reacción a eventos de Blob Storage
Una introducción a Azure Event Grid
Inicio rápido: Enrutamiento de eventos de
almacenamiento a un punto de conexión web con
PowerShell
04/08/2020 • 10 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. En este artículo, aprenderá a usar Azure PowerShell para
suscribirse a los eventos de Blob Storage, desencadenar un evento y ver el resultado.
Por lo general, se envían eventos a un punto de conexión que procesa los datos del evento y realiza acciones. Sin
embargo, para simplificar en este artículo, los eventos se envían a una aplicación web que recopila y muestra los
mensajes.
Cuando haya terminado, verá que los datos del evento se han enviado a la aplicación web.
Configurar
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de AzureRM
que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más información acerca del
nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación
del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la instalación del módulo Az, consulte
Instalación de Azure PowerShell.
Para este artículo es necesario ejecutar la versión más reciente de Azure PowerShell. Si necesita instalarlas o
actualizarlas, vea Install and configure Azure PowerShell (Instalación y configuración de Azure PowerShell).
Connect-AzAccount
Este ejemplo utiliza westus2 y almacena la selección en una variable que se puede usar en todo momento.
$location = "westus2"
$resourceGroup = "gridResourceGroup"
New-AzResourceGroup -Name $resourceGroup -Location $location
NOTE
Los nombres de cuenta de almacenamiento están en un espacio de nombres global, por lo que necesita anexar algunos
caracteres aleatorios al nombre que se proporciona en este script.
$storageName = "gridstorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name $storageName `
-Location $location `
-SkuName Standard_LRS `
-Kind BlobStorage `
-AccessTier Hot
$ctx = $[Link]
$sitename="<your-site-name>"
New-AzResourceGroupDeployment `
-ResourceGroupName $resourceGroup `
-TemplateUri "[Link]
viewer/master/[Link]" `
-siteName $sitename `
-hostingPlanName viewerhost
La implementación puede tardar unos minutos en completarse. Después de que la implementación se haya
realizado correctamente, puede ver la aplicación web para asegurarse de que se está ejecutando. En un explorador
web, vaya a: [Link]
Debería ver el sitio, que no muestra ningún mensaje actualmente.
Puede tardar unos instantes en finalizarse el registro. Para comprobar el estado, ejecute:
New-AzEventGridSubscription `
-EventSubscriptionName gridBlobQuickStart `
-Endpoint $endpoint `
-ResourceId $storageId
Vuelva a la aplicación web y observe que se ha enviado un evento de validación de suscripción. Seleccione el icono
del ojo para expandir los datos del evento. Event Grid envía el evento de validación para que el punto de conexión
pueda verificar que desea recibir datos de eventos. La aplicación web incluye código para validar la suscripción.
$containerName = "gridcontainer"
New-AzStorageContainer -Name $containerName -Context $ctx
Ha desencadenado el evento y Event Grid ha enviado el mensaje al punto de conexión que configuró al realizar la
suscripción. Vaya a la aplicación web para ver el evento que acaba de enviar.
[{
"topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/resourceGroups/myrg/providers/[Link]/storageAccounts/myblobstorageaccount",
"subject": "/blobServices/default/containers/gridcontainer/blobs/[Link]",
"eventType": "[Link]",
"eventTime": "2017-08-16T20:33:51.0595757Z",
"id": "4d96b1d4-0001-00b3-58ce-16568c064fab",
"data": {
"api": "PutBlockList",
"clientRequestId": "Azure-Storage-PowerShell-d65ca2e2-a168-4155-b7a4-2c925c18902f",
"requestId": "4d96b1d4-0001-00b3-58ce-16568c000000",
"eTag": "0x8D4E4E61AE038AD",
"contentType": "application/octet-stream",
"contentLength": 0,
"blobType": "BlockBlob",
"url": "[Link]
"sequencer": "00000000000000EB0000000000046199",
"storageDiagnostics": {
"batchId": "dffea416-b46e-4613-ac19-0371c0c5e352"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
Limpieza de recursos
Si planea seguir trabajando con esta cuenta de almacenamiento y suscripción de eventos, no elimine los recursos
creados en este artículo. Si no va a continuar, use el siguiente comando para eliminar los recursos creados en este
artículo.
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas y eventos, obtenga más información acerca de los eventos de
Blob Storage y lo que Event Grid puede ayudarle a hacer:
Reacción a eventos de Blob Storage
Una introducción a Azure Event Grid
Enrutamiento de eventos de almacenamiento de
blobs a un punto de conexión web mediante una
plantilla de Resource Manager
04/08/2020 • 7 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. En este artículo, se usará una plantilla de Azure Resource
Manager para crear una cuenta de almacenamiento de blobs, suscribirse a eventos de ese almacenamiento de
blobs y desencadenar un evento para ver el resultado. Por lo general, se envían eventos a un punto de conexión
que procesa los datos del evento y realiza acciones. Sin embargo, para simplificar en este artículo, los eventos se
envían a una aplicación web que recopila y muestra los mensajes.
Una plantilla de Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define la
infraestructura y la configuración del proyecto. La plantilla usa sintaxis declarativa, lo que permite establecer lo que
pretende implementar sin tener que escribir la secuencia de comandos de programación para crearla.
Si su entorno cumple los requisitos previos y está familiarizado con el uso de plantillas de Resource Manager,
seleccione el botón Implementar en Azure . La plantilla se abrirá en Azure Portal.
Requisitos previos
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Creación de un punto de conexión de mensaje
Antes de suscribirse a los eventos de Blob Storage, vamos a crear el punto de conexión para el mensaje del evento.
Normalmente, el punto de conexión realiza acciones en función de los datos del evento. Para simplificar esta guía
de inicio rápido, se implementa una aplicación web pregenerada que muestra los mensajes de los eventos. La
solución implementada incluye un plan de App Service, una aplicación web de App Service y el código fuente
desde GitHub.
1. Seleccione Deploy to Azure (Implementar en Azure) para implementar la solución en su suscripción. En
Azure Portal, proporcione valores para los parámetros.
Implementación en Azure
2. La implementación puede tardar unos minutos en completarse. Después de que la implementación se haya
realizado correctamente, puede ver la aplicación web para asegurarse de que se está ejecutando. En un
explorador web, vaya a: [Link]
3. Verá el sitio, pero aún no se ha publicado en él ningún evento.
Revisión de la plantilla
La plantilla usada en este inicio rápido forma parte de las plantillas de inicio rápido de Azure.
{
"$schema": "[Link]
"contentVersion": "[Link]",
"parameters": {
"storageName": {
"type": "string",
"defaultValue": "[concat('storage', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Provide a unique name for the Blob Storage account."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Provide a location for the Blob Storage account that supports Event Grid."
}
},
"eventSubName": {
"type": "string",
"defaultValue": "subToStorage",
"metadata": {
"description": "Provide a name for the Event Grid subscription."
}
},
"endpoint": {
"type": "string",
"metadata": {
"description": "Provide the URL for the WebHook to receive events. Create your own endpoint
for events."
}
},
"systemTopicName": {
"type": "String",
"defaultValue": "mystoragesystemtopic",
"metadata": {
"description": "Provide a name for the system topic."
}
}
},
"resources": [
{
"name": "[parameters('storageName')]",
"type": "[Link]/storageAccounts",
"apiVersion": "2017-10-01",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"location": "[parameters('location')]",
"tags": {},
"properties": {
"accessTier": "Hot"
}
},
{
"name": "[parameters('systemTopicName')]",
"type": "[Link]/systemTopics",
"apiVersion": "2020-04-01-preview",
"location": "[parameters('location')]",
"dependsOn": [
"[parameters('storageName')]"
],
"properties": {
"source": "[resourceId('[Link]/storageAccounts', parameters('storageName'))]",
"topicType": "[Link]"
}
},
{
"type": "[Link]/systemTopics/eventSubscriptions",
"apiVersion": "2020-04-01-preview",
"name": "[concat(parameters('systemTopicName'), '/', parameters('eventSubName'))]",
"dependsOn": [
"[resourceId('[Link]/systemTopics', parameters('systemTopicName'))]"
],
"properties": {
"destination": {
"properties": {
"endpointUrl": "[parameters('endpoint')]"
},
"endpointType": "WebHook"
},
"filter": {
"includedEventTypes": [
"[Link]",
"[Link]"
]
}
}
}
]
}
Implementación de la plantilla
1. Seleccione el vínculo siguiente para iniciar sesión en Azure y abrir una plantilla. La plantilla crea un almacén
de claves y un secreto.
NOTE
Puede encontrar aquí más ejemplos de plantillas de Azure Event Grid.
Validación de la implementación
Vuelva a la aplicación web y observe que se ha enviado un evento de validación de suscripción. Seleccione el icono
del ojo para expandir los datos del evento. Event Grid envía el evento de validación para que el punto de conexión
pueda verificar que desea recibir datos de eventos. La aplicación web incluye código para validar la suscripción.
Ahora, vamos a desencadenar un evento para ver cómo Event Grid distribuye el mensaje al punto de conexión.
Desencadenará un evento para Blob Storage mediante la carga de un archivo. El archivo no necesita ningún
contenido específico. En los artículos se da por hecho que tiene un archivo llamado [Link], pero puede usar
cualquier archivo.
Al cargar el archivo en el almacenamiento de blobs de Azure, Event Grid envía un mensaje al punto de conexión
que configuró al suscribirse. El mensaje está en formato JSON y contiene una matriz con uno o más eventos. En el
ejemplo siguiente, el mensaje JSON contiene una matriz con un evento. Vea la aplicación web y observe que se ha
recibido un evento de blob creado.
Limpieza de recursos
Cuando ya no necesite, elimine el grupo de recursos.
Pasos siguientes
Para más información sobre las plantillas de Azure Resource Manager, consulte los artículos siguientes:
Documentación de Azure Resource Manager
Definición de recursos en plantillas de Azure Resource Manager
Plantillas de inicio rápido de Azure
Plantillas de Azure Event Grid
Inicio rápido: Enrutamiento de eventos
personalizados a puntos de conexión web con Azure
Portal y Event Grid
04/08/2020 • 15 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. En este artículo, se usa Azure Portal para crear un tema
personalizado, suscribirse al tema y desencadenar el evento para ver el resultado. Por lo general, se envían eventos
a un punto de conexión que procesa los datos del evento y realiza acciones. Sin embargo, para simplificar en este
artículo, los eventos se envían a una aplicación web que recopila y muestra los mensajes.
Requisitos previos
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
7. Ahora verá la página Tema de Event Grid del tema. Mantenga esta página abierta. La usará más adelante
en este inicio rápido.
2. La implementación puede tardar unos minutos en completarse. Después de que la implementación se haya
realizado correctamente, puede ver la aplicación web para asegurarse de que se está ejecutando. En un
explorador web, vaya a: [Link]
Si se produce un error en la implementación, compruebe el mensaje de error. Puede deberse a que ya se ha
utilizado el nombre del sitio web. Vuelva a implementar la plantilla y elija un nombre diferente para el sitio.
3. Verá el sitio, pero aún no se ha publicado en él ningún evento.
endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --
output tsv)
4. Ejecute el siguiente comando para obtener la clave para el tema personalizado: Después de copiar y pegar
el comando, actualice el nombre del tema y el nombre del grupo de recursos antes de ejecutar el
comando. Esta es la clave principal del tema de Event Grid. Para obtener esta clave en Azure Portal, cambie a
la pestaña Claves de acceso de la página Tema de Event Grid . Para poder publicar un evento en un
tema personalizado, necesita la clave de acceso.
key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output
tsv)
6. Ejecute el siguiente comando de CURL para publicar el evento: En el comando, el encabezado aeg-sas-key
se establece en la clave de acceso que obtuvo anteriormente.
Azure PowerShell
El segundo ejemplo usa PowerShell para realizar pasos similares.
1. En Azure Portal, seleccione Cloud Shell (o vaya a [Link] ). Cloud Shell se abre en el
panel inferior del explorador web.
2. En Cloud Shell , seleccione PowerShell en la esquina superior izquierda de la ventana Cloud Shell. Vea el
la imagen de la ventana Cloud Shell del ejemplo en la sección de la CLI de Azure.
3. Establezca las siguientes variables. Después de copiar y pegar cada comando, actualice el nombre del
tema y el nombre del grupo de recursos antes de ejecutar el comando:
Grupo de recursos :
4. Ejecute los siguientes comandos para obtener el punto de conexión y las claves del tema:
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Limpieza de recursos
Si piensa seguir trabajando con este evento, no limpie los recursos creados en este artículo. De lo contrario,
elimine los recursos que ha creado en este artículo.
1. Seleccione Grupos de recursos en el menú de la izquierda. Si no lo ve en el menú izquierdo, seleccione
Todos los ser vicios en el menú de la izquierda y, después, seleccione Grupos de recursos .
2. Seleccione el grupo de recursos para iniciar la página Grupo de recursos .
3. Seleccione Eliminar grupo de recursos en la barra de herramientas.
4. Confirme la eliminación; para ello, escriba el nombre del grupo de recursos y seleccione Eliminar .
El otro grupo de recursos que se ve en la imagen ha sido creado y utilizado por la ventana Cloud Shell.
Elimínelo si no va a usar la ventana Cloud Shell más adelante.
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas personalizados y eventos, aprenda más acerca de cómo puede
ayudarle Event Grid:
Una introducción a Azure Event Grid
Enrutamiento de eventos de Blob Storage a un punto de conexión web personalizado
Supervisión de los cambios en máquinas virtuales con Azure Event Grid y Logic Apps
Transmisión de macrodatos a un almacén de datos
Inicio rápido: Enrutamiento de eventos
personalizados al punto de conexión de web con la
CLI de Azure y Event Grid
04/08/2020 • 11 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. 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.
Por lo general, se envían eventos a un punto de conexión que procesa los datos del evento y realiza acciones.
Sin embargo, para simplificar en este artículo, los eventos se envían a una aplicación web que recopila y
muestra los mensajes.
Cuando haya terminado, verá que los datos del evento se han enviado a la aplicación web.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Puede tardar unos instantes en finalizarse el registro. Para comprobar el estado, ejecute:
topicname=<your-topic-name>
sitename=<your-site-name>
La implementación puede tardar unos minutos en completarse. Después de que la implementación se haya
realizado correctamente, puede ver la aplicación web para asegurarse de que se está ejecutando. En un
explorador web, vaya a: [Link]
Debería ver el sitio, que no muestra ningún mensaje actualmente.
endpoint=[Link]
Vuelva a la aplicación web y observe que se ha enviado un evento de validación de suscripción. Seleccione el
icono del ojo para expandir los datos del evento. Event Grid envía el evento de validación para que el punto de
conexión pueda verificar que desea recibir datos de eventos. La aplicación web incluye código para validar la
suscripción.
Envío de un evento al tema personalizado
Vamos a desencadenar un evento para ver cómo Event Grid distribuye el mensaje al punto de conexión. En
primer lugar, vamos a obtener la dirección URL y la clave del tema personalizado.
endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -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. En el ejemplo siguiente se crean
datos de evento de ejemplo:
El elemento data del archivo JSON es la carga del evento. En este campo, puede usar cualquier archivo JSON
bien formado. También puede usar el campo de asunto para realizar enrutamiento y filtrado avanzados.
CURL es una utilidad que envía solicitudes HTTP. En este artículo, use CURL para enviar el evento al tema.
Ha desencadenado el evento y Event Grid ha enviado el mensaje al punto de conexión que configuró al realizar
la suscripción. Vaya a la aplicación web para ver el evento que acaba de enviar.
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2017-08-10T21:03:07+00:00",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0",
"metadataVersion": "1",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/topics/{topic}"
}]
Limpieza de recursos
Si piensa seguir trabajando con este evento o con la aplicación de visualización de eventos, 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.
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas y eventos, aprenda más sobre cómo Event Grid puede
ayudarle:
Una introducción a Azure Event Grid
Enrutamiento de eventos de Blob Storage a un punto de conexión web personalizado
Supervisión de los cambios en máquinas virtuales con Azure Event Grid y Logic Apps
Transmisión de macrodatos a un almacén de datos
Inicio rápido: Enrutamiento de eventos
personalizados al punto de conexión web con
PowerShell y Event Grid
04/08/2020 • 9 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. En este artículo, se usa Azure PowerShell para crear un
tema personalizado, suscribirse al tema y desencadenar el evento para ver el resultado. Por lo general, se envían
eventos a un punto de conexión que procesa los datos del evento y realiza acciones. Sin embargo, para simplificar
en este artículo, los eventos se envían a una aplicación web que recopila y muestra los mensajes.
Cuando haya terminado, verá que los datos del evento se han enviado a la aplicación web.
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de AzureRM
que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más información acerca del
nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación
del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la instalación del módulo Az, consulte
Instalación de Azure PowerShell.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Para este artículo es necesario ejecutar la versión más reciente de Azure PowerShell. Si necesita instalarlas o
actualizarlas, vea Install and configure Azure PowerShell (Instalación y configuración de Azure PowerShell).
Puede tardar unos instantes en finalizarse el registro. Para comprobar el estado, ejecute:
$topicname="<your-topic-name>"
$sitename="<your-site-name>"
New-AzResourceGroupDeployment `
-ResourceGroupName gridResourceGroup `
-TemplateUri "[Link]
viewer/master/[Link]" `
-siteName $sitename `
-hostingPlanName viewerhost
La implementación puede tardar unos minutos en completarse. Después de que la implementación se haya
realizado correctamente, puede ver la aplicación web para asegurarse de que se está ejecutando. En un explorador
web, vaya a: [Link]
Debería ver el sitio, que no muestra ningún mensaje actualmente.
Suscripción a un tema
Suscríbase a un tema que indique a Event Grid los eventos cuyo seguimiento desea realizar y el lugar al que deben
enviarse dichos eventos. En el ejemplo siguiente se suscribirá al tema que ha creado y pasará la dirección URL de la
aplicación web como punto de conexión para la notificación de eventos.
El punto de conexión de la aplicación web debe incluir el sufijo /api/updates/ .
$endpoint="[Link]
New-AzEventGridSubscription `
-EventSubscriptionName demoViewerSub `
-Endpoint $endpoint `
-ResourceGroupName gridResourceGroup `
-TopicName $topicname
Vuelva a la aplicación web y observe que se ha enviado un evento de validación de suscripción. Seleccione el icono
del ojo para expandir los datos del evento. Event Grid envía el evento de validación para que el punto de conexión
pueda verificar que desea recibir datos de eventos. La aplicación web incluye código para validar la suscripción.
Para simplificar este artículo, se van a configurar datos de evento de ejemplo al tema personalizado. Normalmente,
una aplicación o servicio de Azure enviaría los datos del evento. El ejemplo siguiente utiliza una tabla hash para
construir los datos del evento htbody y, a continuación, convertirlos en el objeto de carga JSON $body con un
formato correcto:
En $body verá el evento completo. El elemento data del archivo JSON es la carga del evento. En este campo,
puede usar cualquier archivo JSON bien formado. También puede usar el campo de asunto para realizar
enrutamiento y filtrado avanzados.
Ahora, envíe el evento al tema.
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Ha desencadenado el evento y Event Grid ha enviado el mensaje al punto de conexión que configuró al realizar la
suscripción. Vaya a la aplicación web para ver el evento que acaba de enviar.
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2018-01-25T15:58:13",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0",
"metadataVersion": "1",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/topics/{topic}"
}]
Limpieza de recursos
Si piensa seguir trabajando con este evento o con la aplicación de visualización de eventos, 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.
Azure Event Grid es un servicio de eventos para la nube. Azure Functions es uno de los controladores de eventos
compatibles. En este artículo, se usa Azure Portal para crear un tema personalizado, suscribirse al tema y
desencadenar el evento para ver el resultado. Los eventos se envían a una instancia de Azure Functions.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Una vez que haya instalado la extensión, haga clic en Continuar, asigne un nombre a la función y pulse Crear.
endpoint=$(az eventgrid topic show --name <topic name> -g <resource group name> --query "endpoint" --
output tsv)
3. Ejecute el siguiente comando para obtener la clave para el tema personalizado: Después de copiar y pegar
el comando, actualice el nombre del tema y el nombre del grupo de recursos antes de ejecutar el
comando.
key=$(az eventgrid topic key list --name <topic name> -g <resource group name> --query "key1" --output
tsv)
Azure PowerShell
El segundo ejemplo usa PowerShell para realizar pasos similares.
1. En Azure Portal, seleccione Cloud Shell (o vaya a [Link] ). Seleccione PowerShell en la
esquina superior izquierda de la ventana Cloud Shell. Vea el la imagen de la ventana Cloud Shell del
ejemplo en la sección de la CLI de Azure.
2. Establezca las siguientes variables. Después de copiar y pegar cada comando, actualice el nombre del
tema y el nombre del grupo de recursos antes de ejecutar el comando:
3. Ejecute los siguientes comandos para obtener el punto de conexión y las claves del tema:
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
El otro grupo de recursos que se ve en la imagen ha sido creado y utilizado por la ventana Cloud Shell.
Elimínelo si no va a usar la ventana Cloud Shell más adelante.
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas y eventos, aprenda más sobre cómo Event Grid puede ayudarle:
Una introducción a Azure Event Grid
Enrutamiento de eventos de Blob Storage a un punto de conexión web personalizado
Supervisión de los cambios en máquinas virtuales con Azure Event Grid y Logic Apps
Transmisión de macrodatos a un almacén de datos
Inicio rápido: Enrutar eventos personalizados a Azure
Queue Storage con la CLI de Azure y Event Grid
04/08/2020 • 10 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. Azure Queue Storage es uno de los controladores de
eventos compatibles. 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. Envíe los eventos a Queue Storage.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Puede tardar unos instantes en finalizarse el registro. Para comprobar el estado, ejecute:
storagename="<unique-storage-name>"
queuename="eventqueue"
storageid=$(az storage account show --name $storagename --resource-group gridResourceGroup --query id --output
tsv)
queueid="$storageid/queueservices/default/queues/$queuename"
topicid=$(az eventgrid topic show --name <topic_name> -g gridResourceGroup --query id --output tsv)
La cuenta que crea la suscripción de eventos debe tener acceso de escritura al almacenamiento en la cola. Tenga en
cuenta que se ha establecido una fecha de expiración para la suscripción.
Si utiliza la API REST para crear la suscripción, pasa el identificador de la cuenta de almacenamiento y el nombre de
la cola como un parámetro independiente.
"destination": {
"endpointType": "storagequeue",
"properties": {
"queueName":"eventqueue",
"resourceId": "/subscriptions/<subscription-id>/resourcegroups/<resource-group-
name>/providers/[Link]/storageAccounts/<storage-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. En el ejemplo siguiente se envían tres
eventos al tema de Event Grid:
for i in 1 2 3
do
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
done
Vaya a la instancia de Queue Storage en el portal y tenga en cuenta que Event Grid envió esos tres eventos a la
cola.
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.
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas y eventos, aprenda más sobre cómo Event Grid puede ayudarle:
Una introducción a Azure Event Grid
Enrutamiento de eventos de Blob Storage a un punto de conexión web personalizado
Supervisión de los cambios en máquinas virtuales con Azure Event Grid y Logic Apps
Transmisión de macrodatos a un almacén de datos
Inicio rápido: Enrutamiento de eventos
personalizados a Azure Event Hubs con la CLI de
Azure y Event Grid
04/08/2020 • 7 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. Azure Event Hubs es uno de los controladores de eventos
compatibles. 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 un centro de eventos.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Puede tardar unos instantes en finalizarse el registro. Para comprobar el estado, ejecute:
topicname=<your-topic-name>
az eventgrid topic create --name $topicname -l westus2 -g gridResourceGroup
namespace=<unique-namespace-name>
hubname=demohub
El siguiente script obtiene el identificador del recurso del centro de eventos y se suscribe a un tema de Event Grid.
Establece el tipo de punto de conexión en eventhub y utiliza el identificador del centro de eventos para el punto de
conexión.
La cuenta que crea la suscripción de eventos debe tener acceso de escritura al centro de eventos.
endpoint=$(az eventgrid topic show --name $topicname -g gridResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name $topicname -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. En el ejemplo siguiente se envían tres
eventos al tema de Event Grid:
for i in 1 2 3
do
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
done
Vaya al centro de eventos del portal y tenga en cuenta que Event Grid ha enviado esos tres eventos al centro de
eventos.
Normalmente, se crea una aplicación que recupera los eventos del centro de eventos. Para crear una aplicación que
reciba mensajes de un centro de eventos, consulte:
Introducción a la recepción de mensajes con el Host del procesador de eventos en .NET Standard
Recepción de eventos desde Azure Event Hubs mediante Java
Recepción de eventos desde Event Hubs mediante Apache Storm
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.
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas y eventos, aprenda más sobre cómo Event Grid puede ayudarle:
Una introducción a Azure Event Grid
Enrutamiento de eventos de Blob Storage a un punto de conexión web personalizado
Supervisión de los cambios en máquinas virtuales con Azure Event Grid y Logic Apps
Transmisión de macrodatos a un almacén de datos
Inicio rápido: Envío de eventos de registro de
contenedor privado a Event Grid
04/08/2020 • 14 minutes to read • Edit Online
Azure Event Grid es un servicio de enrutamiento de eventos completamente administrado que ofrece un consumo
de eventos uniforme mediante un modelo de publicación-suscripción. En este tutorial de inicio rápido, usará la CLI
de Azure para crear un registro de contenedor, suscribirse a eventos del registro e implementar una aplicación web
de ejemplo para recibir los eventos. Por último, desencadenará los eventos push y delete de la imagen de
contenedor, y verá la carga del evento en la aplicación de ejemplo.
Después de completar los pasos descritos en este artículo, los eventos enviados desde el registro de contenedor a
Event Grid aparecerán en la aplicación web de ejemplo:
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
RESOURCE_GROUP_NAME=myResourceGroup
ACR_NAME=<acrName>
Una vez creado el registro, la CLI de Azure devuelve un resultado similar al siguiente:
{
"adminUserEnabled": false,
"creationDate": "2018-08-16T20:02:46.569509+00:00",
"id": "/subscriptions/<Subscription
ID>/resourceGroups/myResourceGroup/providers/[Link]/registries/myregistry",
"location": "eastus",
"loginServer": "[Link]",
"name": "myregistry",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sku": {
"name": "Basic",
"tier": "Basic"
},
"status": null,
"storageAccount": null,
"tags": {},
"type": "[Link]/registries"
}
SITE_NAME=<your-site-name>
Una vez que haya realizado correctamente la implementación (podría tardar unos minutos), abra un explorador y
vaya a la aplicación web para asegurarse de que se está ejecutando:
[Link]
Debería ver la aplicación de ejemplo que se representa sin ningún mensaje de evento:
Habilitación del proveedor de recursos de Event Grid
Si aún no ha usado anteriormente Event Grid en su suscripción de Azure, puede que tenga que registrar el
proveedor de recursos de Event Grid. Ejecute el siguiente comando para registrar el proveedor:
Puede tardar unos instantes en finalizarse el registro. Para comprobar el estado, ejecute:
Una vez completada la suscripción, debería ver una salida similar a la siguiente:
{
"destination": {
"endpointBaseUrl": "[Link]
"endpointType": "WebHook",
"endpointUrl": null
},
"filter": {
"includedEventTypes": [
"All"
],
"isSubjectCaseSensitive": null,
"subjectBeginsWith": "",
"subjectEndsWith": ""
},
"id": "/subscriptions/<Subscription
ID>/resourceGroups/myResourceGroup/providers/[Link]/registries/myregistry/providers/Micro
[Link]/eventSubscriptions/event-sub-acr",
"labels": null,
"name": "event-sub-acr",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"topic": "/subscriptions/<Subscription
ID>/resourceGroups/myresourcegroup/providers/[Link]/registries/myregistry",
"type": "[Link]/eventSubscriptions"
}
Debería ver un resultado similar al siguiente mientras ACR Tasks se compila e inserta la imagen. El resultado de
ejemplo siguiente se ha truncado por razones de espacio.
Para comprobar que la imagen compilada está en el registro, ejecute el siguiente comando para ver las etiquetas
en el repositorio "myimage":
az acr repository show-tags --name $ACR_NAME --repository myimage
La etiqueta "v1" de la imagen que se ha compilado debe aparecer en el resultado, similar al siguiente:
[
"v1"
]
Eliminación de la imagen
Ahora, genere un evento ImageDeleted eliminando la imagen con el comando az acr repository delete:
Debería ver un resultado similar al siguiente, que pida confirmación para eliminar el manifiesto y las imágenes
asociadas:
Limpieza de recursos
Una vez que haya terminado con los recursos creados en este inicio rápido, puede eliminarlos todos con el
siguiente comando de la CLI de Azure. Al eliminar un grupo de recursos, se eliminan de manera permanente todos
los recursos que contiene.
ADVERTENCIA : Esta operación es irreversible. Asegúrese de que ya no necesita ninguno de los recursos en el
grupo antes de ejecutar el comando.
Para supervisar los eventos específicos que se producen en recursos de Azure o en recursos de terceros y responder a
ellos, puede automatizar y ejecutar tareas como un flujo de trabajo mediante la creación de una aplicación lógica que use
el código mínimo. Estos recursos pueden publicar esos eventos en una instancia de Azure Event Grid. A su vez, la
cuadrícula de eventos envía esos eventos a los suscriptores que tienen colas, webhooks o centros de eventos como
puntos de conexión. Como suscriptor, su aplicación lógica puede esperar esos eventos desde la cuadrícula de eventos
antes de ejecutar flujos de trabajo automatizados para llevar a cabo ciertas tareas.
Por ejemplo, aquí incluimos algunos eventos que los publicadores pueden enviar a los suscriptores a través del servicio
Azure Event Grid:
Crear, leer, actualizar o eliminar un recurso. Por ejemplo, puede supervisar los cambios que podrían incurrir en
gastos en su suscripción de Azure y afectar a la facturación.
Agregar o quitar a una persona de una suscripción de Azure.
La aplicación realiza una acción concreta.
Aparece un nuevo mensaje en una cola.
En este tutorial se crea una aplicación lógica que supervisa los cambios realizados en una máquina virtual y envía
mensajes de correo electrónico sobre dichos cambios. Cuando crea una aplicación lógica con una suscripción a eventos
de un recurso de Azure, los eventos fluyen desde ese recurso a través de una cuadrícula de eventos a la aplicación lógica.
El tutorial le guía en la creación de esta aplicación lógica:
Prerrequisitos
Suscripción a Azure. Si no tiene una suscripción de Azure, regístrese para obtener una cuenta gratuita de Azure.
Una cuenta de correo electrónico de cualquier proveedor de correo electrónico que sea compatible con Azure
Logic Apps, como Office 365 Outlook, [Link] o Gmail, para el envío de notificaciones. En el caso de otros
proveedores, consulte la lista de conectores que se muestra aquí.
Este tutorial utiliza una cuenta de Office 365 Outlook. Si utiliza una cuenta de correo electrónico diferente, los
pasos generales siguen siendo los mismos pero la interfaz de usuario podría ser ligeramente distinta.
IMPORTANT
Si quiere usar el conector de Gmail, solo las cuentas empresariales de G-Suite pueden usar este conector sin restricciones en
las aplicaciones lógicas. Si tiene una cuenta de consumidor de Gmail, puede usar este conector solo con servicios específicos
aprobados por Google, o puede crear una aplicación cliente de Google para usarla en la autenticación con el conector de
Gmail. Para más información, consulte Directivas de privacidad y seguridad de datos de los conectores de Google en Azure
Logic Apps.
Una máquina virtual sola en su grupo de recursos de Azure. Si aún no lo ha hecho, cree una máquina virtual
siguiendo un tutorial para crear una máquina virtual. Para hacer que la máquina virtual publique eventos, no es
necesario hacer nada más.
3. En la aplicación lógica , proporcione información acerca del recurso de aplicación lógica. Seleccione Crear
cuando haya terminado.
P RO P IEDA D O B L IGATO RIO VA L UE DESC RIP C IÓ N
4. Una vez que Azure ha implementado la aplicación lógica, el Diseñador de aplicaciones lógicas muestra una página
con un vídeo de introducción y desencadenadores utilizados frecuentemente. Desplácese más allá del vídeo y los
desencadenadores.
5. En Plantillas , elija Blank Logic App .
El Diseñador de aplicaciones lógicas ahora muestra los desencadenadores que puede usar para iniciar la
aplicación lógica. Cada aplicación lógica debe comenzar con un desencadenador, que se activa cuando sucede un
evento específico o cuando se cumple una condición determinada. Cada vez que el desencadenador se activa,
Azure Logic Apps crea una instancia de flujo de trabajo que ejecuta la aplicación lógica.
2. Cuando se le solicite, inicie sesión en Azure Event Grid con las credenciales de la cuenta de Azure. En la lista
Inquilino , que muestra el inquilino de Azure Active Directory asociado con la suscripción de Azure, compruebe
que aparece al inquilino correcto, por ejemplo:
NOTE
Si inició sesión con una cuenta personal de Microsoft, como @[Link] o @[Link], el desencadenador de Event
Grid podría no aparecer correctamente. Como alternativa, seleccione Conectar con entidad de servicio o autentíquese como
miembro de Azure Active Directory asociado con la suscripción de Azure, por ejemplo,
nombreDeUsuario@[Link].
3. Ahora suscriba la aplicación lógica a los eventos del publicador. Proporcione los detalles de la suscripción a
eventos como se describe en la tabla siguiente, por ejemplo:
4. Guarde la aplicación lógica. En la barra de herramientas del diseñador, seleccione Save (Guardar). Para contraer y
ocultar los detalles de una acción en la aplicación lógica, seleccione la barra de título de la acción.
Cuando se guarda la aplicación lógica con un desencadenador de Event Grid, Azure crea automáticamente una
suscripción a eventos para la aplicación lógica en el recurso seleccionado. Así, cuando el recurso publica un evento
en la cuadrícula de eventos, esa cuadrícula de eventos inserta automáticamente el evento en la aplicación lógica.
Este evento desencadena la aplicación lógica, que crea y ejecuta una instancia del flujo de trabajo que se define en
los pasos siguientes.
La aplicación lógica ahora está activa y escucha los eventos de Event Grid, pero no hace nada hasta que agregue acciones
al flujo de trabajo.
El Diseñador de aplicaciones lógicas agrega una condición vacía al flujo de trabajo, incluidas las rutas de acceso de
la acción que se deben seguir en función de si la condición se cumple o no.
3. Cambie el nombre del título de la condición a If a virtual machine in your resource group has changed . En la
barra de título de la condición, seleccione el botón de los puntos suspensivos ( ... ) y Cambiar nombre .
4. Cree una condición que comprueba el evento body de un objeto data donde la propiedad operationName es
igual a la operación [Link]/virtualMachines/write . Más información sobre el Esquema de eventos de
la cuadrícula de eventos.
a. En la primera fila, debajo de And , haga clic en el cuadro izquierdo. En la lista de contenido dinámico que
aparece, seleccione Expresión .
b. En el editor de expresiones, escriba esta expresión, que devuelve el nombre de la operación del
desencadenador, y seleccione Aceptar :
triggerBody()?['data']['operationName']
Por ejemplo:
2. En Elegir una acción , en el cuadro de búsqueda, escriba send an email como filtro. En función de su proveedor
de correo electrónico, busque y seleccione el conector correspondiente. A continuación, seleccione la acción
"enviar correo electrónico" para el conector. Por ejemplo:
Para una cuenta profesional o educativa de Azure, seleccione el conector de Office 365 Outlook.
Para las cuentas de Microsoft personales, seleccione el conector de [Link].
Para las cuentas de Gmail, seleccione el conector de Gmail.
Este tutorial continúa con el conector de Office 365 Outlook. Si utiliza un proveedor diferente, los pasos siguen
siendo los mismos, pero la interfaz de usuario podría ser ligeramente diferente.
3. Si ya no tiene una conexión para el proveedor de correo electrónico, inicie sesión en su cuenta de correo
electrónico cuando se le pida que se autentique.
4. Cambie el nombre de la acción del correo electrónico de envío por este título:
Send email when virtual machine updated
NOTE
Si selecciona un campo que representa una matriz, el diseñador agrega automáticamente un bucle For each alrededor de la
acción que haga referencia a la matriz. De este modo, la aplicación lógica realiza la acción en cada elemento de la matriz.
3. Para ver las entradas y salidas de cada paso, expanda el paso que desea revisar. Esta información puede ayudarle a
diagnosticar y depurar los problemas de la aplicación lógica.
Enhorabuena, ha creado y ejecutado una aplicación lógica que supervisa los eventos del recurso mediante una cuadrícula
de eventos y le envía por correo electrónico un mensaje cuando se producen esos eventos. También ha aprendido cómo
puede crear fácilmente flujos de trabajo que automatizan los procesos y a integrar sistemas y servicios en la nube.
Puede supervisar otros cambios de configuración con las cuadrículas de eventos y las aplicaciones lógicas, por ejemplo:
Una máquina virtual obtiene derechos de control de acceso basado en roles (RBAC).
Se realizan cambios en un grupo de seguridad de red (NSG) en una interfaz de red (NIC).
Los discos para una máquina virtual se agregan o se quitan.
Se asigna una dirección IP pública a una máquina virtual de NIC.
Limpieza de recursos
Este tutorial utiliza recursos y realiza acciones que generan gastos en su suscripción de Azure. Cuando haya terminado
con el tutorial y las pruebas, asegúrese de deshabilitar o eliminar todos los recursos si no desea que generen gastos.
Para detener la ejecución de la aplicación lógica sin eliminar el trabajo, deshabilítela. En el menú de la aplicación
lógica, seleccione Introducción . En la barra de herramientas, seleccione Deshabilitar .
TIP
Si no ve el menú de la aplicación lógica, intente volver al panel de Azure y vuelva a abrir la aplicación lógica.
Para eliminar la aplicación lógica de forma definitiva, en el menú de la aplicación lógica, seleccione Información
general . En la barra de herramientas, seleccione Eliminar . Confirme que quiere eliminar la aplicación lógica y
seleccione Eliminar .
Pasos siguientes
Creación y enrutamiento de eventos personalizados con Event Grid
Tutorial: Automatizar el cambio de tamaño de
imágenes cargadas mediante Event Grid
04/08/2020 • 19 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. Event Grid permite crear suscripciones a eventos
producidos por servicios de Azure o recursos de terceros.
Este tutorial es la segunda parte de una serie de tutoriales sobre almacenamiento. Amplía el tutorial anterior sobre
almacenamiento para agregar la generación de vistas en miniatura automática sin servidor con Azure Event Grid y
Azure Functions. Event Grid permite que Azure Functions responda a eventos de Azure Blob Storage y genere
vistas en miniatura de imágenes cargadas. Se crea una suscripción de eventos en el evento de creación de Blob
Storage. Cuando se agrega un blob a un contenedor de Blob Storage determinado, se llama a un punto de
conexión de función. Los datos pasados al enlace de función desde Event Grid se usan para acceder al blob y
generar la imagen en miniatura.
Use la CLI de Azure y Azure Portal para agregar la funcionalidad de cambio de tamaño a una aplicación existente
de carga de imágenes.
.SDK de .NET, versión 12
[Link] V10 SDK
En este tutorial, aprenderá a:
Creación de una cuenta de Azure Storage
Implementar código sin servidor con Azure Functions
Crear una suscripción de eventos de Blob Storage en Event Grid
Requisitos previos
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de AzureRM
que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más información acerca del
nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación
del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la instalación del módulo Az, consulte
Instalación de Azure PowerShell.
$resourceGroupName="myResourceGroup"
2. Establezca una variable que contenga la ubicación de los recursos que se van a crear.
location="eastus"
$location="eastus"
3. Establezca una variable para el nombre de la nueva cuenta de almacenamiento que requiere Azure
Functions.
Ahora configure la aplicación de funciones para conectarse a la cuenta de Blob Storage que creó en el tutorial
anterior.
El valor FUNCTIONS_EXTENSION_VERSION=~2 hace que la aplicación de función se ejecute en la versión 2.x del entorno
de ejecución de Azure Functions.
Ahora puede implementar un proyecto de código de función en esta Function App.
La función de cambio de tamaño de imagen se desencadena mediante solicitudes HTTP que se le envían desde el
servicio Event Grid. Indicará a Event Grid que quiere obtener estas notificaciones en la dirección URL de su función
mediante la creación de una suscripción a evento. En este tutorial se suscribirá a eventos creados por blob.
Los datos pasados a la función desde la notificación de Event Grid incluyen la dirección URL del blob. A su vez, la
dirección URL se pasa al enlace de entrada para obtener la imagen cargada desde Blob Storage. La función genera
una imagen en miniatura y escribe el flujo resultante en un contenedor independiente de Blob Storage.
Este proyecto usa EventGridTrigger para el tipo de desencadenador. Es recomendable usar el desencadenador de
Event Grid antes que desencadenadores HTTP genéricos. Event Grid valida automáticamente los desencadenadores
Function de Event Grid. Con desencadenadores HTTP genéricos, debe implementar la respuesta de validación.
.SDK de .NET, versión 12
[Link] V10 SDK
Para saber más sobre esta función, consulte los archivos [Link] y [Link].
El código de proyecto de función se implementa directamente desde el repositorio público de ejemplo. Para más
información sobre las opciones de implementación de Azure Functions, vea Implementación continua para Azure
Functions.
Nombre del tema del sistema imagestoragesystopic Especifique un nombre para el tema
del sistema. Para obtener información
acerca de los temas del sistema,
consulte Introducción a los temas del
sistema.
5. Seleccione Crear para agregar la suscripción de eventos. Se crea una suscripción de eventos que
desencadena la función Thumbnail cuando se agrega un blob al contenedor images . La función cambia el
tamaño de las imágenes y las agrega al contenedor thumbnails .
Ahora que se han configurado los servicios back-end, pruebe la funcionalidad de cambio de tamaño de imagen en
la aplicación web de ejemplo.
Pasos siguientes
En este tutorial, ha aprendido a:
Crear una cuenta general de Azure Storage
Implementar código sin servidor con Azure Functions
Crear una suscripción de eventos de Blob Storage en Event Grid
Vaya a la tercera parte de la serie de tutoriales sobre almacenamiento para aprender a proteger el acceso a la
cuenta de almacenamiento.
Proteger el acceso a los datos de una aplicación en la nube
Para más información sobre Event Grid, vea Una introducción a Event Grid.
Para probar otro tutorial sobre Azure Functions, vea Creación de una función que se integre con Azure Logic
Apps.
Tutorial: Integración de Azure Automation con Event
Grid y Microsoft Teams
04/08/2020 • 6 minutes to read • Edit Online
Prerrequisitos
IMPORTANT
El uso de esta característica de Azure desde PowerShell requiere que tenga el módulo AzureRM instalado. Se trata de un
módulo anterior que solo está disponible para Windows PowerShell 5.1 que ya no obtiene nuevas características. Los
módulos Az y AzureRM no son compatibles cuando se instalan para las mismas versiones de PowerShell. Si necesita ambas
versiones:
1. Desinstale el módulo Az desde una sesión de PowerShell 5.1.
2. Instale el módulo AzureRM desde una sesión de PowerShell 5.1.
3. Descargue e instale PowerShell Core 6.x o posterior.
4. Instale el módulo Az en una sesión de PowerShell Core.
Para completar este tutorial, se requiere una cuenta de Azure Automation para contener el runbook que se
desencadena desde la suscripción de Azure Event Grid.
El módulo [Link] tiene que cargarse en su cuenta de Automation, consulte Importación de módulos en
Azure Automation para aprender a importar módulos en Azure Automation.
4. Seleccione Configurar parámetros y ejecutar configuraciones y escriba la dirección URL del webhook
de Microsoft Teams para CHANNELURL . Deje en blanco WEBHOOKDATA .
5. Seleccione Crear para crear el webhook del runbook de Automation.
NOTE
Azure Resource Manager no distingue actualmente entre Crear y Actualizar, por lo que la implementación de
este tutorial para todos los eventos [Link] en su suscripción de Azure
podría dar lugar a un gran volumen de llamadas.
Pasos siguientes
En este tutorial, se configura la integración entre Event Grid y Automation. Ha aprendido a:
Importe un runbook de ejemplo de Event Grid.
Cree un webhook de Microsoft Teams opcional.
Cree un webhook para el runbook.
Cree una suscripción de Event Grid.
Cree una máquina virtual que desencadene el runbook.
Creación y enrutamiento de eventos personalizados con Event Grid
Tutorial: Envío de notificaciones por correo
electrónico sobre eventos de Azure IoT Hub
mediante Event Grid y Logic Apps
04/08/2020 • 16 minutes to read • Edit Online
Azure Event Grid permite reaccionar a los eventos en IoT Hub mediante el desencadenamiento de acciones en las
aplicaciones empresariales de bajada.
En este artículo se ofrece orientación mediante una configuración de ejemplo que usa IoT Hub y Event Grid. Al final,
tendrá una aplicación en Azure Logic Apps configurada para enviar una notificación por correo electrónico cada
vez que se agregue un dispositivo a la instancia de IoT Hub.
Requisitos previos
Una suscripción de Azure activa. Si no tiene una suscripción, puede crear una cuenta gratuita de Azure.
Una cuenta de correo electrónico de cualquier proveedor de correo electrónico que sea compatible con
Azure Logic Apps, como Office 365 Outlook, [Link] o Gmail. Esta cuenta de correo electrónico se usa
para enviar las notificaciones de eventos. Puede encontrar una lista completa de los conectores de Logic
Apps admitidos en Introducción a los conectores.
IMPORTANT
Antes de usar Gmail, compruebe que tenga una cuenta empresarial de G-Suite (dirección de correo electrónico con
un dominio personalizado) o una cuenta de consumidor de Gmail (dirección de correo electrónico con @[Link] o
@[Link]). Solo las cuentas empresariales de G-Suite pueden usar el conector de Gmail con otros conectores
sin restricciones en las aplicaciones lógicas. Si tiene una cuenta de consumidor de Gmail, puede usar el conector de
Gmail solo con servicios específicos aprobados por Google, o puede crear una aplicación cliente de Google para usarla
en la autenticación. Para más información, consulte Directivas de privacidad y seguridad de datos de los conectores
de Google en Azure Logic Apps.
Una instancia de IoT Hub en Azure. Si aún no ha creado ninguna, vea un tutorial en Introducción a Azure IoT
Hub.
4. Seleccione Crear .
5. Una vez creado el recurso, vaya a la aplicación lógica. Para ello, seleccione Grupos de recursos y, luego, el
grupo de recursos que creó para este tutorial. A continuación, busque la aplicación lógica en la lista de
recursos y selecciónela.
6. En el diseñador de aplicaciones lógicas, desplácese hacia abajo para ver Plantillas . Elija Aplicación lógica
en blanco para que pueda crear la aplicación lógica desde el principio.
Selección de un desencadenador
Un desencadenador es un evento específico que inicia la aplicación lógica. Para este tutorial, el desencadenador
que activa el flujo de trabajo recibe una solicitud a través de HTTP.
1. En la barra de búsqueda de conectores y desencadenadores, escriba HTTP .
2. Seleccione Solicitud: Cuando se recibe una solicitud HTTP como desencadenador.
5. Puede recibir una notificación emergente que dice: Recuerde incluir un encabezado Content-Type
establecido en application/json en la solicitud. Puede ignorar esta sugerencia sin ningún problema y
pasar a la sección siguiente.
Creación de una acción
Las acciones son los pasos que se producen después de que el desencadenador inicia el flujo de trabajo de la
aplicación lógica. En este tutorial, la acción consiste en enviar una notificación por correo electrónico desde su
proveedor de correo electrónico.
1. Seleccione Nuevo paso . Se abrirá una ventana para elegir una acción .
2. Busque Correo electrónico .
3. En función de su proveedor de correo electrónico, busque y seleccione el conector correspondiente. Este
tutorial usa Office 365 Outlook . Los pasos para otros proveedores de correo electrónico son similares.
4. Seleccione la acción Enviar un correo electrónico .
5. Si se le pide, inicie sesión en la cuenta de correo electrónico.
6. Cree la plantilla de correo electrónico.
Para : escriba la dirección de correo electrónico en la que desea recibir los correos electrónicos de
notificación. Para este tutorial, use una cuenta de correo electrónico a la que pueda acceder para las
pruebas.
Firmante : Rellene el texto del asunto. Al hacer clic en el cuadro de texto Asunto, puede seleccionar
contenido dinámico para incluirlo. Por ejemplo, en este tutorial se usa IoT Hub alert: {event Type} .
Si no puede ver el contenido dinámico, seleccione el hipervínculo Agregar contenido dinámico :
con esto lo puede activar o desactivar.
Cuerpo : escriba el texto del correo electrónico. Seleccione las propiedades JSON de la herramienta
del selector para incluir contenido dinámico basado en los datos de los eventos. Si no puede ver el
contenido dinámico, seleccione el hipervínculo Agregar contenido dinámico situado en el cuadro
de texto Cuerpo . Si no aparecen los campos que desea, haga clic en el signo más en la pantalla
Contenido dinámico para que se incluyan los campos de la acción anterior.
La plantilla de correo electrónico puede tener un aspecto similar al de este ejemplo:
7. Guarde la aplicación lógica.
Copia de la dirección URL HTTP
Antes de cerrar el Diseñador de Logic Apps, copie la dirección URL en la que se realizan las escuchas de un
desencadenador de las aplicaciones lógicas. Use esta dirección URL para configurar Event Grid.
1. Haga clic en el cuadro de configuración del desencadenador Cuando se recibe una solicitud HTTP para
expandirlo.
2. Seleccione el botón de copia que se encuentra junto al valor Dirección URL de HTTP POST para copiarlo.
3. Guarde esta dirección URL para poder hacer referencia a ella en la siguiente sección.
Una vez realizadas las acciones anteriores, el panel debe tener un aspecto similar al del ejemplo
siguiente:
5. Puede guardar la suscripción de eventos aquí y recibir notificaciones en todos los dispositivos creados en su
instancia de IoT Hub. En este tutorial, sin embargo, se van a usar los campos opcionales para filtrar por
dispositivos específicos. Seleccione Filtros en la parte superior del panel.
6. Seleccione Agregar nuevo filtro . Rellene los campos con estos valores:
Clave : Seleccione Subject .
Operador : Seleccione String begins with .
Valor : escriba devices/Building1_ para filtrar por los eventos de dispositivos del edificio 1.
Agregue otro filtro con estos valores:
Clave : Seleccione Subject .
Operador : Seleccione String ends with .
Valor : escriba _Temperature para filtrar por los eventos de dispositivo relacionados con la
temperatura.
La pestaña Filtros de la suscripción al evento se debe parecer a esta imagen:
Creación de un dispositivo
Pruebe la aplicación lógica mediante la creación de un dispositivo para desencadenar un correo electrónico de
notificación de eventos.
1. En IoT Hub, seleccione Dispositivos IoT .
2. Seleccione Nuevo .
3. En Id. de dispositivo , escriba Building1_Floor1_Room1_Light .
4. Seleccione Guardar .
5. Puede agregar varios dispositivos con distintos identificadores de dispositivo para probar los filtros de
suscripción de eventos. Pruebe estos ejemplos:
Building1_Floor1_Room1_Light
Building1_Floor2_Room2_Temperature
Building2_Floor1_Room1_Temperature
Building2_Floor1_Room1_Light
Si ha agregado los cuatro ejemplos, la lista de dispositivos IoT se parecerá a la siguiente imagen:
6. Una vez que haya agregado unos cuantos dispositivos a su instancia de IoT Hub, consulte su correo
electrónico para ver cuáles desencadenaron la aplicación lógica.
Limpieza de recursos
En este tutorial se usaron recursos que generan gastos en su suscripción de Azure. Cuando haya terminado de
probar el tutorial y los resultados de las pruebas, deshabilite o elimine los recursos que no desea conservar.
Para eliminar todos los recursos que ha creado en este tutorial, elimine el grupo de recursos.
1. Seleccione Grupos de recursos y, luego, el grupo de recursos que creó para este tutorial.
2. En la página del grupo de recursos, seleccione Eliminar grupo de recursos . Se le pedirá que escriba el
nombre del grupo de recursos y, a continuación, podrá eliminarlo. También se quitarán todos los recursos
que contiene.
Si no desea quitar todos los recursos, puede administrarlos uno a uno.
Si no desea perder el trabajo realizado en la aplicación lógica, deshabilítela en lugar de eliminarla.
1. Vaya a la aplicación lógica.
2. En la hoja Introducción , seleccione Eliminar o Deshabilitar .
Cada suscripción solo puede tener una instancia de IoT Hub gratuita. Si creó una instancia de IoT Hub gratis para
este tutorial, no es necesario eliminarla para evitar cargos.
1. Vaya a su instancia de IoT Hub.
2. En la página Introducción , seleccione Eliminar .
Aunque conserve la instancia de IoT Hub, puede que desee eliminar la suscripción de eventos que creó.
1. En la instancia de IoT Hub, seleccione Event Grid .
2. Seleccione la suscripción de eventos que desea eliminar.
3. Seleccione Eliminar .
Pasos siguientes
Obtenga más información sobre reacción a eventos de IoT Hub mediante Event Grid para desencadenar
acciones.
Aprenda a ordenar eventos conectados y desconectados de dispositivos
Obtenga información sobre qué más puede hacer con Event Grid.
Tutorial: Respuesta a eventos de Azure Service Bus
recibidos a través de Azure Event Grid con Azure
Functions y Azure Logic Apps
04/08/2020 • 17 minutes to read • Edit Online
En este tutorial, aprenderá a responder a eventos de Azure Service Bus que se reciben a través de Azure Event Grid
con Azure Functions y Azure Logic Apps.
En este tutorial, aprenderá a:
Creación de un espacio de nombres de Service Bus
Preparación de una aplicación de ejemplo para enviar mensajes
Envío de mensaje al tema de Service Bus
Recepción de mensajes mediante Logic Apps
Configuración de una función de prueba en Azure
Conexión de la función y el espacio de nombres mediante Event Grid
Recepción de mensajes mediante Azure Functions
Requisitos previos
Para completar este tutorial, asegúrese de que tiene instalados los siguientes elementos:
Visual Studio 2017 Update 3 (versión 15.3, 26730.01) o posterior.
NET Core SDK, versión 2.0 o posterior.
#r "[Link]"
using [Link];
using [Link];
using [Link];
using [Link];
IEnumerable<string> headerValues;
headerValues = [Link]("Aeg-Event-Type");
if ([Link]() != 0)
{
var validationHeaderValue = [Link]();
if(validationHeaderValue == "SubscriptionValidation")
{
[Link]("Validating the subscription");
var events = [Link]<GridEvent[]>(jsonContent);
var code = events[0].Data["validationCode"];
[Link]($"Validation code: {code}");
return (ActionResult) new OkObjectResult(new { validationResponse = code });
}
}
[{
"id": "64ba80ae-9f8e-425f-8bd7-d88d2c0ba3e3",
"topic": "/subscriptions/0000000000-0000-0000-0000-
0000000000000/resourceGroups/spegridsbusrg/providers/[Link]/namespaces/spegridsbusn
s",
"subject": "",
"data": {
"validationCode": "D7D825D4-BD04-4F73-BDE3-70666B149857",
"validationUrl": "[Link]
[Link]/eventsubscriptions/spsbusegridsubscription/validate?id=D7D825D4-
BD04-4F73-BDE3-70666B149857&t=2020-06-09T18:28:51.5724615Z&apiVersion=2020-04-01-preview&[Hidden
Credential]"
},
"eventType": "[Link]",
"eventTime": "2020-06-09T18:28:51.5724615Z",
"metadataVersion": "1",
"dataVersion": "2"
}]
b. Haga clic en Add header (Agregar encabezado) y agregue un encabezado con el nombre
aeg-event-type y el valor SubscriptionValidation .
4. Seleccione Get function URL (Obtener la dirección URL de la función) y anote la dirección URL.
2. En la página de la aplicación de función de Azure, cambie a la pestaña Super visión en la pestaña Code +
test (Código y prueba). Verá una entrada para cada mensaje publicado en el tema de Service Bus. Si no las
ve, actualice la página al cabo de unos minutos.
También puede usar la pestaña Registros de la página Super visión para ver la información de registro a
medida que se envían los mensajes. Puede que haya algo de retraso, así que espere unos minutos para ver
los mensajes registrados.
Recepción de mensajes mediante Azure Functions
En la sección anterior pudo observar un escenario de prueba y depuración sencillo, y se aseguró de que los
eventos fluían.
En esta sección aprenderá cómo recibir y procesar los mensajes una vez que reciba un evento.
Prueba de una función desde Visual Studio
1. En la misma solución de Visual Studio (SBEventGridIntegration ) que ha abierto, seleccione
[Link] en el proyecto SBEventGridIntegration .
2. Especifique la cadena de conexión de Service Bus en el código siguiente:
Pasos siguientes
Más información sobre Azure Event Grid.
Más información acerca de Azure Functions.
Más información acerca de la característica Logic Apps de Azure App Service.
Aprenda más sobre Azure Service Bus.
Tutorial: Transmitir macrodatos a un
almacenamiento de datos
04/08/2020 • 20 minutes to read • Edit Online
Azure Event Grid es un servicio inteligente de enrutamiento de eventos que permite reaccionar ante las
notificaciones (eventos) procedentes de aplicaciones y servicios. Por ejemplo, puede desencadenar una función
de Azure que procese los datos de Event Hubs que se han capturado en una instancia de Azure Blob Storage o
Azure Data Lake Store y migrar esos datos a otros repositorios. En este ejemplo de integración de Event Hubs y
Event Grid se indica cómo usar Event Hubs con Event Grid para migrar datos de Event Hubs capturados
procedentes de Blob Storage a una instancia de SQL Data Warehouse sin ningún tipo de problema.
En este diagrama se muestra el flujo de trabajo de la solución que se compila en este tutorial:
1. Los datos que se envían a un centro de eventos de Azure se capturan en una instancia de Azure Blob Storage.
2. Una vez que se completa la captura de los datos, se genera un evento y se envía a una cuadrícula de eventos
de Azure.
3. La cuadrícula de eventos desvía estos datos de evento a una aplicación de función de Azure.
4. La aplicación de función usa la dirección URL del blob de los datos del evento para recuperar el blob desde el
almacenamiento.
5. La aplicación de función migra los datos del blob a una instancia de Azure SQL Data Warehouse.
En este artículo, podrá llevar a cabo estos pasos:
Usar una plantilla de Azure Resource Manager para implementar la infraestructura: un centro de eventos,
una cuenta de almacenamiento, una aplicación de función, un almacenamiento de datos de SQL.
Crear una tabla en el almacenamiento de datos.
Agregar código a la aplicación de función.
Suscribirse al evento.
Ejecutar una aplicación que envía los datos al centro de eventos.
Ver los datos migrados en el almacenamiento de datos.
Requisitos previos
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de
AzureRM que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más
información acerca del nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure
PowerShell Az module (Presentación del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la
instalación del módulo Az, consulte Instalación de Azure PowerShell.
Para realizar este tutorial, necesitará lo siguiente:
Suscripción a Azure. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Visual Studio 2019 con cargas de trabajo para: desarrollo de escritorio de .NET, desarrollo de Azure,
desarrollo web y de [Link], desarrollo de [Link] y desarrollo de Python.
Descargue el proyecto de ejemplo EventHubsCaptureEventGridDemo en su equipo.
Implementar la infraestructura
En este paso, implementará la infraestructura requerida con una plantilla de Resource Manager. Cuando
implemente la plantilla, se crearán estos recursos:
Un centro de eventos con la característica Captura habilitada.
Una cuenta de almacenamiento para los archivos capturados.
Un plan de App Service para hospedar la aplicación de función
Una aplicación de función para procesar el evento
Un servidor SQL Server para hospedar el almacenamiento de datos
Un SQL Data Warehouse para almacenar los datos migrados
Inicio de Azure Cloud Shell en Azure Portal
1. Inicie sesión en Azure Portal.
2. Seleccione el botón Cloud Shell que se encuentra en la parte superior.
b. Presione ENTRAR .
Este es un ejemplo:
2. Para implementar todos los recursos mencionados en la sección anterior (centro de eventos, cuenta de
almacenamiento, aplicación de función, almacenamiento de datos de SQL), ejecute el comando de la CLI
siguiente:
a. Copie y pegue el comando en la ventana Cloud Shell. También puede que quiera copiar y pegar en
el editor que prefiera, establecer valores y luego copiar el comando en Cloud Shell.
5. Seleccione el plan de App Service (no la instancia de App Service) en la lista de recursos del grupo de
recursos.
6. En la página Plan de App Service, seleccione Aplicaciones en el menú de la izquierda y, luego, la
aplicación de función.
[
{
"topic":
"/subscriptions/<guid>/resourcegroups/rgDataMigrationSample/providers/[Link]/namespaces/tfdatam
igratens",
"subject": "eventhubs/hubdatamigration",
"eventType": "[Link]",
"eventTime": "2017-08-31T19:12:46.0498024Z",
"id": "14e87d03-6fbf-4bb2-9a21-92bd1281f247",
"data": {
"fileUrl":
"[Link]
/08/31/19/11/[Link]",
"fileType": "AzureBlockBlob",
"partitionId": "1",
"sizeInBytes": 249168,
"eventCount": 1500,
"firstSequenceNumber": 2400,
"lastSequenceNumber": 3899,
"firstEnqueueTime": "2017-08-31T19:12:14.674Z",
"lastEnqueueTime": "2017-08-31T19:12:44.309Z"
}
}
]
Pasos siguientes
Para información sobre las diferencias en los servicios de mensajería de Azure, consulte Elija entre los
servicios de Azure de entrega de mensajes.
Para obtener una introducción a Event Grid, vea Acerca de Event Grid.
Para obtener una introducción a la función de captura de Event Hubs, vea Habilitación de la funcionalidad de
captura de Event Hubs mediante Azure Portal.
Para más información sobre cómo configurar y ejecutar el ejemplo, vea el ejemplo de la función de captura
de Event Hubs y Event Grid.
Crear y supervisar eventos de Media Services con
Event Grid mediante la CLI de Azure
04/08/2020 • 8 minutes to read • Edit Online
Azure Event Grid es un servicio de eventos para la nube. Este servicio usa las suscripciones a eventos para enrutar
los mensajes de eventos a los suscriptores. Los eventos de Media Services contienen toda la información necesaria
para responder a cualquier cambio que se produzca en los datos. Puede identificar un evento de Media Services
porque la propiedad eventType comienza por "[Link]". Para más información, consulte el artículo sobre
los esquemas de eventos de Media Services.
En este artículo se usa la CLI de Azure para suscribirse a eventos para su cuenta de Azure Media Services. A
continuación, deberá desencadenar esos eventos para ver el resultado. Por lo general, se envían eventos a un punto
de conexión que procesa los datos del evento y realiza acciones. En este artículo, los eventos se envían a una
aplicación web que recopila y muestra los mensajes.
Prerrequisitos
Una suscripción de Azure activa. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de
empezar.
Instale y use la CLI localmente, para este artículo es preciso usar la CLI de Azure versión 2.0 o posterior.
Ejecute az --version para encontrar la versión que tiene. Si necesita instalarla o actualizarla, consulte
Instalación de la CLI de Azure.
Actualmente no todos los comandos de la CLI de Media Services v3 funcionan en Azure Cloud Shell. Se
recomienda usar la CLI localmente.
Cree una cuenta de Media Services.
Asegúrese de recordar los valores que usó para el nombre de la cuenta de Media Services y el nombre del
grupo de recursos.
2. La implementación puede tardar unos minutos en completarse. Después de que la implementación se haya
realizado correctamente, puede ver la aplicación web para asegurarse de que se está ejecutando. En un
explorador web, vaya a: [Link]
Si cambia al sitio "Visor de Azure Event Grid", verá que no tiene todavía ningún evento.
Habilitación del proveedor de recursos de Event Grid
Si aún no ha usado anteriormente Event Grid en su suscripción de Azure, puede que tenga que registrar el
proveedor de recursos de Event Grid.
En Azure Portal:
1. Seleccione Suscripciones en el menú de la izquierda.
2. Seleccione la suscripción que está usando para Event Grid.
3. En el menú de la izquierda, en Configuración , seleccione Proveedores de recursos .
4. Busque [Link] .
5. Si no está registrado, seleccione Registrar .
Puede tardar unos instantes en finalizarse el registro. Seleccione Actualizar para actualizar el estado. Cuando el
estado es Registrado , ya está listo para continuar.
Por ejemplo:
Por ejemplo:
az eventgrid event-subscription create --source-resource-id $amsResourceId --name
amsTestEventSubscription --endpoint [Link]
TIP
Es posible que reciba una advertencia del protocolo de enlace de validación. Espere unos minutos y el protocolo de
enlace debería realizar la validación.
A continuación, desencadenaremos algunos eventos para ver cómo Event Grid distribuye el mensaje al punto de
conexión.
TIP
Seleccione el icono del ojo para expandir los datos del evento. No actualice la página si quiere ver todos los eventos.
Pasos siguientes
Carga, codificación y streaming
Tutorial: Enrutar eventos personalizados a
Conexiones híbridas de Azure Relay con la CLI de
Azure y Event Grid
04/08/2020 • 9 minutes to read • Edit Online
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 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.
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 la cuadrícula de eventos. 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>
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.
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.
Pasos siguientes
Ahora que sabe cómo crear suscripciones a temas y eventos, aprenda más sobre cómo Event Grid puede ayudarle:
Una introducción a Azure Event Grid
Enrutamiento de eventos de Blob Storage a un punto de conexión web personalizado
Supervisión de los cambios en máquinas virtuales con Azure Event Grid y Logic Apps
Transmisión de macrodatos a un almacén de datos
Ejemplos de la CLI de Azure para Event Grid
04/08/2020 • 2 minutes to read • Edit Online
En la tabla siguiente se incluyen vínculos a ejemplos de la CLI de Azure para Event Grid.
Script de ejemplo
#!/bin/bash
echo $endpoint
echo $key
GET - H EL P N OTA S
Pasos siguientes
Para información sobre la consulta de suscripciones, consulte Consulta de suscripciones de Event Grid.
Para más información sobre la CLI de Azure, consulte la documentación de la CLI de Azure.
Suscripción a eventos de una suscripción de Azure
con la CLI de Azure
04/08/2020 • 2 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de una suscripción de Azure.
Para ejecutar este ejemplo, instale la versión más reciente de la CLI de Azure. Para empezar, ejecute az login para
crear una conexión con Azure.
Los ejemplos de la CLI de Azure están escritos para el shell bash . Para ejecutar este ejemplo en Windows
PowerShell o en el símbolo del sistema, es posible que necesite cambiar algunos elementos del script.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
El script de ejemplo de la versión preliminar requiere la extensión de Event Grid. Para instalarla, ejecute
az extension add --name eventgrid .
# Subscribe to the Azure subscription. The command creates the subscription for the currently selected Azure
subscription.
az eventgrid event-subscription create --name demoSubscriptionToAzureSub --endpoint $myEndpoint
# You must have the latest version of the Event Grid preview extension.
# If you have not installed previously:
# az extension add -n eventgrid
# If you have installed previously:
# az extension update -n eventgrid
# Subscribe to the Azure subscription. The command creates the subscription for the currently selected Azure
subscription.
az eventgrid event-subscription create --name demoSubscriptionToAzureSub --endpoint $myEndpoint --source-
resource-id /subscriptions/$subID
Explicación del script
Este script usa el siguiente comando para crear la suscripción de eventos. Cada comando de la tabla crea un
vínculo a documentación específica del comando.
GET - H EL P N OTA S
az eventgrid event-subscription create: versión de la extensión Cree una suscripción de Event Grid.
Pasos siguientes
Para información sobre la consulta de suscripciones, consulte Consulta de suscripciones de Event Grid.
Para más información sobre la CLI de Azure, consulte la documentación de la CLI de Azure.
Suscripción a eventos de una cuenta de Blob Storage
con la CLI de Azure
04/08/2020 • 2 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de una cuenta de Blob Storage.
Para ejecutar este ejemplo, instale la versión más reciente de la CLI de Azure. Para empezar, ejecute az login para
crear una conexión con Azure.
Los ejemplos de la CLI de Azure están escritos para el shell bash . Para ejecutar este ejemplo en Windows
PowerShell o en el símbolo del sistema, es posible que necesite cambiar algunos elementos del script.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Script de ejemplo
#!/bin/bash
# Provide the name of the resource group to contain the storage account.
myResourceGroup="<resource group name>"
# Select the Azure subscription to contain the storage account and event subscription.
az account set --subscription "<name or ID of the subscription>"
GET - H EL P N OTA S
az eventgrid event-subscription create: versión de la extensión Cree una suscripción de Event Grid.
Pasos siguientes
Para información sobre la consulta de suscripciones, consulte Consulta de suscripciones de Event Grid.
Para más información sobre la CLI de Azure, consulte la documentación de la CLI de Azure.
Suscripción a eventos de un tema personalizado con
la CLI de Azure
04/08/2020 • 3 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de un tema personalizado.
Para ejecutar este ejemplo, instale la versión más reciente de la CLI de Azure. Para empezar, ejecute az login para
crear una conexión con Azure.
Los ejemplos de la CLI de Azure están escritos para el shell bash . Para ejecutar este ejemplo en Windows
PowerShell o en el símbolo del sistema, es posible que necesite cambiar algunos elementos del script.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
El script de ejemplo de la versión preliminar requiere la extensión de Event Grid. Para instalarla, ejecute
az extension add --name eventgrid .
# Provide the name of the resource group containing the custom topic
resourceGroup=demoResourceGroup
# Subscribe to the custom event. Include the resource group that contains the custom topic.
az eventgrid event-subscription create \
--resource-group $resourceGroup \
--topic-name $myTopic \
--name demoSubscription \
--endpoint $myEndpoint
# You must have the latest version of the Event Grid preview extension.
# If you have not installed previously:
# az extension add -n eventgrid
# If you have installed previously:
# az extension update -n eventgrid
# Provide the name of the resource group containing the custom topic
resourceGroup=demoResourceGroup
# Subscribe to the custom event. Include the resource group that contains the custom topic.
az eventgrid event-subscription create \
--source-resource-id $topicID \
--name demoSubscription \
--endpoint $myEndpoint
GET - H EL P N OTA S
az eventgrid event-subscription create: versión de la extensión Cree una suscripción de Event Grid.
Pasos siguientes
Para información sobre la consulta de suscripciones, consulte Consulta de suscripciones de Event Grid.
Para más información sobre la CLI de Azure, consulte la documentación de la CLI de Azure.
Suscripción a eventos de un grupo de recursos con la
CLI de Azure
04/08/2020 • 2 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de un grupo de recursos.
Para ejecutar este ejemplo, instale la versión más reciente de la CLI de Azure. Para empezar, ejecute az login para
crear una conexión con Azure.
Los ejemplos de la CLI de Azure están escritos para el shell bash . Para ejecutar este ejemplo en Windows
PowerShell o en el símbolo del sistema, es posible que necesite cambiar algunos elementos del script.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
El script de ejemplo de la versión preliminar requiere la extensión de Event Grid. Para instalarla, ejecute
az extension add --name eventgrid .
# Subscribe to the resource group. Provide the name of the resource group you want to subscribe to.
az eventgrid event-subscription create \
--name demoSubscriptionToResourceGroup \
--resource-group $myResourceGroup \
--endpoint $myEndpoint
# Subscribe to the resource group. Provide the name of the resource group you want to subscribe to.
az eventgrid event-subscription create \
--name demoSubscriptionToResourceGroup \
--source-resource-id $resourceGroupID \
--endpoint $myEndpoint
GET - H EL P N OTA S
az eventgrid event-subscription create: versión de la extensión Cree una suscripción de Event Grid.
Pasos siguientes
Para información sobre la consulta de suscripciones, consulte Consulta de suscripciones de Event Grid.
Para más información sobre la CLI de Azure, consulte la documentación de la CLI de Azure.
Suscripción a eventos de un grupo de recursos y
filtrado de los eventos de un recurso con la CLI de
Azure
04/08/2020 • 3 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de un grupo de recursos. Utiliza un filtro para obtener
solo los eventos de un recurso especificado en el grupo de recursos.
Para ejecutar este ejemplo, instale la versión más reciente de la CLI de Azure. Para empezar, ejecute az login para
crear una conexión con Azure.
Los ejemplos de la CLI de Azure están escritos para el shell bash . Para ejecutar este ejemplo en Windows
PowerShell o en el símbolo del sistema, es posible que necesite cambiar algunos elementos del script.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
El script de ejemplo de la versión preliminar requiere la extensión de Event Grid. Para instalarla, ejecute
az extension add --name eventgrid .
# Subscribe to the resource group. Provide the name of the resource group you want to subscribe to.
az eventgrid event-subscription create \
--name demoSubscriptionToResourceGroup \
--resource-group myResourceGroup \
--endpoint $myEndpoint \
--subject-begins-with $resourceId
# Provide the name of the resource group to contain the custom topic
myResourceGroup=demoResourceGroup
# Subscribe to the custom topic. Filter based on a value in the event data.
az eventgrid event-subscription create \
--source-resource-id $topicid \
-n demoAdvancedFilterSub \
--advanced-filter [Link] stringin blue red green \
--endpoint $endpointURL
GET - H EL P N OTA S
az eventgrid event-subscription create: versión de la extensión Cree una suscripción de Event Grid.
Pasos siguientes
Para información sobre la consulta de suscripciones, consulte Consulta de suscripciones de Event Grid.
Para más información sobre la CLI de Azure, consulte la documentación de la CLI de Azure.
Ejemplos de Azure PowerShell para Event Grid
04/08/2020 • 2 minutes to read • Edit Online
En la tabla siguiente se incluyen vínculos a ejemplos de Azure PowerShell para Event Grid.
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de AzureRM
que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más información acerca del
nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación
del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la instalación del módulo Az, consulte
Instalación de Azure PowerShell.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
Script de ejemplo
# Give your custom topic a unique name
$myTopic = "<your-custom-topic-name>"
# Provide a name for resource group to create. It will contain the custom event.
$myResourceGroup = "<resource-group-name>"
$endpoint
$key
GET - H EL P N OTA S
Pasos siguientes
Para una introducción a las aplicaciones administradas, consulte la introducción a las aplicaciones
administradas de Azure.
Para más información sobre PowerShell, consulte la documentación de Azure PowerShell.
Suscripción a eventos de una suscripción de Azure
con PowerShell
04/08/2020 • 3 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de una suscripción de Azure.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
# Select the Azure subscription you want to subscribe to. You need this command only if the
# current subscription is not the one you wish to subscribe to.
Set-AzContext -Subscription "<subscription-name-or-ID>"
# Subscribe to the Azure subscription. The command creates the subscription for the currently selected Azure
subscription.
New-AzEventGridSubscription -Endpoint $myEndpoint -EventSubscriptionName demoSubscriptionToAzureSub
IMPORTANT
El uso de esta característica de Azure desde PowerShell requiere que tenga el módulo AzureRM instalado. Se trata de un
módulo anterior que solo está disponible para Windows PowerShell 5.1 que ya no obtiene nuevas características. Los
módulos Az y AzureRM no son compatibles cuando se instalan para las mismas versiones de PowerShell. Si necesita ambas
versiones:
1. Desinstale el módulo Az desde una sesión de PowerShell 5.1.
2. Instale el módulo AzureRM desde una sesión de PowerShell 5.1.
3. Descargue e instale PowerShell Core 6.x o posterior.
4. Instale el módulo Az en una sesión de PowerShell Core.
# You must have the latest version of the Event Grid PowerShell module.
# To install:
# Install-Module -Name [Link] -AllowPrerelease -Force -Repository PSGallery
# Subscribe to the Azure subscription. The command creates the subscription for the currently selected Azure
subscription.
New-AzureRmEventGridSubscription -ResourceId "/subscriptions/$subID" -Endpoint $myEndpoint -
EventSubscriptionName demoSubscriptionToAzureSub
GET - H EL P N OTA S
Pasos siguientes
Para una introducción a las aplicaciones administradas, consulte la introducción a las aplicaciones
administradas de Azure.
Para más información sobre PowerShell, consulte la documentación de Azure PowerShell.
Suscripción a eventos de una cuenta de Blob Storage
con PowerShell
04/08/2020 • 2 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de una cuenta de Blob Storage.
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de AzureRM
que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más información acerca del
nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module (Presentación
del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la instalación del módulo Az, consulte
Instalación de Azure PowerShell.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
# Provide the name of the resource group to create. It will contain the storage account.
$myResourceGroup="<resource-group-name>"
Pasos siguientes
Para una introducción a las aplicaciones administradas, consulte la introducción a las aplicaciones
administradas de Azure.
Para más información sobre PowerShell, consulte la documentación de Azure PowerShell.
Suscripción a eventos de un tema personalizado con
PowerShell
04/08/2020 • 3 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de un tema personalizado.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
El script de ejemplo de la versión preliminar requiere el módulo de Event Grid. Para instalarlo, ejecute
Install-Module -Name [Link] -AllowPrerelease -Force -Repository PSGallery .
# Provide a name for resource group to create. It will contain the custom event.
$myResourceGroup = "<resource-group-name>"
# Subscribe to the custom event. Include the resource group that contains the custom topic.
New-AzEventGridSubscription `
-EventSubscriptionName demoSubscription `
-Endpoint $myEndpoint `
-ResourceGroupName $myResourceGroup `
-TopicName $myTopic
# You must have the latest version of the Event Grid PowerShell module.
# To install:
# Install-Module -Name [Link] -AllowPrerelease -Force -Repository PSGallery
# Provide the name of the resource group to create. It will contain the custom topic.
$myResourceGroup = "<resource-group-name>"
# Subscribe to the custom event. Include the resource group that contains the custom topic.
New-AzEventGridSubscription `
-ResourceId $topicID `
-EventSubscriptionName demoSubscription `
-Endpoint $myEndpoint
GET - H EL P N OTA S
Pasos siguientes
Para una introducción a las aplicaciones administradas, consulte la introducción a las aplicaciones
administradas de Azure.
Para más información sobre PowerShell, consulte la documentación de Azure PowerShell.
Suscripción a eventos de un grupo de recursos con
PowerShell
04/08/2020 • 3 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de un grupo de recursos.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
El script de ejemplo de la versión preliminar requiere el módulo de Event Grid. Para instalarlo, ejecute
Install-Module -Name [Link] -AllowPrerelease -Force -Repository PSGallery .
# Provide the name of the resource group to create and subscribe to.
$myResourceGroup="<resource-group-name>"
# Subscribe to the resource group. Provide the name of the resource group you want to subscribe to.
New-AzEventGridSubscription `
-Endpoint $myEndpoint `
-EventSubscriptionName demoSubscriptionToResourceGroup `
-ResourceGroupName $myResourceGroup
# Provide the name of the resource group to create and subscribe to.
$myResourceGroup = "<resource-group-name>"
# Subscribe to the resource group. Provide the name of the resource group you want to subscribe to.
New-AzEventGridSubscription `
-ResourceId $resourceGroupID `
-Endpoint $myEndpoint `
-EventSubscriptionName demoSubscriptionToResourceGroup
GET - H EL P N OTA S
Pasos siguientes
Para una introducción a las aplicaciones administradas, consulte la introducción a las aplicaciones
administradas de Azure.
Para más información sobre PowerShell, consulte la documentación de Azure PowerShell.
Suscripción a eventos de un grupo de recursos y
filtrado de un recurso con PowerShell
04/08/2020 • 4 minutes to read • Edit Online
Este script crea una suscripción de Event Grid a los eventos de un grupo de recursos. Utiliza un filtro para obtener
solo los eventos de un recurso especificado en el grupo de recursos.
Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.
# Provide the name of the resource group to create. It will contain the network security group.
# You will subscribe to events for this resource group.
$myResourceGroup = "<resource-group-name>"
# Create a network security group. You will filter events to only those that are related to this resource.
New-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $myResourceGroup -Location westus2
# Get the resource ID to filter events. The name of the network security group must not be the same as the
other resource names.
$resourceId = (Get-AzResource -ResourceName $nsgName -ResourceGroupName $myResourceGroup).ResourceId
# Subscribe to the resource group. Provide the name of the resource group you want to subscribe to.
New-AzEventGridSubscription `
-Endpoint $myEndpoint `
-EventSubscriptionName demoSubscriptionToResourceGroup `
-ResourceGroupName $myResourceGroup `
-SubjectBeginsWith $resourceId
El script de ejemplo de la versión preliminar requiere el módulo de Event Grid. Para instalarlo, ejecute
Install-Module -Name [Link] -AllowPrerelease -Force -Repository PSGallery .
# You must have the latest version of the Event Grid PowerShell module.
# To install:
# Install-Module -Name [Link] -AllowPrerelease -Force -Repository PSGallery
# Provide the name of the resource group to create. It will contain the custom topic.
$myResourceGroup= "<resource-group-name>"
# Set the operator type, field and values for the filtering
$AdvFilter1=@{operator="StringIn"; key="[Link]"; Values=@('blue', 'red', 'green')}
# Subscribe to the custom topic. Filter based on a value in the event data.
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName demoSubWithFilter `
-Endpoint $myEndpoint `
-AdvancedFilter @($AdvFilter1)
GET - H EL P N OTA S
Pasos siguientes
Para una introducción a las aplicaciones administradas, consulte la introducción a las aplicaciones
administradas de Azure.
Para más información sobre PowerShell, consulte la documentación de Azure PowerShell.
Plantillas de Azure Resource Manager para Event
Grid
04/08/2020 • 2 minutes to read • Edit Online
Para la sintaxis y las propiedades de JSON que se usan en una plantilla, consulte Tipos de recursos de
[Link]. En la tabla siguiente se incluyen vínculos a plantillas de Azure Resource Manager para Event
Grid.
Pasos siguientes
Consulte los ejemplos siguientes:
Ejemplos de PowerShell
Ejemplos de CLI
Definiciones integradas de Azure Policy para Azure
Event Grid
04/08/2020 • 2 minutes to read • Edit Online
Esta página es un índice de las definiciones de directivas integradas de Azure Policy en Azure Event Grid. Puede
encontrar elementos integrados adicionales de Azure Policy para otros servicios en Definiciones de elementos
integrados de Azure Policy.
El nombre de cada definición de directiva integrada se vincula a la definición de directiva en Azure Portal. Use el
vínculo de la columna Versión para ver el origen en el repositorio de GitHub de Azure Policy.
Los dominios de Azure Event Audite los dominios de Audit, Disabled 1.0.0
Grid deben usar vínculos Azure Event Grid que no
privados tengan al menos una
conexión de punto de
conexión privada aprobada.
Los clientes de una red
virtual pueden acceder de
forma segura a los recursos
que tengan conexiones de
punto de conexión privadas
mediante vínculos privados.
Para más información, visite
[Link]
nts.
Los temas de Azure Event Audite los temas de Azure Audit, Disabled 1.0.0
Grid deben usar vínculos Event Grid que no tengan al
privados. menos una conexión de
punto de conexión privada
aprobada. Los clientes de
una red virtual pueden
acceder de forma segura a
los recursos que tengan
conexiones de punto de
conexión privadas mediante
vínculos privados. Para más
información, visite
[Link]
nts.
Pasos siguientes
Los elementos integrados se pueden encontrar en el repositorio de GitHub de Azure Policy.
Revise la estructura de definición de Azure Policy.
Vea la Descripción de los efectos de directivas.
Concepts de Azure Event Grid
04/08/2020 • 10 minutes to read • Edit Online
Eventos
Una evento es la cantidad mínima de información que describe completamente algo que se ha producido en el
sistema. Todos los eventos tienen información común, como: origen del evento, hora en que el evento ha tenido
lugar e identificador único. Cada evento tiene además información específica que solo es relevante para el tipo de
evento concreto. Por ejemplo, un evento sobre un nuevo archivo que se crea en Azure Storage contiene detalles
sobre el archivo, como el valor lastTimeModified . O bien, un evento de Event Hubs tiene la dirección URL del
archivo de captura.
Los eventos con un tamaño de hasta 64 KB están cubiertos por el Acuerdo de Nivel de Servicio de disponibilidad
general (GA). La compatibilidad de un evento con un tamaño de hasta 1 MB se encuentra actualmente en versión
preliminar. Los eventos de más de 64 KB se cobran en incrementos de 64 KB.
Para obtener las propiedades que se envían en un evento, vea Esquema de eventos de Azure Event Grid.
Publicadores
Un publicador es el usuario o la organización que decide enviar eventos a Event Grid. Microsoft publica eventos
para varios servicios de Azure. Puede publicar eventos desde su propia aplicación. Las organizaciones que
hospedan servicios fuera de Azure pueden publicar eventos a través de Event Grid.
Orígenes de eventos
Un origen de evento es donde se produce el evento. Cada origen de evento está relacionado con uno o más tipos
de eventos. Por ejemplo, Azure Storage es el origen de evento de los eventos creados por blob. IoT Hub es el
origen de evento de los eventos creados por dispositivo. La aplicación es el origen de evento de los eventos
personalizados que defina. Los orígenes de evento son responsables de enviar eventos a Event Grid.
Para información sobre la implementación de cualquiera de los orígenes de Event Grid admitidos, consulte Event
sources in Azure Event Grid (Orígenes de eventos en Azure Event Grid).
Temas
En el tema de Event Grid se proporciona un punto de conexión al que el origen envía los eventos. El publicador
crea el tema de Event Grid y decide si un origen de evento necesita un tema o más de un tema. Un tema se usa
para una colección de eventos relacionados. Para responder a determinados tipos de eventos, los suscriptores
deciden los temas a los que se suscriben.
Los temas del sistema son temas integrados que proporcionan los servicios de Azure, como Azure Storage, Azure
Event Hubs y Azure Service Bus. Puede crear temas del sistema en su suscripción de Azure y suscribirse a ellos.
Para obtener más información, consulte Información general sobre los temas del sistema.
Los temas personalizados son temas de terceros y de aplicación. Cuando cree un tema personalizado, o se le
asigne acceso al mismo, verá ese tema personalizado en su suscripción. Para obtener más información, consulte
Temas personalizados.
Cuando diseñe la aplicación, tiene flexibilidad al decidir cuántos temas se crean. Para soluciones grandes, cree un
tema personalizado para cada categoría de eventos relacionados. Por ejemplo, considere una aplicación que envía
eventos relacionados con la modificación de las cuentas de usuario y el procesamiento de pedidos. Es poco
probable que algún controlador de eventos quiera ambas categorías de eventos. Cree dos temas personalizados y
deje que los controladores de eventos se suscriban a uno que les interese. Para soluciones pequeñas, puede que
prefiera enviar todos los eventos a un solo tema. Los suscriptores de eventos se pueden filtrar por los tipos de
evento que desean.
Suscripciones a eventos
Las suscripciones le indican a Event Grid qué eventos de un tema les interesa recibir. Al crear la suscripción,
proporciona un punto de conexión para controlar el evento. Puede filtrar los eventos que se envían al punto de
conexión. Puede filtrar por tipo de evento o por patrón de asunto. Para más información, vea Esquema de
suscripción de Event Grid.
Para obtener ejemplos de creación de suscripciones, vea:
Ejemplos de la CLI de Azure para Event Grid
Ejemplos de Azure PowerShell para Event Grid
Plantillas de Azure Resource Manager para Event Grid
Para obtener información sobre las suscripciones de Event Grid actuales, vea Consulta de suscripciones de Event
Grid.
Controladores de eventos
Desde la perspectiva de Event Grid, un controlador de eventos es el lugar al que se envía el evento. El controlador
realiza alguna acción adicional para procesar el evento. Event Grid admite varios tipos de controladores. Puede
usar un servicio de Azure admitido o su propio webhook como controlador. Según el tipo de controlador, Event
Grid sigue distintos procedimientos para garantizar la entrega del evento. En el caso de los controladores de
eventos de webhook HTTP, el evento se reintenta hasta que el controlador devuelve un código de estado de
200 – OK . En Azure Storage Queue, los eventos se reintentan hasta que Queue service procesa correctamente la
inserción de mensajes en la cola.
Para información sobre cómo implementar cualquiera de los controladores admitidos de Event Grid, consulte
Event handlers in Azure Event Grid (Controladores de eventos en Azure Event Grid).
Seguridad
Event Grid proporciona seguridad para suscribirse a temas y publicarlos. Para suscribirse, debe tener los permisos
adecuados en el recurso o el tema de Event Grid. Para publicar, debe tener un token de SAS o autenticación de
clave para el tema. Para más información, vea Event Grid security and authentication (Seguridad y autenticación de
Event Grid).
Entrega de eventos
Si Event Grid no puede confirmar que un evento se ha recibido en el punto de conexión del suscriptor, vuelve a
entregarlo. Para más información, vea Entrega y reintento de entrega de mensajes de Event Grid.
Lotes
Cuando se usa un tema personalizado, los eventos siempre se deben publicar en una matriz. En los escenarios de
bajo rendimiento, puede utilizarse un lote con un único evento; sin embargo, en los casos de uso de gran volumen,
se recomienda agrupar varios eventos en cada publicación para lograr una mayor eficacia. Los lotes pueden tener
hasta 1 MB. Cada evento no debe ser superior a 64 KB (Disponibilidad general) o 1 MB (Versión preliminar).
NOTE
Los eventos con un tamaño de hasta 64 KB están cubiertos por el Acuerdo de Nivel de Servicio de disponibilidad general
(GA). La compatibilidad de un evento con un tamaño de hasta 1 MB se encuentra actualmente en versión preliminar. Los
eventos de más de 64 KB se cobran en incrementos de 64 KB.
Pasos siguientes
Para obtener una introducción a Event Grid, vea Acerca de Event Grid.
Para comenzar a usar rápidamente Event Grid, vea Creación y enrutamiento de eventos personalizados con
Azure Event Grid.
Temas personalizados en Azure Event Grid
04/08/2020 • 5 minutes to read • Edit Online
En un tema de Event Grid se proporciona un punto de conexión al que el origen envía los eventos. El publicador
crea el tema de Event Grid y decide si un origen de evento necesita un tema o más de un tema. Un tema se usa
para una colección de eventos relacionados. Para responder a determinados tipos de eventos, los suscriptores
deciden los temas a los que se suscriben.
Los temas personalizados son temas de terceros y de aplicación. Cuando cree un tema personalizado, o se le
asigne acceso al mismo, verá ese tema personalizado en su suscripción.
Cuando diseñe la aplicación, tiene flexibilidad al decidir cuántos temas se crean. Para soluciones grandes, cree un
tema personalizado para cada categoría de eventos relacionados . Por ejemplo, considere una aplicación
que envía eventos relacionados con la modificación de las cuentas de usuario y el procesamiento de pedidos. Es
poco probable que algún controlador de eventos quiera ambas categorías de eventos. Cree dos temas
personalizados y deje que los controladores de eventos se suscriban a uno que les interese. Para soluciones
pequeñas, puede que prefiera enviar todos los eventos a un solo tema. Los suscriptores de eventos se pueden
filtrar por los tipos de evento que desean.
[
{
"topic": string,
"subject": string,
"id": string,
"eventType": string,
"eventTime": string,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string,
"metadataVersion": string
}
]
En las secciones siguientes se proporcionan vínculos a tutoriales para crear temas personalizados mediante
Azure Portal, la CLI, PowerShell y plantillas de Azure Resource Manager (ARM).
Guía de inicio rápido: creación y enrutamiento de eventos Muestra cómo utilizar Azure Portal para enviar eventos
personalizados con Azure Portal personalizados.
Guía de inicio rápido: enrutamiento de eventos personalizados Describe cómo enviar eventos personalizados a una instancia
a Azure Queue Storage de Queue Storage.
T ÍT ULO DESC RIP C IÓ N
Guía de inicio rápido: creación y enrutamiento de eventos Muestra cómo utilizar la CLI de Azure para enviar eventos
personalizados con la CLI de Azure personalizados.
CLI de Azure: creación de un tema personalizado de Event Script de ejemplo que crea un tema personalizado. El script
Grid recupera el punto de conexión y una clave.
CLI de Azure: suscripción a eventos de un tema personalizado Script de ejemplo que crea una suscripción a un tema
personalizado. Envía eventos a un webhook.
Guía de inicio rápido: creación y enrutamiento de eventos Muestra cómo utilizar Azure PowerShell para enviar eventos
personalizados con Azure PowerShell personalizados.
PowerShell: Creación de un tema personalizado de Event Grid Script de ejemplo que crea un tema personalizado. El script
recupera el punto de conexión y una clave.
PowerShell: suscripción a eventos de un tema personalizado Script de ejemplo que crea una suscripción a un tema
personalizado. Envía eventos a un webhook.
Plantilla de Resource Manager: tema personalizado y punto de Plantilla de Resource Manager que crea un tema
conexión del webhook personalizado y una suscripción a ese tema personalizado.
Envía eventos a un webhook.
Plantilla de Resource Manager: tema personalizado y punto de Plantilla de Resource Manager que crea una suscripción a un
conexión a Event Hubs tema personalizado. Envía eventos a una instancia de Azure
Event Hubs.
Pasos siguientes
Vea los artículos siguientes:
Temas del sistema
Dominios
Temas del sistema en Azure Event Grid
04/08/2020 • 7 minutes to read • Edit Online
Un tema del sistema en Event Grid representa uno o varios eventos publicados por los servicios de Azure,
como Azure Storage y Azure Event Hubs. Por ejemplo, un tema del sistema puede representar todos los
eventos de blobs o solo los eventos de blob creado y blobs eliminado publicados para una cuenta de
almacenamiento específica . En este ejemplo, cuando se carga un blob en la cuenta de almacenamiento, el
servicio de Azure Storage publica un evento de blob creado en el tema del sistema en Event Grid, que luego
reenvía el evento a los suscriptores del tema que reciben y procesan el evento.
NOTE
Solo los servicios de Azure pueden publicar eventos en los temas del sistema. Por lo tanto, no se obtiene un punto de
conexión ni claves de acceso que se pueden usar para publicar eventos como en el caso de los temas o dominios
personalizados.
Pasos siguientes
Vea los artículos siguientes:
Creación, visualización y administración de temas del sistema mediante Azure Portal
Creación, visualización y administración de temas del sistema de Event Grid mediante la CLI de Azure
Creación de temas del sistema de Event Grid mediante plantillas de Azure Resource Manager
Azure App Configuration como origen de Event Grid
04/08/2020 • 4 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de Azure App Configuration. Para
una introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid. También
proporciona una lista de inicios rápidos y tutoriales para usar Azure App Configuration como origen de eventos.
Evento de ejemplo
En el siguiente ejemplo se muestra el esquema de un evento modificado de valor clave:
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"topic": "/subscriptions/00000000-0000-0000-0000-
000000000000/resourceGroups/testrg/providers/[Link]/configurationstores/contoso",
"subject": "[Link]
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"eventType": "[Link]",
"eventTime": "2019-05-31T20:05:03Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
[{
"id": "84e17ea4-66db-4b54-8050-df8f7763f87b",
"topic": "/subscriptions/00000000-0000-0000-0000-
000000000000/resourceGroups/testrg/providers/[Link]/configurationstores/contoso",
"subject": "[Link]
"data": {
"key": "Foo",
"label": "FizzBuzz",
"etag": "FnUExLaj2moIi4tJX9AXn9sakm0"
},
"eventType": "[Link]",
"eventTime": "2019-05-31T20:05:03Z",
"dataVersion": "1",
"metadataVersion": "1"
}]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
Reacción a eventos de Azure App Configuration con Event Información general de la integración de Azure App
Grid Configuration con Event Grid.
T ÍT ULO DESC RIP C IÓ N
Inicio rápido: Enrutamiento de eventos de Azure App Muestra cómo utilizar la CLI de Azure para enviar eventos de
Configuration a un punto de conexión web personalizado con Azure App Configuration a un webhook.
la CLI de Azure
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Para una introducción a cómo trabajar con eventos de Azure App Configuration, consulte Enrutamiento de
eventos de Azure App Configuration con la CLI de Azure.
Azure App Service como origen de Event Grid
04/08/2020 • 12 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de Azure App Service. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid. También proporciona
una lista de inicios rápidos y tutoriales para usar Azure App Service como origen de eventos.
SlotSwapWithPreviewStarted, SlotSwapWithPreviewCancelled
{
id: '7c5d6de5-eb70-4de2-b788-c52a544e68b8',
subject: '/[Link]/sites/<site-name>',
eventType: '[Link]',
eventTime: '2020-01-28T18:26:51.7194887Z',
data: {
appEventTypeDetail: null,
siteName: '<site-name>',
clientRequestId: '922f4841-20d9-4dd6-8c5b-23f0d85e5592',
correlationRequestId: '9ac46505-2b8a-4e06-834c-05ffbe2e8c3a',
requestId: '765117aa-eaf8-4bd2-a644-1dbf69c7b0fd',
address: '/websystems/WebSites/web/subscriptions/<id>/webspaces/<webspace>/sites/<site-name>/slots?
Command=SWAP&targetSlot=production',
verb: 'POST'
sourceSlot: "staging",
targetSlot: "production"
},
topic: '/subscriptions/<id>/resourceGroups/<rg>/providers/[Link]/sites/<site-name>',
dataVersion: '1',
metaDataVersion: '1'
}
[Link]
{
id: "56501672-9150-40e1-893a-18420c7fdbf7",
subject: "/[Link]/serverfarms/<plan-name>",
eventType: "[Link]",
eventTime: "2020-01-28T18:22:23.5516004Z",
data: {
serverFarmEventTypeDetail: {
stampKind: "Public",
action: "Updated",
status: "Started"
},
serverFarmId: "0",
sku: {
name: "P1v2",
tier: "PremiumV2",
size: "P1v2",
family: "Pv2",
capacity: 1
},
clientRequestId: "8f880321-a991-45c7-b743-6ff63fe4c004",
correlationRequestId: "1995c3be-ba7f-4ccf-94af-516df637ec8a",
requestId: "b973a8e6-6949-4783-b44c-ac778be831bb",
address: "/websystems/WebSites/serverfarms/subscriptions/<id>/webspaces/<webspace-
id>/serverfarms/<plan-name>/async",
verb: "PUT"
},
topic: "/subscriptions/<id>/resourceGroups/<rg>/providers/[Link]/serverfarms/<serverfarm-name>",
dataVersion: "1",
metaDataVersion: "1"
}
En este artículo se proporcionan las propiedades y los esquemas de los eventos de Blob Storage. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid. También proporciona
una lista de inicios rápidos y tutoriales para usar Azure Blob Storage como un origen de eventos.
NOTE
Solo las cuentas de almacenamiento de tipo StorageV2 (uso general v2) , BlockBlobStorage y BlobStorage admiten la
integración de eventos. Storage (uso general v1) no admite la integración con Event Grid.
NOTE
Si quiere asegurarse de que el evento [Link] se desencadena únicamente cuando un blob en
bloques está completamente confirmado, filtre el evento para las llamadas de API REST CopyBlob , PutBlob y
PutBlockList . Estas llamadas API desencadenan el evento [Link] únicamente después de que
los datos se hayan confirmado en un blob en bloques. Para información sobre cómo crear un filtro, consulte Filtrado de
eventos para Event Grid.
Lista de los eventos para las API REST de Azure Data Lake Storage Gen 2
Estos eventos se desencadenan si habilita un espacio de nombres jerárquico en la cuenta de almacenamiento y los
clientes llaman a la API REST de Azure Data Lake Storage Gen2. Para más información sobre Azure Data Lake
Storage Gen2, consulte Introducción a Azure Data Lake Storage Gen2.
NOTE
Si quiere asegurarse de que el evento [Link] se desencadena únicamente cuando un blob en
bloques está completamente confirmado, filtre el evento para la llamada de API REST FlushWithClose . Esta llamada API
desencadena el evento [Link] únicamente después de que los datos se hayan confirmado en un
blob en bloques. Para información sobre cómo crear un filtro, consulte Filtrado de eventos para Event Grid.
NOTE
Si las aplicaciones utilizan la operación PutBlockList para cargar un blob nuevo a la cuenta, los datos no contendrán estos
cambios.
[{
"topic": "/subscriptions/{subscription-
id}/resourceGroups/Storage/providers/[Link]/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/[Link]",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "CreateFile",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"eTag": "\"0x8D4BCC2E4835CD0\"",
"contentType": "text/plain",
"contentLength": 0,
"contentOffset": 0,
"blobType": "BlockBlob",
"url": "[Link]
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "2",
"metadataVersion": "1"
}]
Evento [Link]
[{
"topic": "/subscriptions/{subscription-
id}/resourceGroups/Storage/providers/[Link]/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/testcontainer/blobs/[Link]",
"eventType": "[Link]",
"eventTime": "2017-11-07T20:09:22.5674003Z",
"id": "4c2359fe-001e-00ba-0e04-58586806d298",
"data": {
"api": "DeleteBlob",
"requestId": "4c2359fe-001e-00ba-0e04-585868000000",
"contentType": "text/plain",
"blobType": "BlockBlob",
"url": "[Link]
"sequencer": "0000000000000281000000000002F5CA",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
[{
"topic": "/subscriptions/{subscription-
id}/resourceGroups/Storage/providers/[Link]/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/[Link]",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "DeleteFile",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"contentType": "text/plain",
"blobType": "BlockBlob",
"url": "[Link]
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "2",
"metadataVersion": "1"
}]
Evento [Link]
[{
"topic": "/subscriptions/{subscription-
id}/resourceGroups/Storage/providers/[Link]/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/[Link]",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "RenameFile",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"destinationUrl": "[Link]
"sourceUrl": "[Link]
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Evento [Link]
[{
"topic": "/subscriptions/{subscription-
id}/resourceGroups/Storage/providers/[Link]/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/my-new-directory",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "CreateDirectory",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"url": "[Link]
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Evento [Link]
[{
"topic": "/subscriptions/{subscription-
id}/resourceGroups/Storage/providers/[Link]/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/my-renamed-directory",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "RenameDirectory",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"destinationUrl": "[Link]
"sourceUrl": "[Link]
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Evento [Link]
[{
"topic": "/subscriptions/{subscription-
id}/resourceGroups/Storage/providers/[Link]/storageAccounts/my-storage-account",
"subject": "/blobServices/default/containers/my-file-system/blobs/directory-to-delete",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "DeleteDirectory",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"url": "[Link]
"recursive": "true",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
Guía de inicio rápido: enrutamiento de eventos de Blob Muestra cómo utilizar la CLI de Azure para enviar eventos de
Storage a un punto de conexión web personalizado con la CLI Blob Storage a un webhook.
de Azure
Guía de inicio rápido: enrutamiento de eventos de Blob Muestra cómo utilizar Azure PowerShell para enviar eventos
Storage a un punto de conexión web personalizado con de Blob Storage a un webhook.
PowerShell
Guía de inicio rápido: creación y enrutamiento de eventos de Muestra cómo utilizar el portal para enviar eventos de Blob
Blob Storage con Azure Portal Storage a un webhook.
CLI de Azure: suscripción a eventos de una cuenta de Blob Script de ejemplo que se suscribe a un evento para una
Storage cuenta de Blob Storage. Envía el evento a un webhook.
PowerShell: suscripción a eventos de una cuenta de Blob Script de ejemplo que se suscribe a un evento para una
Storage cuenta de Blob Storage. Envía el evento a un webhook.
Plantilla de Resource Manager: Creación de almacenamiento y Implementa una cuenta de Azure Blob Storage y crea una
suscripción de blobs suscripción a eventos de dicha cuenta. Envía eventos a un
webhook.
Introducción: reacción ante eventos de Blob Storage Información general de la integración de Blob Storage con
Event Grid.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Para obtener una introducción acerca del trabajo con eventos de Blob Storage, consulte Enrutamiento de
eventos de Blob Storage: CLI de Azure.
Azure Container Registry como origen de Event Grid
04/08/2020 • 6 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de Container Registry. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid.
Evento de ejemplo
En el ejemplo siguiente, se muestra el esquema de un evento de inserción de una imagen:
[{
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"topic": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-
name>/providers/[Link]/registries/<name>",
"subject": "aci-helloworld:v1",
"eventType": "ImagePushed",
"eventTime": "2018-04-25T21:39:47.6549614Z",
"data": {
"id": "31c51664-e5bd-416a-a5df-e5206bc47ed0",
"timestamp": "2018-04-25T21:39:47.276585742Z",
"action": "push",
"target": {
"mediaType": "application/[Link].v2+json",
"size": 3023,
"digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
"length": 3023,
"repository": "aci-helloworld",
"tag": "v1"
},
"request": {
"id": "7c66f28b-de19-40a4-821c-6f5f6c0003a4",
"host": "[Link]",
"method": "PUT",
"useragent": "docker/18.03.0-ce go/go1.9.4 git-commit/0520e24 os/windows arch/amd64
UpstreamClient(Docker-Client/18.03.0-ce \\\\(windows\\\\))"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
El esquema para un evento de eliminación de una imagen es similar:
[{
"id": "f06e3921-301f-42ec-b368-212f7d5354bd",
"topic": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-
name>/providers/[Link]/registries/<name>",
"subject": "aci-helloworld",
"eventType": "ImageDeleted",
"eventTime": "2018-04-26T17:56:01.8211268Z",
"data": {
"id": "f06e3921-301f-42ec-b368-212f7d5354bd",
"timestamp": "2018-04-26T17:56:00.996603117Z",
"action": "delete",
"target": {
"mediaType": "application/[Link].v2+json",
"digest": "sha256:213bbc182920ab41e18edc2001e06abcca6735d87782d9cef68abd83941cf0e5",
"repository": "aci-helloworld"
},
"request": {
"id": "aeda5b99-4197-409f-b8a8-ff539edb7de2",
"host": "[Link]",
"method": "DELETE",
"useragent": "python-requests/2.18.4"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
El esquema para un evento que se inserta en un gráfico es similar al esquema de un evento con imágenes
insertadas, pero no incluye un objeto de solicitud:
[{
"id": "ea3a9c28-5b17-40f6-a500-3f02b6829277",
"topic": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-
name>/providers/[Link]/registries/<name>",
"subject": "mychart:1.0.0",
"eventType": "[Link]",
"eventTime": "2019-03-12T22:16:31.5164086Z",
"data": {
"id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
"timestamp":"2019-03-12T22:16:31.0087496+00:00",
"action":"chart_push",
"target":{
"mediaType":"application/[Link]",
"size":25265,
"digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
"repository":"repo",
"tag":"[Link]",
"name":"mychart",
"version":"1.0.0"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
El esquema para un evento que se elimina de un gráfico es similar al esquema de un evento con imágenes
eliminadas, pero no incluye un objeto de solicitud:
[{
"id": "39136b3a-1a7e-416f-a09e-5c85d5402fca",
"topic": "/subscriptions/<subscription-id>/resourceGroups/<resource-group-
name>/providers/[Link]/registries/<name>",
"subject": "mychart:1.0.0",
"eventType": "[Link]",
"eventTime": "019-03-12T22:42:08.7034064Z",
"data": {
"id":"ea3a9c28-5b17-40f6-a500-3f02b682927",
"timestamp":"2019-03-12T22:42:08.3783775+00:00",
"action":"chart_delete",
"target":{
"mediaType":"application/[Link]",
"size":25265,
"digest":"sha256:7f060075264b5ba7c14c23672698152ae6a3ebac1c47916e4efe19cd624d5fab",
"repository":"repo",
"tag":"[Link]",
"name":"mychart",
"version":"1.0.0"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
Guía de inicio rápido: Envío de eventos de Container Registry Explica cómo utilizar la CLI de Azure para enviar eventos de
Container Registry.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Azure Event Hubs como origen de Event Grid
04/08/2020 • 3 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de Event Hubs. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid.
[
{
"topic":
"/subscriptions/<guid>/resourcegroups/rgDataMigrationSample/providers/[Link]/namespaces/tfdatamigr
atens",
"subject": "eventhubs/hubdatamigration",
"eventType": "[Link]",
"eventTime": "2017-08-31T19:12:46.0498024Z",
"id": "14e87d03-6fbf-4bb2-9a21-92bd1281f247",
"data": {
"fileUrl":
"[Link]
/31/19/11/[Link]",
"fileType": "AzureBlockBlob",
"partitionId": "1",
"sizeInBytes": 249168,
"eventCount": 1500,
"firstSequenceNumber": 2400,
"lastSequenceNumber": 3899,
"firstEnqueueTime": "2017-08-31T19:12:14.674Z",
"lastEnqueueTime": "2017-08-31T19:12:44.309Z"
},
"dataVersion": "",
"metadataVersion": "1"
}
]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
T ÍT ULO DESC RIP C IÓ N
Tutorial: transmisión de macrodatos a un almacén de datos Cuando Event Hubs crea un archivo de captura, Event Grid
envía un evento a una aplicación de función. La aplicación
recupera el archivo de captura y migra los datos a un
almacenamiento de datos.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Para obtener información sobre el control de los eventos de Event Hubs, vea Transmitir macrodatos a un
almacenamiento de datos.
Azure IoT Hub como origen de Event Grid
04/08/2020 • 12 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de Azure IoT Hub. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid.
Todos los eventos del dispositivo, excepto los eventos de telemetría del dispositivo, están disponibles con carácter
general en todas las regiones admitidas por Event Grid. El evento de telemetría del dispositivo está en versión
preliminar pública y está disponible en todas las regiones, excepto en Este de EE. UU., Oeste de EE. UU., Oeste de
Europa, Azure Government, Azure China 21Vianet y Azure Alemania.
Evento de ejemplo
El esquema para los eventos de dispositivo conectado y dispositivo desconectado tiene la misma estructura. Este
evento de ejemplo muestra el esquema de un evento que se genera cuando se conecta un dispositivo a una
instancia de IoT Hub:
[{
"id": "f6bbf8f4-d365-520d-a878-17bf7238abd8",
"topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group
name>/PROVIDERS/[Link]/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "[Link]",
"eventTime": "2018-06-02T19:17:44.4383997Z",
"data": {
"deviceConnectionStateEventInfo": {
"sequenceNumber":
"000000000000000001D4132452F67CE200000002000000000000000000000001"
},
"hubName": "egtesthub1",
"deviceId": "LogicAppTestDevice",
"moduleId" : "DeviceModuleID"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
El evento DeviceTelemetry se genera cuando se envía un evento de telemetría a IoT Hub. A continuación se
muestra un esquema de ejemplo de este evento.
[{
"id": "9af86784-8d40-fe2g-8b2a-bab65e106785",
"topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group
name>/PROVIDERS/[Link]/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "[Link]",
"eventTime": "2019-01-07T20:58:30.48Z",
"data": {
"body": {
"Weather": {
"Temperature": 900
},
"Location": "USA"
},
"properties": {
"Status": "Active"
},
"systemProperties": {
"iothub-content-type": "application/json",
"iothub-content-encoding": "utf-8",
"iothub-connection-device-id": "d1",
"iothub-connection-auth-method": "
{\"scope\":\"device\",\"type\":\"sas\",\"issuer\":\"iothub\",\"acceptingIpFilterRule\":null}",
"iothub-connection-auth-generation-id": "123455432199234570",
"iothub-enqueuedtime": "2019-01-07T20:58:30.48Z",
"iothub-message-source": "Telemetry"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
Los esquemas de los eventos DeviceCreated y DeviceDeleted tienen la misma estructura. Este evento de ejemplo
muestra el esquema de un evento que se genera cuando se registra un dispositivo en una instancia de IoT Hub:
[{
"id": "56afc886-767b-d359-d59e-0da7877166b2",
"topic": "/SUBSCRIPTIONS/<subscription ID>/RESOURCEGROUPS/<resource group
name>/PROVIDERS/[Link]/IOTHUBS/<hub name>",
"subject": "devices/LogicAppTestDevice",
"eventType": "[Link]",
"eventTime": "2018-01-02T19:17:44.4383997Z",
"data": {
"twin": {
"deviceId": "LogicAppTestDevice",
"etag": "AAAAAAAAAAE=",
"deviceEtag": "null",
"status": "enabled",
"statusUpdateTime": "0001-01-01T00:00:00",
"connectionState": "Disconnected",
"lastActivityTime": "0001-01-01T00:00:00",
"cloudToDeviceMessageCount": 0,
"authenticationType": "sas",
"x509Thumbprint": {
"primaryThumbprint": null,
"secondaryThumbprint": null
},
"version": 2,
"properties": {
"desired": {
"$metadata": {
"$lastUpdated": "2018-01-02T19:17:44.4383997Z"
},
"$version": 1
},
"reported": {
"$metadata": {
"$lastUpdated": "2018-01-02T19:17:44.4383997Z"
},
"$version": 1
}
}
},
"hubName": "egtesthub1",
"deviceId": "LogicAppTestDevice"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Propiedades de evento
Todos los eventos contienen los mismos datos de nivel superior:
Para todos los eventos de IoT Hub, el objeto de datos contiene las siguientes propiedades:
En el caso del evento de Azure IoT Hub Telemetría de dispositivo , el objeto de datos contiene el mensaje del
dispositivo a nube en formato de mensaje de IoT Hub y tiene las siguientes propiedades:
Para los eventos de IoT Hub de Dispositivo creado y Dispositivo eliminado , el objeto de datos contiene las
siguientes propiedades:
Envío de notificaciones por correo electrónico sobre eventos Una aplicación lógica envía un correo electrónico de
de Azure IoT Hub mediante Logic Apps notificación cada vez que se agrega un dispositivo a IoT Hub.
Reacción a eventos de IoT Hub usando Event Grid para Información general sobre la integración de IoT Hub con
desencadenar acciones Event Grid.
Ordenación de los eventos de dispositivo conectado y Muestra cómo ordenar los eventos de estado de conexión del
dispositivo desconectado dispositivo.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información sobre cómo IoT Hub y Event Grid funcionan de forma conjunta, vea Reacción a eventos
de IoT Hub mediante Event Grid para desencadenar acciones.
Azure Key Vault como origen de Event Grid
04/08/2020 • 5 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y el esquema de los eventos en Azure Key Vault, actualmente en
versión preliminar. Para una introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event
Grid.
Ejemplos de eventos
En el ejemplo siguiente se muestra el esquema para [Link] :
[
{
"id":"00eccf70-95a7-4e7c-8299-2eb17ee9ad64",
"topic":"/subscriptions/{subscription-id}/resourceGroups/sample-
rg/providers/[Link]/vaults/sample-kv",
"subject":"newsecret",
"eventType":"[Link]",
"eventTime":"2019-07-25T01:08:33.1036736Z",
"data":{
"Id":"[Link]
"vaultName":"sample-kv",
"objectType":"Secret",
"objectName ":"newsecret",
"version":" ee059b2bb5bc48398a53b168c6cdcb10",
"nbf":"1559081980",
"exp":"1559082102"
},
"dataVersion":"1",
"metadataVersion":"1"
}
]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
Supervisión de eventos de Key Vault con Azure Event Grid Información general sobre la integración de Key Vault con
Event Grid.
T ÍT ULO DESC RIP C IÓ N
Tutorial: Creación y supervisión de eventos de Key Vault con Obtenga información sobre cómo configurar notificaciones de
Event Grid Event Grid para Key Vault.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte el artículo de introducción a Event Grid.
Para más información sobre cómo crear una suscripción de Azure Event Grid, consulte Esquema de suscripción
de Event Grid.
Para más información sobre la integración de Key Vault con Event Grid, consulte la Key Vault de supervisión con
Azure Event Grid (versión preliminar).
Para ver un tutorial sobre la integración de Key Vault con Event Grid, consulte Recibir y responder a las
notificaciones del almacén de claves con Azure Event Grid (versión preliminar).
Para instrucciones adicionales sobre Key Vault y Azure Automation, consulte:
¿Qué es Azure Key Vault?
Supervisión de Key Vault con Azure Event Grid (versión preliminar)
Recibir y responder a las notificaciones del almacén de claves con Azure Event Grid (versión preliminar)
Información general sobre Azure Automation
Azure Machine Learning como origen de Event Grid
04/08/2020 • 8 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los eventos del área de trabajo de aprendizaje automático. Para
una introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid.
Evento [Link]
[{
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group-
name}/providers/[Link]/workspaces/{workspace-name}",
"subject": "endpoints/my-sklearn-service",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"ServiceName": "my-sklearn-service",
"ServiceComputeType": "ACI",
"ModelIds": "sklearn_regression_model:1,sklearn_regression_model:2",
"ServiceTags": {
"area": "diabetes",
"type": "regression"
},
"ServiceProperties": {
"type": "test"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
Evento [Link]
[{
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group-
name}/providers/[Link]/workspaces/{workspace-name}",
"subject": "experiments/0fa9dfaa-cba3-4fa7-b590-23e48548f5c1/runs/AutoML_ad912b2d-6467-4f32-a616-
dbe4af6dd8fc_5",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"ExperimentId": "0fa9dfaa-cba3-4fa7-b590-23e48548f5c1",
"ExperimentName": "automl-local-regression",
"RunId": "AutoML_ad912b2d-6467-4f32-a616-dbe4af6dd8fc_5",
"RunType": null,
"RunTags": {},
"RunProperties": {
"runTemplate": "automl_child",
"pipeline_id": "5adc0a4fe02504a586f09a4fcbb241f9a4012062",
"pipeline_spec": "{\"objects\": [{\"class_name\": \"StandardScaler\", \"module\":
\"[Link]\", \"param_args\": [], \"param_kwargs\": {\"with_mean\": true, \"with_std\": false},
\"prepared_kwargs\": {}, \"spec_class\": \"preproc\"}, {\"class_name\": \"LassoLars\", \"module\":
\"sklearn.linear_model\", \"param_args\": [], \"param_kwargs\": {\"alpha\": 0.001, \"normalize\": true},
\"prepared_kwargs\": {}, \"spec_class\": \"sklearn\"}], \"pipeline_id\":
\"5adc0a4fe02504a586f09a4fcbb241f9a4012062\"}",
"training_percent": "100",
"predicted_cost": "0.062226144097381045",
"iteration": "5",
"run_template": "automl_child",
"run_preprocessor": "StandardScalerWrapper",
"run_algorithm": "LassoLars",
"conda_env_data_location": "aml://artifact/ExperimentRun/dcid.AutoML_ad912b2d-6467-4f32-a616-
dbe4af6dd8fc_5/outputs/conda_env_v_1_0_0.yml",
"model_name": "AutoMLad912b2d65",
"scoring_data_location": "aml://artifact/ExperimentRun/dcid.AutoML_ad912b2d-6467-4f32-a616-
dbe4af6dd8fc_5/outputs/scoring_file_v_1_0_0.py",
"model_data_location": "aml://artifact/ExperimentRun/dcid.AutoML_ad912b2d-6467-4f32-a616-
dbe4af6dd8fc_5/outputs/[Link]"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
Evento [Link]
[{
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group-
name}/providers/[Link]/workspaces/{workspace-name}",
"subject": "datadrifts/{}/runs/{}",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"DataDriftId": "01d29aa4-e6a4-470a-9ef3-66660d21f8ef",
"DataDriftName": "myDriftMonitor",
"RunId": "01d29aa4-e6a4-470a-9ef3-66660d21f8ef_1571590300380",
"BaseDatasetId": "3c56d136-0f64-4657-a0e8-5162089a88a3",
"TargetDatasetId": "d7e74d2e-c972-4266-b5fb-6c9c182d2a74",
"DriftCoefficient": 0.83503490684792081,
"StartTime": "2019-07-04T00:00:00+00:00",
"EndTime": "2019-07-05T00:00:00+00:00"
},
"dataVersion": "",
"metadataVersion": "1"
}]
Evento [Link]
[{
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group-
name}/providers/[Link]/workspaces/{workspace-name}",
"subject": "experiments/0fa9dfaa-cba3-4fa7-b590-23e48548f5c1/runs/AutoML_ad912b2d-6467-4f32-a616-
dbe4af6dd8fc_5",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"ExperimentId": "0fa9dfaa-cba3-4fa7-b590-23e48548f5c1",
"ExperimentName": "automl-local-regression",
"RunId": "AutoML_ad912b2d-6467-4f32-a616-dbe4af6dd8fc_5",
"RunType": null,
"RunTags": {},
"RunProperties": {
"runTemplate": "automl_child",
"pipeline_id": "5adc0a4fe02504a586f09a4fcbb241f9a4012062",
"pipeline_spec": "{\"objects\": [{\"class_name\": \"StandardScaler\", \"module\":
\"[Link]\", \"param_args\": [], \"param_kwargs\": {\"with_mean\": true, \"with_std\": false},
\"prepared_kwargs\": {}, \"spec_class\": \"preproc\"}, {\"class_name\": \"LassoLars\", \"module\":
\"sklearn.linear_model\", \"param_args\": [], \"param_kwargs\": {\"alpha\": 0.001, \"normalize\": true},
\"prepared_kwargs\": {}, \"spec_class\": \"sklearn\"}], \"pipeline_id\":
\"5adc0a4fe02504a586f09a4fcbb241f9a4012062\"}",
"training_percent": "100",
"predicted_cost": "0.062226144097381045",
"iteration": "5",
"run_template": "automl_child",
"run_preprocessor": "StandardScalerWrapper",
"run_algorithm": "LassoLars",
"conda_env_data_location": "aml://artifact/ExperimentRun/dcid.AutoML_ad912b2d-6467-4f32-a616-
dbe4af6dd8fc_5/outputs/conda_env_v_1_0_0.yml",
"model_name": "AutoMLad912b2d65",
"scoring_data_location": "aml://artifact/ExperimentRun/dcid.AutoML_ad912b2d-6467-4f32-a616-
dbe4af6dd8fc_5/outputs/scoring_file_v_1_0_0.py",
"model_data_location": "aml://artifact/ExperimentRun/dcid.AutoML_ad912b2d-6467-4f32-a616-
dbe4af6dd8fc_5/outputs/[Link]"
},
"RunStatus": "failed"
},
"dataVersion": "",
"metadataVersion": "1"
}]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
El objeto de datos tiene las siguientes propiedades para cada tipo de evento:
[Link]
P RO P IEDA D T IP O DESC RIP C IÓ N
[Link]
P RO P IEDA D T IP O DESC RIP C IÓ N
[Link]
P RO P IEDA D T IP O DESC RIP C IÓ N
[Link]
P RO P IEDA D T IP O DESC RIP C IÓ N
[Link]
P RO P IEDA D T IP O DESC RIP C IÓ N
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
Consumo de eventos de Azure Machine Learning Información general de la integración de Azure Machine
Learning con Event Grid.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para obtener más información sobre la creación de una suscripción de Azure Event Grid, vea Esquema de
suscripción de Event Grid.
Para obtener una introducción sobre cómo usar Azure Event Grid con Azure Machine Learning, vea Consumo
de eventos de Azure Machine Learning.
Para obtener un ejemplo de cómo usar Azure Event Grid con Azure Machine Learning, vea Creación de flujos de
trabajo de aprendizaje automático basados en eventos.
Azure Maps como origen de Event Grid
04/08/2020 • 9 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de Azure Maps. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid. También proporciona
una lista de inicios rápidos y tutoriales para usar Azure Maps como un origen de eventos.
Ejemplos de eventos
En el ejemplo siguiente, se muestra el esquema de un evento GeofenceEntered
{
"id":"7f8446e2-1ac7-4234-8425-303726ea3981",
"topic":"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/[Link]/accounts/{acc
ountName}",
"subject":"/spatial/geofence/udid/{udid}/id/{eventId}",
"data":{
"geometries":[
{
"deviceId":"device_1",
"udId":"1a13b444-4acf-32ab-ce4e-9ca4af20b169",
"geometryId":"2",
"distance":-999.0,
"nearestLat":47.618786,
"nearestLon":-122.132151
}
],
"expiredGeofenceGeometryId":[
],
"invalidPeriodGeofenceGeometryId":[
]
},
"eventType":"[Link]",
"eventTime":"2018-11-08T00:54:17.6408601Z",
"metadataVersion":"1",
"dataVersion":"1.0"
}
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
Se devuelve el objeto de error cuando se produce un error en la API de Maps. El objeto de error tiene las siguientes
propiedades:
Se devuelve el objeto ErrorDetails cuando se produce un error en la API de Maps. El objeto ErrorDetails tiene las
siguientes propiedades:
InnerError es un objeto que contiene información específica del servicio sobre el error. El objeto InnerError tiene
las siguientes propiedades:
P RO P IEDA D T IP O DESC RIP C IÓ N
El objeto "geometries" muestra los identificadores de geometría de las geovallas que han expirado en relación con
la hora que especificó el usuario en la solicitud. El objeto "geometries" tiene elementos de geometría con las
siguientes propiedades:
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
Reaccionar a eventos de Azure Maps mediante Event Grid Información general de la integración de Azure Maps con
Event Grid.
Tutorial: configuración de una geovalla Este tutorial le guiará por los pasos básicos para configurar la
geovalla con Azure Maps. Usará Azure Event Grid para
transmitir los resultados de la geovalla y establecer una
notificación basada en los resultados de esa geovalla.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Azure Media Services como origen de Event Grid
04/08/2020 • 25 minutes to read • Edit Online
En este artículo se proporcionan los esquemas y las propiedades para los eventos de Media Services.
NOTE
Todos los eventos de nivel de seguimiento se generan después de conectarse un codificador en directo.
Donde el estado del trabajo puede ser uno de los valores siguientes: Queued, Scheduled, Processing, Finished,
Error, Canceled, Canceling.
NOTE
Queued solo estará presente en la propiedad previousState pero no en la propiedad state.
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "[Link]",
"eventTime": "2018-10-12T16:12:18.0839935",
"id": "a0a6efc8-f647-4fc2-be73-861fa25ba2db",
"data": {
"previousState": "Scheduled",
"state": "Processing",
"correlationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
JobFinished, JobCanceled, JobErrored
Para cada cambio de estado de trabajo final (por ejemplo, JobFinished, JobCanceled y JobErrored), el esquema de
ejemplo tiene un aspecto similar al siguiente:
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "[Link]",
"eventTime": "2018-10-12T16:25:56.4115495",
"id": "9e07e83a-dd6e-466b-a62f-27521b216f2a",
"data": {
"outputs": [
{
"@[Link]": "#[Link]",
"assetName": "output-7640689F",
"error": null,
"label": "VideoAnalyzerPreset_0",
"progress": 100,
"state": "Finished"
}
],
"previousState": "Processing",
"state": "Finished",
"correlationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
JobOutputStateChange
En este ejemplo se muestra el esquema del evento JobOutputStateChange :
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "[Link]",
"eventTime": "2018-10-12T16:25:56.0242854",
"id": "dde85f46-b459-4775-b5c7-befe8e32cf90",
"data": {
"previousState": "Processing",
"output": {
"@[Link]": "#[Link]",
"assetName": "output-7640689F",
"error": null,
"label": "VideoAnalyzerPreset_0",
"progress": 100,
"state": "Finished"
},
"jobCorrelationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
[{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/<job-id>",
"eventType": "[Link]",
"eventTime": "2018-10-12T16:12:18.0061141",
"id": "f1fd5338-1b6c-4e31-83c9-cd7c88d2aedb",
"data": {
"previousState": "Scheduled",
"output": {
"@[Link]": "#[Link]",
"assetName": "output-7640689F",
"error": null,
"label": "VideoAnalyzerPreset_0",
"progress": 0,
"state": "Processing"
},
"jobCorrelationData": {
"testKey1": "testValue1",
"testKey2": "testValue2"
}
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
JobOutputProgress
El esquema de ejemplo es similar al siguiente:
[{
"topic": "/subscriptions/<subscription-
id>/resourceGroups/belohGroup/providers/[Link]/mediaservices/<account-name>",
"subject": "transforms/VideoAnalyzerTransform/jobs/job-5AB6DE32",
"eventType": "[Link]",
"eventTime": "2018-12-10T18:20:12.1514867",
"id": "00000000-0000-0000-0000-000000000000",
"data": {
"jobCorrelationData": {
"TestKey1": "TestValue1",
"testKey2": "testValue2"
},
"label": "VideoAnalyzerPreset_0",
"progress": 86
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
LiveEventConnectionRejected
En el ejemplo siguiente, se muestra el esquema de un evento LiveEventConnectionRejected :
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaServices/<account-name>",
"subject": "/LiveEvents/MyLiveEvent1",
"eventType": "[Link]",
"eventTime": "2018-01-16T01:57:26.005121Z",
"id": "b303db59-d5c1-47eb-927a-3650875fded1",
"data": {
"streamId":"Mystream1",
"ingestUrl": "[Link]
"encoderIp": "[Link]",
"encoderPort": 52859,
"resultCode": "MPE_INGEST_CODEC_NOT_SUPPORTED"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
Puede encontrar los códigos de resultado de error en Códigos de error de eventos en directo de Media Services.
LiveEventEncoderConnected
En el ejemplo siguiente, se muestra el esquema de un evento LiveEventEncoderConnected :
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "[Link]",
"eventTime": "2018-08-07T23:08:09.1710643",
"id": "<id>",
"data": {
"ingestUrl": "[Link]
"streamId": "15864-stream0",
"encoderIp": "[Link]",
"encoderPort": "27485"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
LiveEventEncoderDisconnected
En el ejemplo siguiente, se muestra el esquema de un evento LiveEventEncoderDisconnected :
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "[Link]",
"eventTime": "2018-08-07T23:08:09.1710872",
"id": "<id>",
"data": {
"ingestUrl": "[Link]
"streamId": "15864-stream0",
"encoderIp": "[Link]",
"encoderPort": "27485",
"resultCode": "S_OK"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
Puede encontrar los códigos de resultado de error en Códigos de error de eventos en directo de Media Services.
Los códigos de resultado del cierre estable son:
LiveEventIncomingDataChunkDropped
En el ejemplo siguiente, se muestra el esquema de un evento LiveEventIncomingDataChunkDropped :
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaServices/<account-name>",
"subject": "/LiveEvents/MyLiveEvent1",
"eventType": "[Link]",
"eventTime": "2018-01-16T01:57:26.005121Z",
"id": "03da9c10-fde7-48e1-80d8-49936f2c3e7d",
"data": {
"trackType": "Video",
"trackName": "Video",
"bitrate": 300000,
"timestamp": 36656620000,
"timescale": 10000000,
"resultCode": "FragmentDrop_OverlapTimestamp"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
LiveEventIncomingStreamReceived
En el ejemplo siguiente, se muestra el esquema de un evento LiveEventIncomingStreamReceived :
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "[Link]",
"eventTime": "2018-08-07T23:08:10.5069288Z",
"id": "7f939a08-320c-47e7-8250-43dcfc04ab4d",
"data": {
"ingestUrl": "[Link]
[Link]/[Link]/Streams(15864-stream0)15864-stream0",
"trackType": "video",
"trackName": "video",
"bitrate": 2962000,
"encoderIp": "[Link]",
"encoderPort": "27485",
"timestamp": "15336831655032322",
"duration": "20000000",
"timescale": "10000000"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
LiveEventIncomingStreamsOutOfSync
En el ejemplo siguiente, se muestra el esquema de un evento LiveEventIncomingStreamsOutOfSync :
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "[Link]",
"eventTime": "2018-08-10T02:26:20.6269183Z",
"id": "b9d38923-9210-4c2b-958f-0054467d4dd7",
"data": {
"minLastTimestamp": "319996",
"typeOfStreamWithMinLastTimestamp": "Audio",
"maxLastTimestamp": "366000",
"typeOfStreamWithMaxLastTimestamp": "Video",
"timescaleOfMinLastTimestamp": "10000000",
"timescaleOfMaxLastTimestamp": "10000000"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
LiveEventIncomingVideoStreamsOutOfSync
En el ejemplo siguiente, se muestra el esquema de un evento LiveEventIncomingVideoStreamsOutOfSync :
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaServices/<account-name>",
"subject": "/LiveEvents/LiveEvent1",
"eventType": "[Link]",
"eventTime": "2018-01-16T01:57:26.005121Z",
"id": "6dd4d862-d442-40a0-b9f3-fc14bcf6d750",
"data": {
"firstTimestamp": "2162058216",
"firstDuration": "2000",
"secondTimestamp": "2162057216",
"secondDuration": "2000",
"timescale": "10000000"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
LiveEventIngestHeartbeat
En el ejemplo siguiente, se muestra el esquema de un evento LiveEventIngestHear tbeat :
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "[Link]",
"eventTime": "2018-08-07T23:17:57.4610506",
"id": "7f450938-491f-41e1-b06f-c6cd3965d786",
"data": {
"trackType": "audio",
"trackName": "audio",
"bitrate": 160000,
"incomingBitrate": 155903,
"lastTimestamp": "15336837535253637",
"timescale": "10000000",
"overlapCount": 0,
"discontinuityCount": 0,
"nonincreasingCount": 0,
"unexpectedBitrate": false,
"state": "Running",
"healthy": true
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
LiveEventTrackDiscontinuityDetected
En el ejemplo siguiente, se muestra el esquema de un evento LiveEventTrackDiscontinuityDetected :
[
{
"topic": "/subscriptions/<subscription-id>/resourceGroups/<rg-
name>/providers/[Link]/mediaservices/<account-name>",
"subject": "liveEvent/mle1",
"eventType": "[Link]",
"eventTime": "2018-08-07T23:18:06.1270405Z",
"id": "5f4c510d-5be7-4bef-baf0-64b828be9c9b",
"data": {
"trackName": "video",
"previousTimestamp": "15336837615032322",
"trackType": "video",
"bitrate": 2962000,
"newTimestamp": "15336837619774273",
"discontinuityGap": "575284",
"timescale": "10000000"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}
]
Pasos siguientes
Regístrese para los eventos de cambio de estado del trabajo
Consulte también
EventGrid .NET SDK that includes Media Service events (SDK de .NET en EventGrid que incluye eventos de
Media Services)
Definitions of Media Services events (Definición de eventos de Media Services)
Códigos de error de eventos en directo de Media Services
Grupo de recursos de Azure como origen de Event
Grid
04/08/2020 • 11 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de grupo de recursos. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid.
Las suscripciones y los grupos de recursos de Azure emiten los mismos tipos de eventos. Los tipos de evento
están relacionados con acciones o cambios en los recursos. La diferencia principal es que los grupos de recursos
emiten eventos para los recursos en el grupo de recursos y las suscripciones de Azure emiten eventos para los
recursos a través de la suscripción.
Los eventos de recursos se crean para las operaciones PUT, PATCH, POST y DELETE que se envían a
[Link] . Las operaciones GET no crean eventos. Las operaciones enviadas al plano de datos (como
[Link] ) no crean eventos. Los eventos de acción proporcionan datos de evento para
operaciones como enumerar las claves para un recurso.
Cuando se suscribe a eventos para un grupo de recursos, el punto de conexión recibe todos los eventos de ese
grupo de recursos. Los eventos pueden incluir el evento que desea ver, como la actualización de una máquina
virtual, pero también los eventos que quizá no son importantes para usted, como escribir una nueva entrada en el
historial de implementación. Puede recibir todos los eventos en el punto de conexión y escribir código que
procese los eventos que quiere administrar. O bien, puede establecer un filtro al crear la suscripción al evento.
Para controlar los eventos mediante programación, puede ordenarlos examinando el valor operationName . Por
ejemplo, el punto de conexión de eventos podría procesar solamente eventos para las operaciones que son
iguales a [Link]/virtualMachines/write o [Link]/storageAccounts/write .
El asunto del evento es el identificador de recurso correspondiente al recurso que es el destino de la operación.
Para filtrar eventos para un recurso, proporcione ese identificador de recurso creando la suscripción de eventos.
Para filtrar por un tipo de recurso, use un valor en el formato siguiente:
/subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/[Link]/virtualMachines
Evento de ejemplo
En el ejemplo siguiente se muestra el esquema para un evento ResourceWriteSuccess . Se usa el mismo
esquema para eventos ResourceWriteFailure y ResourceWriteCancel con valores diferentes para eventType .
[{
"subject": "/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/[Link]/storageAccounts/{storage-name}",
"eventType": "[Link]",
"eventTime": "2018-07-19T18:38:04.6117357Z",
"id": "4db48cba-50a2-455a-93b4-de41a3b5b7f6",
"data": {
"authorization": {
"scope": "/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/[Link]/storageAccounts/{storage-name}",
"action": "[Link]/storageAccounts/write",
"evidence": {
"role": "Subscription Admin"
}
},
"claims": {
"aud": "{audience-claim}",
"iss": "{issuer-claim}",
"iat": "{issued-at-claim}",
"nbf": "{not-before-claim}",
"exp": "{expiration-claim}",
"_claim_names": "{\"groups\":\"src1\"}",
"_claim_sources": "{\"src1\":{\"endpoint\":\"{URI}\"}}",
"[Link] "1",
"aio": "{token}",
"[Link] "rsa,mfa",
"appid": "{ID}",
"appidacr": "2",
"[Link] "{ID}",
"e_exp": "{expiration}",
"[Link] "{last-name}",
"[Link] "{first-name}",
"ipaddr": "{IP-address}",
"name": "{full-name}",
"[Link] "{ID}",
"onprem_sid": "{ID}",
"puid": "{ID}",
"[Link] "user_impersonation",
"[Link] "{ID}",
"[Link] "{ID}",
"[Link] "{user-name}",
"[Link] "{user-name}",
"uti": "{ID}",
"ver": "1.0"
},
"correlationId": "{ID}",
"resourceProvider": "[Link]",
"resourceUri": "/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/[Link]/storageAccounts/{storage-name}",
"operationName": "[Link]/storageAccounts/write",
"status": "Succeeded",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}"
},
"dataVersion": "2",
"metadataVersion": "1",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}"
}]
[{
"subject": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
"eventType": "[Link]",
"eventTime": "2018-10-08T22:46:22.6022559Z",
"id": "{ID}",
"data": {
"authorization": {
"scope": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
"action": "[Link]/namespaces/AuthorizationRules/listKeys/action",
"evidence": {
"role": "Contributor",
"roleAssignmentScope": "/subscriptions/{subscription-id}",
"roleAssignmentId": "{ID}",
"roleDefinitionId": "{ID}",
"principalId": "{ID}",
"principalType": "ServicePrincipal"
}
},
"claims": {
"aud": "{audience-claim}",
"iss": "{issuer-claim}",
"iat": "{issued-at-claim}",
"nbf": "{not-before-claim}",
"exp": "{expiration-claim}",
"aio": "{token}",
"appid": "{ID}",
"appidacr": "2",
"[Link] "{URL}",
"[Link] "{ID}",
"[Link] "{ID}",
"[Link] "{ID}",
"uti": "{ID}",
"ver": "1.0"
},
"correlationId": "{ID}",
"httpRequest": {
"clientRequestId": "{ID}",
"clientIpAddress": "{IP-address}",
"method": "POST",
"url": "[Link]
group}/providers/[Link]/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey/listKe
ys?api-version=2017-04-01"
},
"resourceProvider": "[Link]",
"resourceUri": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
"operationName": "[Link]/namespaces/AuthorizationRules/listKeys/action",
"status": "Succeeded",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}"
},
"dataVersion": "2",
"metadataVersion": "1",
"topic": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}"
}]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
P RO P IEDA D T IP O DESC RIP C IÓ N
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
Tutorial: supervisión de los cambios en máquinas virtuales con Una aplicación lógica supervisa los cambios realizados en una
Azure Event Grid y Logic Apps máquina virtual y envía mensajes de correo electrónico sobre
dichos cambios.
CLI de Azure: suscripción a eventos para un grupo de Script de ejemplo que se suscribe a eventos para un grupo de
recursos recursos. Envía eventos a un webhook.
CLI de Azure: suscripción a eventos de un grupo de recursos Script de ejemplo que se suscribe a eventos para un grupo de
y filtrado de los eventos de un recurso recursos y filtra los eventos para un recurso.
PowerShell: suscripción a eventos para un grupo de recursos Script de ejemplo que se suscribe a eventos para un grupo de
recursos. Envía eventos a un webhook.
PowerShell: suscripción a eventos para un grupo de recursos y Script de ejemplo que se suscribe a eventos para un grupo de
filtrado de los eventos para un recurso recursos y filtra los eventos para un recurso.
Plantilla de Resource Manager: suscripción de recursos Se suscribe a eventos para una suscripción o grupo de
recursos de Azure. Envía eventos a un webhook.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Azure Service Bus como origen de Event Grid
04/08/2020 • 5 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de Service Bus. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid.
Evento de ejemplo
En el ejemplo siguiente se muestra el esquema de mensajes activos sin ningún evento de agentes de escucha:
[{
"topic": "/subscriptions/{subscription-id}/resourcegroups/{your-
rg}/providers/[Link]/namespaces/{your-service-bus-namespace}",
"subject": "topics/{your-service-bus-topic}/subscriptions/{your-service-bus-subscription}",
"eventType": "[Link]",
"eventTime": "2018-02-14T05:12:53.4133526Z",
"id": "dede87b0-3656-419c-acaf-70c95ddc60f5",
"data": {
"namespaceName": "YOUR SERVICE BUS NAMESPACE WILL SHOW HERE",
"requestUri": "[Link]
topic}/subscriptions/{your-service-bus-subscription}/messages/head",
"entityType": "subscriber",
"queueName": "QUEUE NAME IF QUEUE",
"topicName": "TOPIC NAME IF TOPIC",
"subscriptionName": "SUBSCRIPTION NAME"
},
"dataVersion": "1",
"metadataVersion": "1"
}]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
Tutorial: Ejemplos de integración de Azure Service Bus en Event Grid envía mensajes de temas de Service Bus a la
Azure Event Grid aplicación de función y a la aplicación lógica.
Integración de Azure Service Bus en Event Grid Información general de la integración de Service Bus con
Event Grid.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Para obtener más información sobre cómo usar Azure Event Grid con Service Bus, consulte Introducción a la
integración de Azure Service Bus en Azure Event Grid.
Pruebe a recibir eventos de Service Bus con Functions o Logic Apps.
Esquema de eventos de Azure Event Grid para
SignalR Service
04/08/2020 • 4 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de SignalR Service. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid. También proporciona
una lista de inicios rápidos y tutoriales para usar Azure SignalR como un origen de eventos.
Evento de ejemplo
En el ejemplo siguiente, se muestra el esquema de un evento de dispositivo conectado en la conexión de cliente:
[{
"topic": "/subscriptions/{subscription-id}/resourceGroups/signalr-
rg/providers/[Link]/SignalR/signalr-resource",
"subject": "/hub/chat",
"eventType": "[Link]",
"eventTime": "2019-06-10T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"timestamp": "2019-06-10T18:41:00.9584103Z",
"hubName": "chat",
"connectionId": "crH0uxVSvP61p5wkFY1x1A",
"userId": "user-eymwyo23"
},
"dataVersion": "1.0",
"metadataVersion": "1"
}]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
Reaccionar a eventos de Azure SignalR Service mediante Event Información general sobre la integración de Azure SignalR
Grid Service con Event Grid.
Cómo enviar eventos de Azure SignalR Service a Event Grid Muestra cómo enviar eventos de Azure SignalR Service a una
aplicación a través de Event Grid.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Suscripción de Azure como origen de Event Grid
04/08/2020 • 10 minutes to read • Edit Online
En este artículo se proporcionan las propiedades y los esquemas de los eventos de suscripción de Azure. Para una
introducción a los esquemas de eventos, consulte Esquema de eventos de Azure Event Grid.
Las suscripciones y los grupos de recursos de Azure emiten los mismos tipos de eventos. Los tipos de evento están
relacionados con acciones o cambios en los recursos. La diferencia principal es que los grupos de recursos emiten
eventos para los recursos en el grupo de recursos y las suscripciones de Azure emiten eventos para los recursos a
través de la suscripción.
Los eventos de recursos se crean para las operaciones PUT, PATCH, POST y DELETE que se envían a
[Link] . Las operaciones GET no crean eventos. Las operaciones enviadas al plano de datos (como
[Link] ) no crean eventos. Los eventos de acción proporcionan datos de evento para
operaciones como enumerar las claves para un recurso.
Cuando se suscribe a eventos para una suscripción de Azure, el punto de conexión recibe todos los eventos de esa
suscripción. Los eventos pueden incluir el evento que desea ver, como la actualización de una máquina virtual,
pero también los eventos que quizá no son importantes para usted, como escribir una nueva entrada en el
historial de implementación. Puede recibir todos los eventos en el punto de conexión y escribir código que procese
los eventos que quiere administrar. O bien, puede establecer un filtro al crear la suscripción al evento.
Para controlar los eventos mediante programación, puede ordenarlos examinando el valor operationName . Por
ejemplo, el punto de conexión de eventos podría procesar solamente eventos para las operaciones que son iguales
a [Link]/virtualMachines/write o [Link]/storageAccounts/write .
El asunto del evento es el identificador de recurso correspondiente al recurso que es el destino de la operación.
Para filtrar eventos para un recurso, proporcione ese identificador de recurso creando la suscripción de eventos.
Para filtrar por un tipo de recurso, use un valor en el formato siguiente:
/subscriptions/<subscription-id>/resourcegroups/<resource-group>/providers/[Link]/virtualMachines
Evento de ejemplo
En el ejemplo siguiente se muestra el esquema para un evento ResourceWriteSuccess . Se usa el mismo
esquema para eventos ResourceWriteFailure y ResourceWriteCancel con valores diferentes para eventType .
[{
"subject": "/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/[Link]/storageAccounts/{storage-name}",
"eventType": "[Link]",
"eventTime": "2018-07-19T18:38:04.6117357Z",
"id": "4db48cba-50a2-455a-93b4-de41a3b5b7f6",
"data": {
"authorization": {
"scope": "/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/[Link]/storageAccounts/{storage-name}",
"action": "[Link]/storageAccounts/write",
"evidence": {
"role": "Subscription Admin"
}
},
"claims": {
"aud": "{audience-claim}",
"iss": "{issuer-claim}",
"iat": "{issued-at-claim}",
"nbf": "{not-before-claim}",
"exp": "{expiration-claim}",
"_claim_names": "{\"groups\":\"src1\"}",
"_claim_sources": "{\"src1\":{\"endpoint\":\"{URI}\"}}",
"[Link] "1",
"aio": "{token}",
"[Link] "rsa,mfa",
"appid": "{ID}",
"appidacr": "2",
"[Link] "{ID}",
"e_exp": "{expiration}",
"[Link] "{last-name}",
"[Link] "{first-name}",
"ipaddr": "{IP-address}",
"name": "{full-name}",
"[Link] "{ID}",
"onprem_sid": "{ID}",
"puid": "{ID}",
"[Link] "user_impersonation",
"[Link] "{ID}",
"[Link] "{ID}",
"[Link] "{user-name}",
"[Link] "{user-name}",
"uti": "{ID}",
"ver": "1.0"
},
"correlationId": "{ID}",
"resourceProvider": "[Link]",
"resourceUri": "/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/[Link]/storageAccounts/{storage-name}",
"operationName": "[Link]/storageAccounts/write",
"status": "Succeeded",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}"
},
"dataVersion": "2",
"metadataVersion": "1",
"topic": "/subscriptions/{subscription-id}"
}]
[{
"subject": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
"eventType": "[Link]",
"eventTime": "2018-10-08T22:46:22.6022559Z",
"id": "{ID}",
"data": {
"authorization": {
"scope": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
"action": "[Link]/namespaces/AuthorizationRules/listKeys/action",
"evidence": {
"role": "Contributor",
"roleAssignmentScope": "/subscriptions/{subscription-id}",
"roleAssignmentId": "{ID}",
"roleDefinitionId": "{ID}",
"principalId": "{ID}",
"principalType": "ServicePrincipal"
}
},
"claims": {
"aud": "{audience-claim}",
"iss": "{issuer-claim}",
"iat": "{issued-at-claim}",
"nbf": "{not-before-claim}",
"exp": "{expiration-claim}",
"aio": "{token}",
"appid": "{ID}",
"appidacr": "2",
"[Link] "{URL}",
"[Link] "{ID}",
"[Link] "{ID}",
"[Link] "{ID}",
"uti": "{ID}",
"ver": "1.0"
},
"correlationId": "{ID}",
"httpRequest": {
"clientRequestId": "{ID}",
"clientIpAddress": "{IP-address}",
"method": "POST",
"url": "[Link]
group}/providers/[Link]/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey/listKe
ys?api-version=2017-04-01"
},
"resourceProvider": "[Link]",
"resourceUri": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/namespaces/{namespace}/AuthorizationRules/RootManageSharedAccessKey",
"operationName": "[Link]/namespaces/AuthorizationRules/listKeys/action",
"status": "Succeeded",
"subscriptionId": "{subscription-id}",
"tenantId": "{tenant-id}"
},
"dataVersion": "2",
"metadataVersion": "1",
"topic": "/subscriptions/{subscription-id}"
}]
Propiedades de evento
Un evento tiene los siguientes datos de nivel superior:
P RO P IEDA D T IP O DESC RIP C IÓ N
Tutoriales y procedimientos
T ÍT ULO DESC RIP C IÓ N
Tutorial: Integración de Azure Automation con Event Grid y Cree una máquina virtual, que envía un evento. El evento
Microsoft Teams desencadena un runbook de Automation que etiqueta la
máquina virtual y genera un mensaje que se envía a un canal
de Equipos de Microsoft.
Suscripción a eventos mediante el portal Uso del portal para la suscripción a eventos desde una
suscripción de Azure.
CLI de Azure: suscripción a eventos desde una suscripción de Script de ejemplo que crea una suscripción de Event Grid para
Azure una suscripción de Azure y envía eventos a un webhook.
PowerShell: suscripción a eventos desde una suscripción de Script de ejemplo que crea una suscripción de Event Grid para
Azure una suscripción de Azure y envía eventos a un webhook.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte el artículo de introducción a Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Temas del asociado en Azure Event Grid (versión
preliminar)
04/08/2020 • 2 minutes to read • Edit Online
Mediante el uso de los temas del asociado, puede conectar orígenes de eventos de terceros directamente a Azure
Event Grid. Esta integración le permite suscribirse a eventos de los asociados de la misma manera que se suscribe
a los eventos de los servicios de Azure.
Asociados disponibles
El primer asociado disponible mediante los temas del asociado de Event Grid es Auth0. El tema de asociado Auth0
se puede usar para conectar las cuentas de Auth0 y de Azure. La integración permite reaccionar a eventos de
Auth0 en tiempo real, así como registrarlos y supervisarlos.
Para probarlo, inicie sesión en su cuenta de Auth0 y cree una integración de Event Grid. Después de hacer clic en
Crear en Auth0, verá un tema Auth0 pendiente en su cuenta de Azure. Seleccione Activar y podrá crear
suscripciones a Event Grid para enrutar, filtrar y enviar los eventos de la misma manera que con cualquier otro
origen de eventos.
Precios
Los temas del asociado se cobran con la misma tarifa de operación que los temas del sistema.
Límites
Los temas del asociado se encuentran en versión preliminar pública. Durante la versión preliminar pública, los
temas del asociado están sujetos a los mismos límites que los temas del sistema y los temas personalizados.
Pasos siguientes
Tema del asociado Auth0
Cómo usar el tema del asociado Auth0
Convertirse en asociado de Event Grid
Temas de asociados de Auth0
04/08/2020 • 3 minutes to read • Edit Online
Auth0, la plataforma de identidad para desarrolladores de aplicaciones, proporciona a los desarrolladores y a las
empresas los pilares que necesitan para proteger sus aplicaciones.
El tema de asociados de Auth0 permite usar eventos que emite el sistema de Auth0 para llevar a cabo una serie de
tareas. Interactúe con los usuarios de maneras significativas después de la autenticación o automatice las tareas de
infraestructura y seguridad.
La integración le permite transmitir por secuencias los eventos de registro de Auth0 con alta confiabilidad en
Azure. Allí, puede consumir los eventos con sus recursos de Azure favoritos. Esta integración le permite reaccionar
a eventos, obtener información, supervisar problemas de seguridad e interactuar con otras canalizaciones de
datos eficaces.
En el caso de las organizaciones que usan Auth0 y Azure, esta integración permite integrar sin problemas los
datos en toda la pila.
Casos de uso
Interacción con los usuarios
Proporcionar una experiencia de usuario segura es fundamental para reducir el abandono de clientes y
mantenerlos. Ofrezca experiencias de aplicación más personalizadas mediante eventos de Auth0 con Azure
Functions y Azure Logic Apps.
Descripción del comportamiento del usuario
Comprenda cuándo los usuarios acceden al producto, desde dónde inician sesión y los dispositivos que usan.
Desarrolle una descripción de las áreas del producto que más interesan realizando un seguimiento de estas
señales. Estas señales ayudan a determinar lo siguiente:
Los exploradores y dispositivos que se van a admitir.
Los idiomas en los que se va a localizar la aplicación.
Cuándo se producen los momentos máximos de tráfico.
Administración de datos del usuario
Mantener y auditar las acciones del usuario resulta fundamental para mantener la seguridad y cumplir las
siguientes normas del sector. La capacidad de editar, quitar o exportar los datos de usuario es cada vez más
importante para seguir las leyes de privacidad, como el Reglamento general de protección de datos (RGPD) de la
Unión Europea.
Protección de la aplicación
La combinación de procedimientos de supervisión de seguridad y respuesta a incidentes es importante cuando se
protege un sistema distribuido. Por este motivo, es importante mantener todos los datos en un mismo lugar y
supervisar toda la pila.
Pasos siguientes
Introducción a los temas de asociados
Procedimientos para usar el tema de asociado de Auth0
Documentación de Auth0
Convertirse en asociado de Event Grid
Incorporación como asociado de Azure Event Grid
04/08/2020 • 11 minutes to read • Edit Online
En este artículo se describe cómo usar de forma privada los recursos de asociados de Azure Event Grid y cómo
hacer que un tipo de tema de asociado esté disponible públicamente.
No necesita permisos especiales para empezar a usar los tipos de recursos de Event Grid asociados a la
publicación de eventos como asociado de Event Grid. De hecho, puede usarlos hoy mismo para publicar eventos
de forma privada en sus propias suscripciones a Azure, así como para probar el modelo de recursos si está
pensando en convertirse en asociado.
3. Cree uno o varios espacios de nombres de asociados en cada región en la que quiera publicar eventos. El
servicio Event Grid aprovisiona un punto de conexión de publicación (por ejemplo,
[Link] ) y las claves de acceso.
4. Proporcione una manera para que los clientes se registren en el sistema en el que quieran un tema de
asociado.
5. Póngase en contacto con el equipo de Event Grid si quiere que su tipo de tema de asociado pase a estar
disponible públicamente.
Flujo de clientes
1. El cliente visita Azure Portal para tomar nota del grupo de recursos y el identificador de la suscripción de
Azure en los que le gustaría que se creara el tema del asociado.
2. El cliente solicita un tema de asociado a través del sistema. En respuesta a esto, puede crear un túnel de
eventos para el espacio de nombres del asociado.
3. Event Grid crea un tema de asociado pendiente en el grupo de recursos y la suscripción de Azure del
cliente.
4. El cliente activa el tema de asociado a través de Azure Portal. Los eventos ahora podrán fluir desde su
servicio a la suscripción de Azure del cliente.
Modelo de recursos
El siguiente modelo de recursos es para los temas de asociados.
Registros de dispositivos
Recurso: partnerRegistrations
Usado por: Asociados
Descripción: captura los metadatos globales del asociado de software como servicio (por ejemplo, el
nombre, nombre para mostrar, descripción y URI de configuración).
La creación o actualización de un registro de asociado es una operación de autoservicio para los asociados.
Esta capacidad de autoservicio permite a los asociados compilar y probar el flujo completo.
Los clientes solo pueden detectar los registros de asociados aprobados por Microsoft.
Ámbito: creado en la suscripción de Azure del asociado. Los metadatos son visibles para los clientes
después de hacerse públicos.
Espacios de nombres de los asociados
Recurso: partnerNamespaces
Usado por: Asociados
Descripción: proporciona un recurso regional en el que publicar eventos de los clientes. Cada espacio de
nombres asociado tiene un punto de conexión de publicación y claves de autenticación. El espacio de nombres
también es la forma en que el asociado solicita un tema de asociado para un cliente determinado y enumera a
los clientes activos.
Ámbito: reside en la suscripción del asociado.
Canal de eventos
Recurso: partnerNamespaces/eventChannels
Usado por: Asociados
Descripción: los túneles de eventos son un reflejo del tema de asociado del cliente. Mediante la creación de un
túnel de eventos y la especificación del grupo de recursos y la suscripción a Azure del cliente en los metadatos,
indica a Event Grid que cree un tema de asociado para el cliente. Event Grid emitirá una llamada a ARM para
crear el elemento partnerTopic correspondiente en la suscripción del cliente. El tema del asociado se crea con
un estado "pendiente". Hay un vínculo uno a uno entre cada túnel de eventos y cada tema de asociado.
Ámbito: reside en la suscripción del asociado.
Temas de asociados
Recurso: partnerTopics
Usado por: Clientes
Descripción: los temas de asociados son similares a los temas personalizados y del sistema en Event Grid.
Cada tema de asociado está relacionado con un origen específico (por ejemplo, Contoso:myaccount ) y un
tipo de tema de asociado específico (por ejemplo, Contoso). Los clientes crean suscripciones a eventos en el
tema de asociado a fin de enrutar eventos a varios controladores de eventos.
Los clientes no pueden crear directamente este recurso. La única forma de crear un tema de asociado es a
través de una operación de asociado que crea un túnel de eventos.
Ámbito: reside en la suscripción del cliente.
Tipos de temas de asociado
Recurso: partnerTopicTypes
Usado por: Clientes
Descripción: los tipos de temas de asociados son tipos de recursos de todo el inquilino que permiten a los
clientes detectar la lista de tipos de temas de asociados aprobados. La dirección URL tiene el aspecto siguiente:
[Link]
Ámbito: Global
Después de realizar una publicación en el punto de conexión partnerNamespace, recibirá una respuesta. La
respuesta es un código de respuesta HTTP estándar. Algunas respuestas comunes son:
RESULTA DO RESP O N SE
Correcto 200 OK
Los datos del evento tienen un formato incorrecto 400 - Solicitud incorrecta
La matriz o el evento superan los límites de tamaño 413 Carga demasiado grande
Referencias
Swagger
Plantilla ARM
Esquema de plantilla de ARM
API de REST
Extensión de la CLI
SDK
.NET
Python
Java
Ruby
JS
Go
Pasos siguientes
Introducción a los temas de asociados
Formulario de incorporación de temas de asociados
Tema de asociado de Auth0
Procedimientos para usar el tema de asociado de Auth0
Dominios de eventos para administrar temas de
Event Grid
04/08/2020 • 9 minutes to read • Edit Online
En este artículo se describe cómo usar dominios de eventos para administrar el flujo de eventos personalizados a
sus diversas organizaciones empresariales, clientes o aplicaciones. Use dominios de eventos para:
Administrar arquitecturas de eventos multiinquilino a escala.
Administrar la autenticación y la autorización.
Crear particiones de los temas sin tener que administrar cada uno individualmente.
Evitar la publicación individual en cada uno de los puntos de conexión del tema.
Suscribirse a temas
Suscribirse a eventos de un tema dentro de un dominio de eventos es lo mismo que crear una suscripción a
eventos en un tema personalizado o suscribirse a un evento desde un servicio de Azure.
Suscripciones del ámbito de dominio
Los dominios de eventos también permiten suscripciones de ámbito de dominio. Una suscripción a eventos en
un dominio de eventos recibirá todos los eventos enviados al dominio, independientemente del tema al que se
envían los eventos. Las suscripciones del ámbito de dominio pueden ser útiles para la administración y la
auditoría.
[{
"topic": "foo",
"id": "1111",
"eventType": "maintenanceRequested",
"subject": "myapp/vehicles/diggers",
"eventTime": "2018-10-30T21:03:07+00:00",
"data": {
"make": "Contoso",
"model": "Small Digger"
},
"dataVersion": "1.0"
},
{
"topic": "bar",
"id": "2222",
"eventType": "maintenanceCompleted",
"subject": "myapp/vehicles/tractors",
"eventTime": "2018-10-30T21:04:12+00:00",
"data": {
"make": "Contoso",
"model": "Big Tractor"
},
"dataVersion": "1.0"
}]
Los dominios de eventos controlan la publicación de temas por usted. En lugar de publicar los eventos en cada
tema que administra individualmente, puede publicar todos los eventos en el punto de conexión del dominio.
Event Grid garantiza que cada evento se envía al tema correcto.
Límites y cuotas
Estos son los límites y cuotas relacionados con los dominios de eventos:
100 000 temas por dominio de eventos
100 dominios de eventos por suscripción de Azure
500 suscripciones a eventos por tema en un dominio de eventos
50 suscripciones del ámbito de dominio
5000 eventos por tasa de ingesta por segundo (en un dominio)
Si estos límites no son los adecuados para usted, póngase en contacto con el equipo del producto. Para ello, abra
una incidencia de soporte técnico o envíe un correo electrónico a askgrid@[Link].
Precios
Los dominios de eventos usan el mismo precio por operaciones que el resto de características de Event Grid.
Las operaciones funcionan igual en dominios de eventos que en temas personalizados. Cada entrada de un
evento a un dominio de eventos es una operación, y cada intento de entrega de un evento es una operación.
Pasos siguientes
Para información acerca de cómo configurar dominios de eventos, crear temas, crear suscripciones a eventos
y publicar eventos, consulte Administración de dominios de eventos.
Esquema de eventos de Azure Event Grid
04/08/2020 • 7 minutes to read • Edit Online
En este artículo se describen las propiedades y el esquema que están presentes para todos los
eventos. Los eventos constan de un conjunto de cinco propiedades de cadena y un objeto de datos
obligatorios. Las propiedades son comunes a todos los eventos de cualquier anunciante. El objeto de
datos tiene propiedades específicas de cada publicador. Para los temas de sistema, estas propiedades son
específicas del proveedor de recursos, como Azure Storage o Azure Event Hubs.
Los orígenes de eventos envían eventos a Azure Event Grid en una matriz que puede tener varios objetos
de evento. Al publicar eventos en un tema de Event Grid, la matriz puede tener un tamaño total de hasta
1 MB. Cada evento de la matriz tiene 1 MB, como máximo. Si un evento o la matriz superan los límites de
tamaño, recibirá la respuesta 413 Payload Too Large (Carga útil demasiado grande). No obstante, las
operaciones se cobran en incrementos de 64 KB. Por lo tanto, los eventos de más de 64 KB incurrirán en
cargos de operaciones como si fueran varios eventos. Por ejemplo, un evento que tenga 130 KB incurrirá
en operaciones como si fueran tres eventos independientes.
Event Grid envía los eventos a los suscriptores en una matriz que tiene un solo evento. Este
comportamiento puede cambiar en el futuro.
Puede encontrar el esquema JSON para el evento de Event Grid y cada carga de datos del publicador de
Azure en el almacén de esquemas de eventos.
[
{
"topic": string,
"subject": string,
"id": string,
"eventType": string,
"eventTime": string,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string,
"metadataVersion": string
}
]
Por ejemplo, el esquema publicado para un evento de Azure Blob Storage es:
[
{
"topic": "/subscriptions/{subscription-
id}/resourceGroups/Storage/providers/[Link]/storageAccounts/xstoretestaccount",
"subject":
"/blobServices/default/containers/oc2d2817345i200097container/blobs/oc2d2817345i20002296blob",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "PutBlockList",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"eTag": "0x8D4BCC2E4835CD0",
"contentType": "application/octet-stream",
"contentLength": 524288,
"blobType": "BlockBlob",
"url":
"[Link]
",
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "",
"metadataVersion": "1"
}
]
Propiedades de evento
Todos los eventos tienen los mismos datos de nivel superior, que son los siguientes:
dataVersion string No, pero se marcará con Versión del esquema del
un valor vacío. objeto de datos. El
publicador define la
versión del esquema.
Para aprender acerca de las propiedades del objeto de datos, vea el origen del evento:
Suscripciones de Azure (operaciones de administración)
Container Registry
Blob Storage
Event Hubs
IoT Hub
Media Services
Grupos de recursos (operaciones de administración)
Service Bus
Azure SignalR
Azure Machine Learning
Para temas personalizados, el publicador de eventos determina el objeto de datos. Los datos de nivel
superior deben tener los mismos campos que los eventos estándar definidos por recursos.
Al publicar eventos en temas personalizados, cree asuntos para los eventos que faciliten que los
suscriptores sepan si les interesa el evento. Los suscriptores usan el asunto para filtrar y redirigir eventos.
Considere la posibilidad de proporcionar la ruta de acceso de donde se produjo el evento, para que los
suscriptores pueden filtrar por los segmentos de esa ruta de acceso. La ruta de acceso permite que los
suscriptores filtren eventos de una manera más amplia o más restringida. Por ejemplo, si se proporciona
una ruta de acceso de tres segmentos como /A/B/C en el asunto, los suscriptores pueden filtrar por el
primer segmento /A para obtener un amplio conjunto de eventos. Esos suscriptores obtienen eventos
con asuntos como /A/B/C o /A/D/E . Otros suscriptores pueden filtrar por /A/B para obtener un
conjunto de eventos más reducido.
A veces el asunto necesita información más detallada sobre qué ocurrió. Por ejemplo, el publicador de
cuentas de almacenamiento proporciona el asunto
/blobServices/default/containers/<container-name>/blobs/<file> cuando se agrega un archivo a un
contenedor. Un suscriptor puede filtrar por la ruta de acceso
/blobServices/default/containers/testcontainer para obtener todos los eventos de ese contenedor, pero
no otros contenedores en la cuenta de almacenamiento. Un suscriptor también puede filtrar o redirigir
por el sufijo .txt para que funcione solo con archivos de texto.
Pasos siguientes
Para una introducción a Azure Event Grid, consulte Introducción a Azure Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema
de suscripción de Event Grid.
Esquema CloudEvents v1.0 con Azure Event Grid
04/08/2020 • 3 minutes to read • Edit Online
Además de su esquema de eventos predeterminado, Azure Event Grid admite de forma nativa eventos de la
implementación de JSON de CloudEvents v1.0 y el enlace del protocolo HTTP. CloudEvents es una especificación
abierta para la descripción de datos de eventos.
CloudEvents simplifica la interoperabilidad al proporcionar un esquema de eventos común para la publicación y el
consumo de eventos basados en la nube. Este esquema permite herramientas uniformes, formas estándar de
enrutar y administrar eventos y formas universales de deserializar el esquema de eventos externo. Con un
esquema común, puede integrar más fácilmente el trabajo entre plataformas.
En la compilación de CloudEvents participan varios colaboradores, entre ellos Microsoft, mediante Cloud Native
Compute Foundation. Actualmente está disponible en versión 1.0.
En este artículo se describe el esquema CloudEvents con Event Grid.
{
"specversion": "1.0",
"type": "[Link]",
"source": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/storageAccounts/{storage-account}",
"id": "9aeb0fdf-c01e-0131-0922-9eb54906e209",
"time": "2019-11-18T15:13:39.4589254Z",
"subject": "blobServices/default/containers/{storage-container}/blobs/{new-file}",
"dataschema": "#",
"data": {
"api": "PutBlockList",
"clientRequestId": "4c5dd7fb-2c48-4a27-bb30-5361b5de920a",
"requestId": "9aeb0fdf-c01e-0131-0922-9eb549000000",
"eTag": "0x8D76C39E4407333",
"contentType": "image/png",
"contentLength": 30699,
"blobType": "BlockBlob",
"url": "[Link]
"sequencer": "000000000000000000000000000099240000000000c41c18",
"storageDiagnostics": {
"batchId": "681fe319-3006-00a8-0022-9e7cde000000"
}
}
}
Una descripción detallada de los campos disponibles, sus tipos y definiciones en CloudEvents v1.0 se encuentra
disponible aquí.
Los valores de encabezados de los eventos proporcionados en el esquema de CloudEvents y el esquema de Event
Grid son los mismos excepto para content-type . En el esquema de CloudEvents, ese valor de encabezado es
"content-type":"application/cloudevents+json; charset=utf-8" . En el esquema de Event Grid, ese valor de
encabezado es "content-type":"application/json; charset=utf-8" .
Con todos los esquemas de eventos, Event Grid requiere validación al publicar en un tema de Event Grid y al crear
una suscripción de eventos. Para más información, vea Event Grid security and authentication (Seguridad y
autenticación de Event Grid).
Pasos siguientes
Consulte Uso del esquema CloudEvents v1.0 con Event Grid.
Controladores de eventos de Azure Event Grid
04/08/2020 • 2 minutes to read • Edit Online
Un controlador de eventos es el lugar al que se envía el evento. El controlador realiza alguna acción adicional
para procesar el evento. Varios servicios de Azure se configuran automáticamente para controlar los eventos.
También puede usar cualquier webhook para controlar los eventos. El webhook no necesita estar hospedado en
Azure para controlar los eventos. Event Grid solo admite puntos de conexión de webhook HTTPS.
Pasos siguientes
Para obtener una introducción a Event Grid, vea Acerca de Event Grid.
Webhooks, runbooks de Automation, aplicaciones
lógicas como controladores de eventos para eventos
de Azure Event Grid
04/08/2020 • 4 minutes to read • Edit Online
Un controlador de eventos es el lugar al que se envía el evento. El controlador realiza alguna acción adicional para
procesar el evento. Varios servicios de Azure se configuran automáticamente para controlar los eventos. También
puede usar cualquier webhook para controlar los eventos. El webhook no necesita estar hospedado en Azure para
controlar los eventos. Event Grid solo admite puntos de conexión de webhook HTTPS.
NOTE
Los runbooks y aplicaciones lógicas de Azure Automation se admiten como controladores de eventos a través de webhooks.
webhooks
Consulte los artículos siguientes para obtener información general y ejemplos de uso de webhooks como
controladores de eventos.
Guía de inicio rápido: Creación y enrutamiento de eventos Explica cómo enviar eventos personalizados a un webhook.
personalizados con la CLI de Azure, PowerShell y Azure Portal.
Guía de inicio rápido: Enrutamiento de eventos de Blob Explica cómo enviar eventos de Blob Storage a un webhook.
Storage a un punto de conexión web personalizado con la CLI
de Azure, PowerShell y Azure Portal.
Guía de inicio rápido: Envío de eventos de Container Registry Explica cómo utilizar la CLI de Azure para enviar eventos de
Container Registry.
Introducción: Recepción de eventos en un punto de conexión Se describe cómo validar un punto de conexión de HTTP para
de HTTP recibir eventos de una suscripción a eventos y, a continuación,
recibir y deserializar los eventos.
Azure Automation
Puede procesar eventos mediante runbooks de Azure Automation. El procesamiento de eventos mediante
runbooks automatizados se admite a través de webhooks. Cree un webhook para el runbook y luego use el
controlador de webhook. Consulte el siguiente tutorial para obtener un ejemplo:
Tutorial: Integración de Azure Automation con Event Grid y Cree una máquina virtual, que envía un evento. El evento
Microsoft Teams desencadena un runbook de Automation que etiqueta la
máquina virtual y genera un mensaje que se envía a un canal
de Equipos de Microsoft.
Logic Apps
Use Logic Apps para implementar procesos empresariales y así poder procesar eventos de Event Grid. En este
ejemplo no se crea un webhook explícitamente. El webhook se crea automáticamente cuando se configura la
aplicación lógica para que controle los eventos de Event Grid. Consulte los siguientes tutoriales para obtener
ejemplos:
Tutorial: Monitor virtual machine changes with Azure Event Una aplicación lógica supervisa los cambios realizados en una
Grid and Logic Apps (Tutorial: Supervisión de los cambios en máquina virtual y envía mensajes de correo electrónico sobre
máquinas virtuales con Azure Event Grid y Logic Apps) dichos cambios.
Tutorial: envío de notificaciones por correo electrónico sobre Una aplicación lógica envía un correo electrónico de
eventos de Azure IoT Hub mediante Logic Apps. notificación cada vez que se agrega un dispositivo al centro de
IoT.
Tutorial: respuesta a eventos de Azure Service Bus recibidos a Event Grid envía mensajes de temas de Service Bus a la
través de Azure Event Grid con Azure Functions y Azure Logic aplicación de función y a la aplicación lógica.
Apps.
Pasos siguientes
Consulte el artículo Controladores de eventos para obtener una lista de controladores de eventos compatibles.
Azure Functions como controlador de eventos para
eventos de Event Grid
04/08/2020 • 2 minutes to read • Edit Online
Un controlador de eventos es el lugar al que se envía el evento. El controlador realiza una acción para procesar el
evento. Varios servicios de Azure se configuran automáticamente para controlar los eventos y Azure Functions
es uno de ellos.
Use Azure Functions en una arquitectura sin servidor para responder a eventos de Event Grid. Cuando use Azure
Functions como controlador, utilice el desencadenador de Event Grid en lugar del desencadenador HTTP genérico.
Event Grid valida automáticamente los desencadenadores de Event Grid. Con los desencadenadores HTTP
genéricos, debe implementar la respuesta de validación usted mismo.
Para obtener más información, consulte Desencadenador de Event Grid para Azure Functions para obtener
información general sobre el uso del desencadenador Event Grid en la instancia de Functions.
Tutoriales
T ÍT ULO DESC RIP C IÓ N
Inicio rápido: Control de eventos con una función Envía un evento personalizado a una función para su
procesamiento.
Tutorial: Automatización del cambio de tamaño de las Los usuarios cargan imágenes a través de la aplicación web en
imágenes cargadas mediante Event Grid la cuenta de almacenamiento. Cuando se crea un blob de
almacenamiento, Event Grid envía un evento a la aplicación de
función, que cambia el tamaño de la imagen cargada.
Tutorial: transmisión de macrodatos a un almacén de datos Cuando Event Hubs crea un archivo de captura, Event Grid
envía un evento a una aplicación de función. La aplicación
recupera el archivo de captura y migra los datos a un
almacenamiento de datos.
Tutorial: Ejemplos de integración de Azure Service Bus en Event Grid envía mensajes de temas de Service Bus a la
Azure Event Grid aplicación de funciones y a la aplicación lógica.
Pasos siguientes
Consulte el artículo Controladores de eventos para obtener una lista de controladores de eventos compatibles.
Centro de eventos como controlador de eventos
para eventos de Azure Event Grid
04/08/2020 • 3 minutes to read • Edit Online
Un controlador de eventos es el lugar al que se envía el evento. El controlador realiza una acción para procesar el
evento. Varios servicios de Azure se configuran automáticamente para controlar los eventos y Azure Event Hubs
es uno de ellos.
Use Event Hubs cuando la solución obtenga eventos de Event Grid más rápido de lo que puede procesarlos. Una
vez que los eventos se encuentren en un centro de eventos, la aplicación puede procesar los eventos del centro de
eventos en su propia programación. Puede escalar el procesamiento de eventos para controlar los eventos
entrantes.
Tutoriales
Consulte los siguientes ejemplos:
Inicio rápido: enrutamiento de eventos personalizados a Azure Envía un evento personalizado a un centro de eventos para
Event Hubs con la CLI de Azure que lo procese una aplicación.
Plantilla de Resource Manager: creación de un tema Plantilla de Resource Manager que crea una suscripción a un
personalizado Event Grid y envío de eventos a un centro de tema personalizado. Envía eventos a una instancia de Azure
eventos Event Hubs.
{
"properties":
{
"destination":
{
"endpointType": "EventHub",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/namespaces/<EVENT HUBS NAMESPACE NAME>/eventhubs/<EVENT HUB NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Pasos siguientes
Consulte el artículo Controladores de eventos para obtener una lista de controladores de eventos compatibles.
Colas y temas de Service Bus como controladores de
eventos para eventos de Azure Event Grid
04/08/2020 • 5 minutes to read • Edit Online
Un controlador de eventos es el lugar al que se envía el evento. El controlador realiza alguna acción adicional para
procesar el evento. Varios servicios de Azure se configuran automáticamente para controlar eventos y Azure
Ser vice Bus es uno de ellos.
Puede usar una cola o un tema de Service como un controlador para los eventos de Event Grid.
Encabezados de mensaje
Cuando se envía un evento a una cola o un tema de Service Bus como un mensaje asincrónico, el valor de
messageid del mensaje asincrónico es el id. del evento .
El id. de evento se mantendrá cuando se vuelva a entregar el evento, para que pueda evitar entregas duplicadas;
para ello, active la detección de duplicados en la entidad de Service Bus. Le recomendamos que habilite la
duración de la detección de duplicados en la entidad Service Bus para que sea el período de vida (TTL) del evento
o la duración máxima de reintentos, lo que sea más largo.
{
"properties": {
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Pasos siguientes
Consulte el artículo Controladores de eventos para obtener una lista de controladores de eventos compatibles.
Conexión híbrida de Relay como controlador de
eventos para eventos de Azure Event Grid
04/08/2020 • 2 minutes to read • Edit Online
Un controlador de eventos es el lugar al que se envía el evento. El controlador realiza alguna acción adicional para
procesar el evento. Varios servicios de Azure se configuran automáticamente para controlar los eventos y Azure
Relay es uno de ellos.
Use las conexiones híbridas de Azure Relay para enviar eventos a las aplicaciones que están dentro de una
red empresarial y que no tienen un punto de conexión de acceso público.
Tutoriales
Consulte el siguiente tutorial para obtener un ejemplo del uso de una conexión híbrida de Azure Relay como un
controlador de eventos.
Tutorial: Envío de eventos a una conexión híbrida Envía un evento personalizado a una conexión híbrida
existente para su procesamiento mediante una aplicación de
escucha.
Pasos siguientes
Consulte el artículo Controladores de eventos para obtener una lista de controladores de eventos compatibles.
Cola de Storage como controlador de eventos para
eventos de Azure Event Grid
04/08/2020 • 2 minutes to read • Edit Online
Un controlador de eventos es el lugar al que se envía el evento. El controlador realiza alguna acción adicional para
procesar el evento. Varios servicios de Azure se configuran automáticamente para controlar eventos y Azure
Queue Storage es uno de ellos.
Use Queue Storage para recibir los eventos que deben extraerse. Puede usar Queue Storage cuando tenga un
proceso de ejecución prolongada que tarde demasiado tiempo en responder. Al enviar eventos a Queue Storage, la
aplicación puede extraer y procesar eventos siguiendo su propia programación.
Tutoriales
Consulte el siguiente tutorial para obtener un ejemplo del uso de Queue Storage como un controlador de eventos.
Guía de inicio rápido: Enrutamiento de eventos personalizados Describe cómo enviar eventos personalizados a una instancia
a Azure Queue Storage con la CLI de Azure y Event Grid de Queue Storage.
{
"properties":
{
"destination":
{
"endpointType": "StorageQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/storageAccounts/<STORAGE ACCOUNT NAME>",
"queueName": "<QUEUE NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
{
"name": "",
"properties":
{
"destination":
{
"endpointType": "StorageQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/storageAccounts/<DESTINATION STORAGE>",
"queueName": "queue1"
}
},
"eventDeliverySchema": "EventGridSchema",
"deadLetterDestination":
{
"endpointType": "StorageBlob",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/storageAccounts/<DEADLETTER STORAGE>",
"blobContainerName": "test"
}
}
}
}
Pasos siguientes
Consulte el artículo Controladores de eventos para obtener una lista de controladores de eventos compatibles.
Descripción del filtrado de eventos para
suscripciones de Event Grid
04/08/2020 • 7 minutes to read • Edit Online
En este artículo se describen las distintas formas de filtrar los eventos que se envían al punto de conexión. Al crear
una suscripción de eventos, se le presentan tres opciones de filtrado:
Tipos de eventos
El asunto empieza o termina con
Operadores y campos avanzados
"filter": {
"includedEventTypes": [
"[Link]",
"[Link]"
]
}
Filtrado de asunto
Para filtrar solo por asunto, especifique un valor inicial o final para el asunto. Por ejemplo, puede especificar que el
asunto termina con .txt para obtener solo los eventos relacionados con la carga de un archivo de texto a la
cuenta de almacenamiento. O bien, puede filtrar que el sujeto empieza por
/blobServices/default/containers/testcontainer para obtener todos los eventos de ese contenedor, pero no otros
contenedores en la cuenta de almacenamiento.
Al publicar eventos en temas personalizados, cree asuntos para los eventos que faciliten que los suscriptores
sepan si les interesa el evento. Los suscriptores usan la propiedad del asunto para filtrar y redirigir eventos.
Considere la posibilidad de agregar la ruta de acceso de donde se produjo el evento, para que los suscriptores
pueden filtrar por los segmentos de esa ruta de acceso. La ruta de acceso permite que los suscriptores filtren
eventos de una manera más amplia o más restringida. Si proporciona una ruta de acceso de tres segmentos como
/A/B/C en el asunto, los suscriptores pueden filtrar por el primer segmento /A para obtener un amplio conjunto
de eventos. Esos suscriptores obtienen eventos con asuntos como /A/B/C o /A/D/E . Otros suscriptores pueden
filtrar por /A/B para obtener un conjunto de eventos más reducido.
La sintaxis JSON para el filtrado por asunto es:
"filter": {
"subjectBeginsWith": "/blobServices/default/containers/mycontainer/log",
"subjectEndsWith": ".jpg"
}
Filtrado avanzado
Para filtrar por valores en los campos de datos y especificar el operador de comparación, use la opción de filtrado
avanzada. En el filtrado avanzado, se especifica lo siguiente:
tipo de operador: el tipo de comparación.
clave: el campo de datos de evento que se usa para filtrar. Puede ser un número, un booleano o una cadena.
valores: el valor o los valores que se compararán con la clave.
Si especifica un único filtro con varios valores, se realiza una operación OR , por lo que el valor del campo de clave
debe ser uno de estos valores. Este es un ejemplo:
"advancedFilters": [
{
"operatorType": "StringContains",
"key": "Subject",
"values": [
"/providers/[Link]/",
"/providers/[Link]/virtualMachines/"
]
}
]
Si especifica varios filtros diferentes, se realiza una operación AND , por lo que se debe cumplir cada condición de
filtro. Este es un ejemplo:
"advancedFilters": [
{
"operatorType": "StringContains",
"key": "Subject",
"values": [
"/providers/[Link]/"
]
},
{
"operatorType": "StringContains",
"key": "Subject",
"values": [
"/providers/[Link]/virtualMachines/"
]
}
]
Operadores
Los operadores disponibles para los números son:
NumberGreaterThan
NumberGreaterThanOrEquals
NumberLessThan
NumberLessThanOrEquals
NumberIn
NumberNotIn
El operador disponible para los booleanos es:
BoolEquals
Los operadores disponibles para las cadenas son:
StringContains
StringBeginsWith
StringEndsWith
StringIn
StringNotIn
Todas las comparaciones de cadenas no distinguen mayúsculas de minúsculas.
Clave
Para los eventos en el esquema de Event Grid, use los siguientes valores para la clave:
ID
Tema
Asunto
EventType
DataVersion
Datos del evento (por ejemplo, Data.key1)
Para los eventos en el esquema de Cloud Events, use los siguientes valores para la clave:
EventId
Source
EventType
EventTypeVersion
Datos del evento (por ejemplo, Data.key1)
Para el esquema de entrada personalizado, use los campos de datos de evento (por ejemplo, Data.key1).
Valores
Los valores pueden ser:
number
string
boolean
array
Limitaciones
El filtrado avanzado tiene las siguientes limitaciones:
5 filtros avanzados y 25 valores de filtro en todos los filtros por suscripción de Event Grid
512 caracteres por valor de cadena
5 valores para los operadores in y not in
Claves que incluyen el carácter . (punto) . Por ejemplo,
[Link] o [Link]@[Link] . Actualmente, las claves no
admiten caracteres de escape.
La misma clave se puede usar en más de un filtro.
Ejemplos
StringContains
"advancedFilters": [{
"operatorType": "StringContains",
"key": "data.key1",
"values": [
"microsoft",
"azure"
]
}]
StringBeginsWith
"advancedFilters": [{
"operatorType": "StringBeginsWith",
"key": "data.key1",
"values": [
"event",
"grid"
]
}]
StringEndsWith
"advancedFilters": [{
"operatorType": "StringEndsWith",
"key": "data.key1",
"values": [
"jpg",
"jpeg",
"png"
]
}]
StringIn
"advancedFilters": [{
"operatorType": "StringIn",
"key": "data.key1",
"values": [
"exact",
"string",
"matches"
]
}]
StringNotIn
"advancedFilters": [{
"operatorType": "StringNotIn",
"key": "data.key1",
"values": [
"aws",
"bridge"
]
}]
NumberIn
"advancedFilters": [{
"operatorType": "NumberIn",
"key": "[Link]",
"values": [
5,
1
]
}]
NumberNotIn
"advancedFilters": [{
"operatorType": "NumberNotIn",
"key": "[Link]",
"values": [
41,
0,
0
]
}]
NumberLessThan
"advancedFilters": [{
"operatorType": "NumberLessThan",
"key": "[Link]",
"value": 100
}]
NumberGreaterThan
"advancedFilters": [{
"operatorType": "NumberGreaterThan",
"key": "[Link]",
"value": 20
}]
NumberLessThanOrEquals
"advancedFilters": [{
"operatorType": "NumberLessThanOrEquals",
"key": "[Link]",
"value": 100
}]
NumberGreaterThanOrEquals
"advancedFilters": [{
"operatorType": "NumberGreaterThanOrEquals",
"key": "[Link]",
"value": 30
}]
BoolEquals
"advancedFilters": [{
"operatorType": "BoolEquals",
"key": "[Link]",
"value": true
}]
Pasos siguientes
Para obtener información sobre el filtrado de eventos con PowerShell y la CLI de Azure, consulte Filter events
for Event Grid (Filtrado de eventos para Event Grid).
Para comenzar a usar rápidamente Event Grid, vea Creación y enrutamiento de eventos personalizados con
Azure Event Grid.
Entrega y reintento de entrega de mensajes de
Event Grid
04/08/2020 • 12 minutes to read • Edit Online
En este artículo se describe cómo Azure Event Grid administra los eventos cuando no se confirma la entrega.
Event Grid ofrece entrega duradera. Entrega cada mensaje por lo menos una vez en cada suscripción. Los
eventos se envían inmediatamente al punto de conexión registrado de cada suscripción. Si un punto de conexión
no acusa recibo de un evento, Event Grid reintenta la entrega del evento.
Azure CLI
Al crear una suscripción a eventos, use los parámetros siguientes:
max-events-per-batch : número máximo de eventos en un lote. Debe ser un número entre 1 y 5000.
preferred-batch-size-in-kilobytes : tamaño de lote preferido en kilobytes. Debe ser un número entre 1 y
1024.
storageid=$(az storage account show --name <storage_account_name> --resource-group <resource_group_name> --
query id --output tsv)
endpoint=[Link]
Para más información sobre el uso de la CLI de Azure con Event Grid, consulte Enrutamiento de eventos de
almacenamiento a un punto de conexión web con la CLI de Azure.
Entrega retrasada
Cuando un punto de conexión experimenta errores de entrega, Event Grid comienza a retrasar la entrega y a
reintentar los eventos a ese punto de conexión. Por ejemplo, si se produce un error en los 10 primeros eventos
publicados en un punto de conexión, Event Grid asumirá que el punto de conexión está experimentando
problemas y retrasará todos los reintentos posteriores y las nuevas entregas durante algún tiempo; en algunos
casos, hasta varias horas.
El propósito funcional de la entrega retrasada es proteger los puntos de conexión incorrectos, así como el
sistema Event Grid. Sin los mecanismos de retroceso y el retraso de la entrega a puntos de conexión incorrectos,
la directiva de reintentos de Event Grid y las funcionalidades del volumen pueden sobrecargar fácilmente un
sistema.
Eventos fallidos
Si Event Grid no puede entregar un evento, puede enviar el evento no entregado a una cuenta de
almacenamiento. Este proceso se conoce como colas de eventos fallidos. De forma predeterminada, Event Grid
no tiene activada esta opción. Para habilitarla, debe especificar una cuenta de almacenamiento para contener los
eventos no entregados al crear la suscripción a eventos. Puede extraer eventos de esta cuenta de
almacenamiento para resolver las entregas.
Event Grid envía un evento a la ubicación de la cola de mensajes fallidos cuando ha intentado todos los
reintentos. Si Event Grid recibe un código de respuesta 400 (solicitud incorrecta) o 413 (entidad de solicitud
demasiado grande), envía inmediatamente el evento al punto de conexión de la cola de mensajes fallidos. Estos
códigos de respuesta indican que la entrega del evento nunca se realizará correctamente.
Hay un retraso de cinco minutos entre el último intento de entregar un evento y su entrega a la ubicación de
mensajes fallidos. Este retraso está pensado para reducir el número de operaciones de almacenamiento de
blobs. Si la ubicación de la cola de mensajes fallidos no está disponible durante cuatro horas, se elimina el
evento.
Antes de establecer la ubicación de mensajes fallidos, debe tener una cuenta de almacenamiento con un
contenedor. Puede proporcionar el punto de conexión de este contenedor al crear la suscripción a eventos. El
punto de conexión tiene este formato:
/subscriptions/<subscription-id>/resourceGroups/<resource-group-
name>/providers/[Link]/storageAccounts/<storage-name>/blobServices/default/containers/<container-
name>
Es posible que desee recibir una notificación cuando un evento se envía a la ubicación de la cola de mensajes
fallidos. Para utilizar Event Grid para responder a eventos no entregados, cree una suscripción a eventos para el
almacenamiento de blobs de los eventos fallidos. Cada vez que el almacenamiento de blobs de eventos fallidos
recibe un evento no entregado, Event Grid lo notifica al controlador. El controlador responderá con las acciones
que debe realizar para conciliar los eventos no entregados.
Para obtener un ejemplo de cómo configurar una ubicación de la cola de mensajes fallidos, consulte Cola de
mensajes fallidos y directivas de reintento.
413 Entidad de solicitud demasiado larga Reintentar después de 10 segundos o más (procesar
inmediatamente como entrega devuelta si está configurada)
Pasos siguientes
Para ver el estado de las entregas de eventos, consulte Supervisar la entrega de mensajes de Event Grid.
Para personalizar las opciones de entrega de eventos, consulte Cola de mensajes fallidos y directivas de
reintento.
Entrega de eventos de webhook
04/08/2020 • 9 minutes to read • Edit Online
Los webhooks son una de las muchas maneras de recibir eventos de Azure Event Grid. Cuando un nuevo evento
está preparado, el servicio EventGrid publica una solicitud HTTP en el punto de conexión configurado con el
evento en el cuerpo de la solicitud.
Al igual que muchos otros servicios que admiten webhooks, EventGrid requiere que demuestre la propiedad de
su punto de conexión de Webhook antes de que comience a entregar eventos a ese punto de conexión. Este
requisito evita que un usuario malintencionado sature el punto de conexión con eventos. Cuando utiliza
cualquiera de los tres servicios de Azure enumerados a continuación, la infraestructura de Azure controla
automáticamente esta validación:
Azure Logic Apps con el conector de Event Grid
Azure Automation a través de webhook
Azure Functions con el desencadenador de Event Grid
Detalles de la validación
En el momento de crear o actualizar la suscripción a eventos, Event Grid publica un evento de validación de
suscripción en el punto de conexión de destino.
El evento contiene un valor de encabezado "aeg-event-type: SubscriptionValidation".
El cuerpo del evento tiene el mismo esquema que otros eventos de Event Grid.
La propiedad eventType del evento es [Link] .
La propiedad de datos del evento incluye una propiedad validationCode con una cadena generada
aleatoriamente. Por ejemplo, "validationCode: acb13…".
Los datos del evento también incluyen una propiedad validationUrl con una dirección URL para validar
manualmente la suscripción.
La matriz contiene solo el evento de validación. Otros eventos se envían en una solicitud aparte después de
devolver el código de validación.
Los SDK de EventGrid DataPlane tienen clases que corresponden a los datos de evento de validación de
suscripción y a la respuesta de validación de suscripción.
En el siguiente ejemplo se muestra un evento SubscriptionValidationEvent de ejemplo:
[
{
"id": "2d1781af-3a4c-4d7c-bd0c-e34b19da4e66",
"topic": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"subject": "",
"data": {
"validationCode": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6",
"validationUrl": "[Link]
id=512d38b6-c7b8-40c8-89fe-f46f9e9622b6&t=2018-04-26T20:30:54.4538837Z&apiVersion=2018-05-01-
preview&token=1A1A1A1A"
},
"eventType": "[Link]",
"eventTime": "2018-01-25T22:12:19.4556811Z",
"metadataVersion": "1",
"dataVersion": "1"
}
]
Para comprobar la propiedad del punto de conexión, devuelva el código de validación en la propiedad
validationResponse, como se muestra en el siguiente ejemplo:
{
"validationResponse": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6"
}
Debe devolver un código de estado de respuesta HTTP 200 OK. HTTP 202 Aceptado no se reconoce como una
respuesta válida de validación de suscripción a Event Grid. La solicitud http debe completarse en 30 segundos. Si
la operación no finaliza en 30 segundos, se cancelará y puede que se vuelva a intentar pasados cinco segundos.
Si se producen errores en todos los intentos, se tratará como un error de protocolo de enlace de validación.
O bien, puede enviar una solicitud GET a la dirección URL de validación para validar la suscripción manualmente.
La suscripción a eventos permanece en estado pendiente hasta que se valida. La dirección URL de validación usa
el puerto 553. Si las reglas de firewall bloquean el puerto 553, puede que sea necesario actualizarlas para aplicar
el protocolo de enlace manual de forma satisfactoria.
Para ver un ejemplo del tratamiento del protocolo de enlace de validación de suscripción, consulte un ejemplo
de C#.
Pasos siguientes
Consulte el siguiente artículo para saber cómo solucionar problemas con las validaciones de suscripciones a
eventos:
Solución de problemas de validación de suscripciones a eventos
Recuperación ante desastres geográfica del servidor
en Azure Event Grid
04/08/2020 • 3 minutes to read • Edit Online
Ahora, Event Grid incluye una recuperación ante desastres geográfica (GeoDR) automática de metadatos, en que
no solo se recuperan las suscripciones a eventos, los temas y los dominios nuevos, sino también todos los
existentes. Si deja de funcionar toda una región de Azure, Event Grid ya tendrá todos los metadatos de
infraestructura relacionados con el evento sincronizados en una región emparejada. Los nuevos eventos
empezarán a fluir de nuevo sin intervención del usuario.
La recuperación ante desastres se mide con dos métricas:
Objetivo de punto de recuperación (RPO): minutos u horas de datos que se pueden perder.
Objetivo de tiempo de recuperación (RTO): minutos u horas que el servicio puede estar inactivo.
La conmutación automática por error de Event Grid tiene diferentes RPO y RTO para los metadatos (suscripciones a
eventos, etc.) y los datos (eventos). Si necesita una especificación distinta a las siguientes, siempre puede
implementar su propia conmutación por error del lado cliente con las API de estado de temas.
NOTE
El costo de GeoDR de metadatos en Event Grid es de 0 USD.
Pasos siguientes
Si quiere implementar la lógica de conmutación por error del lado cliente, consulte # Creación de una recuperación
ante desastres propia para temas personalizados en Event Grid.
Autenticación de la entrega de eventos en los
controladores de eventos (Azure Event Grid).
04/08/2020 • 5 minutes to read • Edit Online
En este artículo se proporciona información sobre cómo autenticar la entrega de eventos a los controladores
de eventos. También muestra como proteger los puntos de conexión de webhook que se usan para recibir
eventos de Event Grid mediante Azure Active Directory (Azure AD) o un secreto compartido.
IMPORTANT
Pasos siguientes
Consulte autenticación de publicación de clientes para obtener información sobre la autenticación de clientes
que publican eventos en temas o dominios.
Autenticación de clientes que hacen publicaciones
(Azure Event Grid).
04/08/2020 • 3 minutes to read • Edit Online
En este artículo se proporciona información sobre la autenticación de clientes que publican eventos en temas o
dominios de Azure Event Grid mediante clave de acceso o token de Firma de acceso compar tido (SAS) . Se
recomienda el uso de SAS, pero la autenticación de clave proporciona programación simple y es compatible con
muchos editores de webhook existentes.
aeg-sas-key: XXXXXXXXXXXXXXXXXX0GXXX/nDT4hgdEj9DpBeRr38arnnm5OFg==
[Link]
key=XXXXXXXX53249XX8XXXXX0GXXX/nDT4hgdEj9DpBeRr38arnnm5OFg==
Para obtener instrucciones sobre cómo obtener las claves de acceso para un tema o un dominio, consulte Obtener
claves de acceso.
return signedSas;
}
}
aeg-sas-token:
r=https%3a%2f%[Link]%2feventGrid%2fapi%2fevent&e=6%2f15%2f2017+6%3a20%3a15+PM&s=XXXXXXX
XXXXXX%2fBPjdDLOrc6THPy3tDcGHw1zP4OajQ%3d
Authorization: SharedAccessSignature
r=https%3a%2f%[Link]%2feventGrid%2fapi%2fevent&e=6%2f15%2f2017+6%3a20%3a15+PM&s=XXXXXXX
XXXXXX%2fBPjdDLOrc6THPy3tDcGHw1zP4OajQ%3d
Pasos siguientes
Consulte Autenticación de entrega de eventos para obtener información sobre la autenticación con controladores
de eventos para entregar eventos.
Autorización de acceso a recursos de Event Grid
04/08/2020 • 6 minutes to read • Edit Online
Azure Event Grid permite controlar el nivel de acceso dado a distintos usuarios para realizar diversas operaciones
de administración, como enumerar las suscripciones a eventos, crear otras nuevas y generar claves. Event Grid usa
el control de acceso basado en rol (RBAC) de Azure.
Tipos de operación
Event Grid admite las siguientes acciones:
[Link]/*/read
[Link]/*/write
[Link]/*/delete
[Link]/eventSubscriptions/getFullUrl/action
[Link]/topics/listKeys/action
[Link]/topics/regenerateKey/action
Las tres últimas operaciones devuelven información potencialmente confidencial, la cual se filtra de las
operaciones de lectura normales. Se recomienda restringir el acceso a estas operaciones.
Roles integrados
Event Grid proporciona dos roles integrados para administrar las suscripciones de eventos. Son importantes al
implementar dominios de eventos porque proporcionan a los usuarios los permisos que necesitan para suscribirse
a temas en el dominio del evento. Estos roles se centran en las suscripciones de eventos y no conceden acceso
para acciones como la creación de temas.
También puede asignar estos roles a un usuario o grupo.
Colaborador de EventGrid EventSubscription : administre las operaciones de suscripción de Event Grid.
[
{
"Description": "Lets you manage EventGrid event subscription operations.",
"IsBuiltIn": true,
"Id": "428e0ff05e574d9ca2212c70d0e0a443",
"Name": "EventGrid EventSubscription Contributor",
"IsServiceRole": false,
"Permissions": [
{
"Actions": [
"[Link]/*/read",
"[Link]/eventSubscriptions/*",
"[Link]/topicTypes/eventSubscriptions/read",
"[Link]/locations/eventSubscriptions/read",
"[Link]/locations/topicTypes/eventSubscriptions/read",
"[Link]/alertRules/*",
"[Link]/deployments/*",
"[Link]/subscriptions/resourceGroups/read",
"[Link]/*"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"Condition": null
}
],
"Scopes": [
"/"
]
}
]
[
{
"Description": "Lets you read EventGrid event subscriptions.",
"IsBuiltIn": true,
"Id": "2414bbcf64974faf8c65045460748405",
"Name": "EventGrid EventSubscription Reader",
"IsServiceRole": false,
"Permissions": [
{
"Actions": [
"[Link]/*/read",
"[Link]/eventSubscriptions/read",
"[Link]/topicTypes/eventSubscriptions/read",
"[Link]/locations/eventSubscriptions/read",
"[Link]/locations/topicTypes/eventSubscriptions/read",
"[Link]/subscriptions/resourceGroups/read"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": []
}
],
"Scopes": [
"/"
]
}
]
Roles personalizados
Si tiene que especificar permisos distintos a los de los roles integrados, puede crear roles personalizados.
Las siguientes son definiciones de roles de Event Grid de ejemplo que permiten a los usuarios realizar distintas
acciones. Estos roles personalizados son diferentes de los roles integrados, ya que conceden acceso más amplio
que las suscripciones a eventos.
[Link] : Únicamente se permiten operaciones de solo lectura.
{
"Name": "Event grid read only role",
"Id": "7C0B6B59-A278-4B62-BA19-411B70753856",
"IsCustom": true,
"Description": "Event grid read only role",
"Actions": [
"[Link]/*/read"
],
"NotActions": [
],
"AssignableScopes": [
"/subscriptions/<Subscription Id>"
]
}
{
"Name": "Event grid No Delete Listkeys role",
"Id": "B9170838-5F9D-4103-A1DE-60496F7C9174",
"IsCustom": true,
"Description": "Event grid No Delete Listkeys role",
"Actions": [
"[Link]/*/write",
"[Link]/eventSubscriptions/getFullUrl/action"
"[Link]/topics/listkeys/action",
"[Link]/topics/regenerateKey/action"
],
"NotActions": [
"[Link]/*/delete"
],
"AssignableScopes": [
"/subscriptions/<Subscription id>"
]
}
Por ejemplo, para suscribirse a un evento en una cuenta de almacenamiento denominada myacct , necesita el
permiso [Link]/EventSubscriptions/Write en:
/subscriptions/####/resourceGroups/testrg/providers/[Link]/storageAccounts/myacct
Temas personalizados
Para temas personalizados, necesita permiso para escribir una nueva suscripción a eventos en el ámbito del tema
de Event Grid. El formato del recurso es:
/subscriptions/{subscription-id}/resourceGroups/{resource-group-
name}/providers/[Link]/topics/{topic-name}
Por ejemplo, para suscribirse a un tema personalizado denominado mytopic , necesita el permiso
[Link]/EventSubscriptions/Write en:
/subscriptions/####/resourceGroups/testrg/providers/[Link]/topics/mytopic
Pasos siguientes
Para obtener una introducción a Event Grid, vea About Event Grid (Acerca de Event Grid).
Seguridad de red para recursos de Azure Event Grid
04/08/2020 • 12 minutes to read • Edit Online
En este artículo se describe cómo usar las siguientes características de seguridad con Azure Event Grid:
Etiquetas de servicio para salida
Reglas de firewall de IP para entrada (versión preliminar)
Puntos de conexión privados para entrada
Etiquetas de servicio
Una etiqueta de servicio representa un grupo de prefijos de direcciones IP de un servicio de Azure determinado.
Microsoft administra los prefijos de direcciones que la etiqueta de servicio incluye y actualiza automáticamente dicha
etiqueta a medida que las direcciones cambian, lo que minimiza la complejidad de las actualizaciones frecuentes en las
reglas de seguridad de red. Para obtener más información sobre las etiquetas de servicio, consulte Introducción a las
etiquetas de servicio.
Puede usar etiquetas de servicio para definir controles de acceso a la red en grupos de seguridad de red o
Azure Firewall. Utilice etiquetas de servicio en lugar de direcciones IP específicas al crear reglas de seguridad. Al
especificar el nombre de la etiqueta de servicio (por ejemplo, AzureEventGrid ) en el campo de
origen o destino apropiado de una regla, puede permitir o denegar el tráfico para el servicio correspondiente.
Firewall de dirección IP
Azure Event Grid admite controles de acceso basados en IP para la publicación en temas y dominios. Con los controles
basados en IP, puede limitar los publicadores de un tema o dominio a solo un conjunto aprobado de máquinas y
servicios en la nube. Esta característica complementa los mecanismos de autenticación compatibles con Event Grid.
De forma predeterminada, el tema y el dominio son accesibles desde Internet siempre que la solicitud venga con una
autenticación y una autorización válidas. Con el firewall de IP, puede restringirlo aún más a solo un conjunto de
direcciones IP o intervalos de direcciones IP en la notación CIDR (Enrutamiento de interdominios sin clases). Los
publicadores que se originen desde cualquier otra dirección IP se rechazarán y recibirán una respuesta 403 (Prohibido).
A fin de obtener instrucciones paso a paso para configurar el firewall de IP para temas y dominios, consulte configurar
el firewall de IP.
N O M B RE T IP O VA L UE
CNAME
[Link] <Azure traffic manager profile>
Puede denegar o controlar el acceso de un cliente de fuera de la red virtual a través del punto de conexión público
mediante el firewall de IP.
Cuando se resuelve desde la red virtual que hospeda el punto de conexión privado, la dirección URL del punto de
conexión del tema o dominio se resuelve en la dirección IP del punto de conexión privado. Los registros de recursos
DNS del tema 'topicA', cuando se resuelven desde dentro de la red vir tual que hospeda el punto de conexión
privado, serán:
N O M B RE T IP O VA L UE
A
[Link] [Link]
Este enfoque permite el acceso al tema o dominio mediante la misma cadena de conexión para los clientes de la red
virtual que hospeda los puntos de conexión privados y los clientes que están fuera de esta.
Si va a usar un servidor DNS personalizado en la red, los clientes pueden resolver el FQDN del punto de conexión del
tema o dominio en la dirección IP del punto de conexión privado. Configure el servidor DNS para delegar el
subdominio del vínculo privado en la zona DNS privada de la red virtual o configure los registros A para
[Link] con la dirección IP del punto de conexión privado.
Aprobado Sí
Rechazada No
Pending No
Escenario desconectado No
Para que la publicación se realice correctamente, el estado de conexión del punto de conexión privado debe
aprobarse . Si se rechaza una conexión, no se puede aprobar mediante Azure Portal. La única posibilidad es eliminar la
conexión y crear una nueva en su lugar.
Precios y cuotas
Los puntos de conexión privados están disponible en los niveles Básico y Premium de Event Grid. Event Grid
permite crear hasta 64 conexiones del punto de conexión privado por tema o dominio.
La característica Firewall de IP está disponible en los niveles Básico y Premium de Event Grid. Permitimos crear hasta
16 reglas de firewall de IP por tema o dominio.
Pasos siguientes
Puede configurar el firewall de IP para el recurso de Event Grid con el fin de restringir el acceso a través de Internet
público desde únicamente un conjunto seleccionado de direcciones IP o intervalos de direcciones IP. Para obtener
instrucciones paso a paso, consulte Configuración del firewall de IP.
Puede configurar puntos de conexión privados para restringir el acceso solo desde redes virtuales seleccionadas. Para
obtener instrucciones detalladas, consulte Configuración de puntos de conexión privados.
Para solucionar problemas de conectividad de red, consulte Solucionar problemas de conectividad de red.
Registros de diagnóstico de temas o dominios de Azure
Event Grid
04/08/2020 • 2 minutes to read • Edit Online
La configuración de diagnóstico permite a los usuarios de Event Grid capturar y ver los registros de errores de publicación y
entrega en una cuenta de almacenamiento, un centro de eventos o un área de trabajo de Log Analytics. En este artículo se
proporciona un esquema para los registros y una entrada de registro de ejemplo.
Ejemplo
{
"time": "2019-11-01T00:17:13.4389048Z",
"resourceId": "/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID /RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-
NAME/PROVIDERS/[Link]/TOPICS/SAMPLE-TOPIC-NAME ",
"eventSubscriptionName": "SAMPLEDESTINATION",
"category": "DeliveryFailures",
"operationName": "Deliver",
"message": "Message:outcome=NotFound, latencyInMs=2635, systemId=17284f7c-0044-46fb-84b7-59fda5776017,
state=FilteredFailingDelivery, deliveryTime=11/1/2019 12:17:10 AM, deliveryCount=0, probationCount=0,
deliverySchema=EventGridEvent, eventSubscriptionDeliverySchema=EventGridEvent, fields=InputEvent, EventSubscriptionId,
DeliveryTime, State, Id, DeliverySchema, LastDeliveryAttemptTime, SystemId, fieldCount=, requestExpiration=1/1/0001 12:00:00
AM, delivered=False publishTime=11/1/2019 12:17:10 AM, eventTime=11/1/2019 12:17:09 AM, eventType=Type,
deliveryTime=11/1/2019 12:17:10 AM, filteringState=FilteredWithRpc, inputSchema=EventGridEvent, publisher=DIAGNOSTICLOGSTEST-
[Link], size=363, fields=Id, PublishTime, SerializedBody, EventType, Topic, Subject,
FilteringHashCode, SystemId, Publisher, FilteringTopic, TopicCategory, DataVersion, MetadataVersion, InputSchema, EventTime,
fieldCount=15, url=sb://[Link]/, deliveryResponse=NotFound: The messaging entity
'sb://[Link]/eh-diagnosticlogstest' could not be found. TrackingId:c98c5af6-
11f0-400b-8f56-c605662fb849_G14, SystemTracker:[Link]:eh-diagnosticlogstest,
Timestamp:2019-11-01T00:17:13, referenceId: ac141738a9a54451b12b4cc31a10dedc_G14:"
}
Pasos siguientes
Para aprender a habilitar registros de diagnóstico de temas o dominios, consulte Habilitación de registros de diagnóstico.
Métricas compatibles con Azure Event Grid
04/08/2020 • 7 minutes to read • Edit Online
En este artículo se proporcionan listas de métricas de Event Grid clasificadas por espacios de nombres.
[Link]/domains
N O M B RE DE
M ÉT RIC A PA RA T IP O DE
M ÉT RIC A M O ST RA R UN IDA D A GREGA C IÓ N DESC RIP C IÓ N DIM EN SIO N S
[Link]/topics
N O M B RE DE
M ÉT RIC A PA RA T IP O DE
M ÉT RIC A M O ST RA R UN IDA D A GREGA C IÓ N DESC RIP C IÓ N DIM EN SIO N S
[Link]/systemTopics
N O M B RE DE
M ÉT RIC A PA RA T IP O DE
M ÉT RIC A M O ST RA R UN IDA D A GREGA C IÓ N DESC RIP C IÓ N DIM EN SIO N S
[Link]/eventSubscriptions
N O M B RE DE
M ÉT RIC A PA RA T IP O DE
M ÉT RIC A M O ST RA R UN IDA D A GREGA C IÓ N DESC RIP C IÓ N DIM EN SIO N S
[Link]/extensionTopics
N O M B RE DE
M ÉT RIC A PA RA T IP O DE
M ÉT RIC A M O ST RA R UN IDA D A GREGA C IÓ N DESC RIP C IÓ N DIM EN SIO N S
Pasos siguientes
Consulte el artículo siguiente: Registros de diagnóstico
Creación, visualización y administración de temas del
sistema de Event Grid en Azure Portal
04/08/2020 • 7 minutes to read • Edit Online
En este artículo se muestra cómo crear y administrar temas del sistema en Azure Portal. Para ver un resumen de
los temas del sistema, consulte Temas del sistema.
4. En la página Create Event Grid System Topic (Crear tema del sistema de Event Grid), siga estos pasos:
a. Seleccione el tipo de tema . En el ejemplo siguiente, se selecciona la opción Storage Accounts
(Cuentas de almacenamiento).
b. Seleccione la suscripción de Azure que tiene el recurso de cuenta de almacenamiento.
c. Seleccione el grupo de recursos que tiene la cuenta de almacenamiento.
d. Seleccione la cuenta de almacenamiento .
e. Escriba un nombre para el tema del sistema que se va a crear.
NOTE
Puede usarlo para realizar búsquedas en métricas y registros de diagnóstico.
4. Seleccione un tema del sistema de la lista para ver detalles sobre él.
Esta página muestra detalles sobre el tema del sistema, como la siguiente información:
Origen. Nombre del recurso en el que se creó el tema del sistema.
Tipo de origen. Tipo de recurso. Por ejemplo, [Link] ,
[Link] , [Link] , etc.
Todas las suscripciones creadas para el tema del sistema.
Esta página permite operaciones como las siguientes:
Crear una suscripción a eventos. Seleccione +Event Subscription (+Suscripción a evento) en la barra
de herramientas.
Eliminar una suscripción a eventos. Seleccione Delete (Eliminar) en la barra de herramientas.
Agregar etiquetas para el tema del sistema. Seleccione Tags (Etiquetas) en el menú de la izquierda y
especifique los nombres y valores de las etiquetas.
3. En la página de confirmación, seleccione OK (Aceptar) para confirmar la eliminación. El tema del sistema se
elimina y también todas las suscripciones de eventos relacionadas con él.
3. Confirme que los campos Topic Type (Tipo de tema), Source Resource (Recurso de origen) y Topic
Name (Nombre del tema) se rellenan automáticamente. Escriba un nombre, seleccione un valor para
Endpoint Type (Tipo de punto de conexión) y especifique el punto de conexión . Seleccione Create
(Crear) para guardar la suscripción de eventos.
Pasos siguientes
Consulte los temas del sistema de Azure Event Grid para más información sobre los temas del sistema y los tipos
de temas admitidos en Azure Event Grid.
Creación, visualización y administración de temas del
sistema de Event Grid en la CLI de Azure
04/08/2020 • 4 minutes to read • Edit Online
En este artículo se muestra cómo crear y administrar temas del sistema con la CLI de Azure. Para una introducción
a los temas del sistema, consulte Temas del sistema.
# Get the ID of the Azure source (for example: Azure Storage account)
storageid=$(az storage account show \
--name <AZURE STORAGE ACCOUNT NAME> \
--resource-group <AZURE RESOURCE GROUP NAME> \
--query id --output tsv)
# Create the system topic on the Azure source (example: Azure Storage account)
az eventgrid system-topic create \
-g <AZURE RESOURCE GROUP NAME> \
--name <SPECIFY SYSTEM TOPIC NAME> \
--location <LOCATION> \
--topic-type [Link] \
--source $storageid
Para obtener una lista de los valores de topic-type que puede usar para crear un tema del sistema,
ejecute el comando siguiente. Estos valores de tipo de tema representan los orígenes de eventos que
admiten la creación de temas del sistema. Pase por alto [Link] y
[Link] de la lista.
Para crear un tema del sistema (implícitamente) al crear una suscripción de eventos para un origen de
Azure, use el método az eventgrid event-subscription create. Este es un ejemplo:
storageid=$(az storage account show --name <AZURE STORAGE ACCOUNT NAME> --resource-group <AZURE
RESOURCE GROUP NAME> --query id --output tsv)
endpoint=<ENDPOINT URL>
Para ver un tutorial con instrucciones paso a paso, consulte Suscripción a la cuenta de almacenamiento.
az eventgrid system-topic show -g <AZURE RESOURCE GROUP NAME> -n <SYSTEM TOPIC NAME>
az eventgrid system-topic delete -g <AZURE RESOURCE GROUP NAME> --name <SYSTEM TOPIC NAME>
Pasos siguientes
Consulte los temas del sistema de Azure Event Grid para más información sobre los temas del sistema y los tipos
de temas admitidos en Azure Event Grid.
Creación de temas del sistema en Azure Event Grid
con plantillas de Resource Manager
04/08/2020 • 3 minutes to read • Edit Online
En este artículo se muestra cómo crear y administrar temas del sistema con plantillas de Resource Manager. Para
ver un resumen de los temas del sistema, consulte Temas del sistema.
{
"$schema": "[Link]
"contentVersion": "[Link]",
"parameters": {
"storageName": {
"type": "string",
"defaultValue": "[concat('storage', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Provide a unique name for the Blob Storage account."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Provide a location for the Blob Storage account that supports Event Grid."
}
},
"eventSubName": {
"type": "string",
"defaultValue": "subToStorage",
"metadata": {
"description": "Provide a name for the Event Grid subscription."
}
},
"endpoint": {
"type": "string",
"metadata": {
"description": "Provide the URL for the WebHook to receive events. Create your own endpoint
for events."
}
},
"systemTopicName": {
"type": "String",
"defaultValue": "mystoragesystemtopic",
"metadata": {
"description": "Provide a name for the system topic."
}
}
},
"resources": [
{
"name": "[parameters('storageName')]",
"type": "[Link]/storageAccounts",
"apiVersion": "2017-10-01",
"sku": {
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"location": "[parameters('location')]",
"tags": {},
"properties": {
"accessTier": "Hot"
}
},
{
"name": "[parameters('systemTopicName')]",
"type": "[Link]/systemTopics",
"apiVersion": "2020-04-01-preview",
"location": "[parameters('location')]",
"dependsOn": [
"[parameters('storageName')]"
],
"properties": {
"source": "[resourceId('[Link]/storageAccounts', parameters('storageName'))]",
"topicType": "[Link]"
}
},
{
"type": "[Link]/systemTopics/eventSubscriptions",
"apiVersion": "2020-04-01-preview",
"name": "[concat(parameters('systemTopicName'), '/', parameters('eventSubName'))]",
"dependsOn": [
"[resourceId('[Link]/systemTopics', parameters('systemTopicName'))]"
],
"properties": {
"destination": {
"properties": {
"endpointUrl": "[parameters('endpoint')]"
},
"endpointType": "WebHook"
},
"filter": {
"includedEventTypes": [
"[Link]",
"[Link]"
]
}
}
}
]
}
Consulte Enrutamiento de eventos de almacenamiento de blobs a un punto de conexión web mediante una
plantilla de Azure Resource Manager para obtener instrucciones sobre cómo crear temas del sistema y
suscripciones con plantillas de Resource Manager.
{
"$schema": "[Link]
"contentVersion": "[Link]",
"parameters": {
"storageName": {
"type": "string",
"defaultValue": "[concat('storage', uniqueString(resourceGroup().id))]",
"metadata": {
"description": "Provide a unique name for the Blob Storage account."
"description": "Provide a unique name for the Blob Storage account."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Provide a location for the Blob Storage account that supports Event Grid."
}
},
"eventSubName": {
"type": "string",
"defaultValue": "subToStorage",
"metadata": {
"description": "Provide a name for the Event Grid subscription."
}
},
"endpoint": {
"type": "string",
"metadata": {
"description": "Provide the URL for the WebHook to receive events. Create your own endpoint
for events."
}
}
},
"resources": [
{
"name": "[parameters('storageName')]",
"type": "[Link]/storageAccounts",
"apiVersion": "2017-10-01",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2",
"location": "[parameters('location')]",
"tags": {},
"properties": {
"accessTier": "Hot"
}
},
{
"type": "[Link]/storageAccounts/providers/eventSubscriptions",
"name": "[concat(parameters('storageName'), '/[Link]/',
parameters('eventSubName'))]",
"apiVersion": "2018-01-01",
"dependsOn": [
"[parameters('storageName')]"
],
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "[parameters('endpoint')]"
}
},
"filter": {
"subjectBeginsWith": "",
"subjectEndsWith": "",
"isSubjectCaseSensitive": false,
"includedEventTypes": [
"All"
]
}
}
}
]
}
Pasos siguientes
Consulte los temas del sistema de Azure Event Grid para más información sobre los temas del sistema y los tipos
de temas admitidos en Azure Event Grid.
Obtención de claves de acceso para recursos de
Event Grid (temas o dominios)
04/08/2020 • 2 minutes to read • Edit Online
Las claves de acceso se utilizan para autenticar los eventos de publicación de una aplicación en recursos de Azure
Event Grid (temas y dominios). Se recomienda regenerar las claves periódicamente y almacenarlas de forma
segura. Como se le proporcionan dos claves de acceso, puede mantener las conexiones con una mientras se
regenera la otra.
En este artículo se describe cómo obtener las claves de acceso de un recurso de Event Grid (tema o dominio)
mediante Azure Portal, PowerShell o la CLI.
Azure portal
En Azure Portal, cambie a la pestaña Claves de acceso de la página Tema de Event Grid o Dominio de Event
Grid para su tema o dominio.
Azure PowerShell
Use el comando Get-AzEventGridTopicKey para obtener claves de acceso para los temas.
Use el comando Get-AzEventGridDomainKey para obtener claves de acceso para los dominios.
Azure CLI
Use la lista de claves del tema az eventgrid para obtener las claves de acceso para los temas.
az eventgrid topic key list --resource-group <RESOURCE GROUP NAME> --name <TOPIC NAME>
Use la lista de claves del dominio az eventgrid para obtener las claves de acceso para los dominios.
az eventgrid domain key list --resource-group <RESOURCE GROUP NAME> --name <DOMAIN NAME>
Pasos siguientes
Consulte el artículo siguiente: Autenticación de clientes de publicación.
Publicación en un tema personalizado de Azure
Event Grid
04/08/2020 • 5 minutes to read • Edit Online
En este artículo se describe cómo publicar un evento en un tema personalizado. Muestra el formato de los datos
de publicación y eventos. El Acuerdo de Nivel de Servicio (SLA) solo se aplica a las publicaciones que coinciden
con el formato esperado.
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de AzureRM
que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más información acerca del
nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module
(Presentación del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la instalación del módulo Az,
consulte Instalación de Azure PowerShell.
Punto de conexión
Al enviar el método HTTP POST a un tema personalizado, use el formato del URI:
[Link] .
Para obtener el punto de conexión de un tema personalizado con Azure PowerShell, use:
En la solicitud, incluya un valor de encabezado denominado aeg-sas-key que contenga una clave para la
autenticación.
Por ejemplo, un valor de encabezado válido es
aeg-sas-key: VXbGWce53249Mt8wuotr0GPmyJ/nDT4hgdEj9DpBeRr38arnnm5OFg== .
Para obtener la clave de un tema personalizado con la CLI de Azure, use:
Datos de evento
Para los temas personalizados, los datos de nivel superior contienen los mismos campos que los eventos estándar
definidos por los recursos. Una de esas propiedades es una propiedad de datos que contiene propiedades únicas
del tema personalizado. Como publicador de eventos, debe determinar las propiedades del objeto de datos. Use
el esquema siguiente:
[
{
"id": string,
"eventType": string,
"subject": string,
"eventTime": string-in-date-time-format,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string
}
]
Para obtener una descripción de estas propiedades, vea Esquema de eventos de Azure Event Grid. Al publicar
eventos en un tema de Event Grid, la matriz puede tener un tamaño total de hasta 1 MB. Cada evento en la matriz
se limita a 64 KB (disponibilidad general) o 1 MB (versión preliminar).
NOTE
Los eventos con un tamaño de hasta 64 KB están cubiertos por el Acuerdo de Nivel de Servicio de disponibilidad general
(GA). La compatibilidad de un evento con un tamaño de hasta 1 MB se encuentra actualmente en versión preliminar. Los
eventos de más de 64 KB se cobran en incrementos de 64 KB.
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2017-08-10T21:03:07+00:00",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0"
}]
Response
Después de publicar en el punto de conexión del tema, recibirá una respuesta. La respuesta es un código de
respuesta HTTP estándar. Algunas respuestas comunes son:
RESULTA DO RESP O N SE
Correcto 200 OK
Los datos del evento tienen un formato incorrecto 400 - Solicitud incorrecta
La matriz o el evento superan los límites de tamaño 413 Carga demasiado grande
{
"error": {
"code": "<HTTP status code>",
"message": "<description>",
"details": [{
"code": "<HTTP status code>",
"message": "<description>"
}]
}
}
Pasos siguientes
Para información sobre la supervisión de las entregas de eventos, consulte Supervisar la entrega de mensajes
de Event Grid.
Para más información sobre la clave de autenticación, vea Seguridad y autenticación de Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Integración de Azure Event Grid con Auth0
04/08/2020 • 6 minutes to read • Edit Online
En este artículo se describe cómo conectar sus cuentas de Auth0 y Azure al crear un tema de asociado de Event
Grid.
Consulte los códigos de tipo de evento de Auth0 para obtener una lista completa de los eventos compatibles con
Auth0.
Prueba
La integración del tema de asociado de Auth0 con Azure debería estar lista para usarse.
Comprobación de la integración
Para comprobar que la integración funciona según lo esperado:
1. Inicie sesión en el panel de Auth0.
2. Vaya a Logs > Streams (Registros > Flujos).
3. Haga clic en el flujo de Event Grid.
4. Una vez dentro del flujo, haga clic en la pestaña de estado. El flujo debe estar activo y, siempre y cuando no vea
ningún error, funciona.
Intente invocar cualquiera de las acciones de Auth0 que desencadenan un evento que se publicará para ver el flujo
de eventos.
Pasos siguientes
Tema de asociado de Auth0
Introducción a los temas de asociados
Convertirse en asociado de Event Grid
Recepción de eventos en un punto de conexión de
HTTP
04/08/2020 • 11 minutes to read • Edit Online
En este artículo se describe cómo validar un punto de conexión de HTTP para recibir eventos de una suscripción a
eventos y, a continuación, recibir y deserializar los eventos. En este artículo se utiliza una función de Azure para
fines de demostración; sin embargo, se aplican los mismos conceptos con independencia de dónde se hospede la
aplicación.
NOTE
Se recomienda encarecidamente que use un desencadenador de la cuadrícula de eventos al desencadenar una función de
Azure con Event Grid. Aquí se usa un desencadenador de Webhook genérico con fines ilustrativos.
Prerrequisitos
Necesita una aplicación de función con una función desencadenada por HTTP.
Adición de dependencias
Si está desarrollando en .NET, agregue una dependencia a la función para el [Link] paquete de
NuGet. Los ejemplos de este artículo requieren la versión 1.4.0 o posterior.
Hay SDK para otros lenguajes disponibles a través de la referencia SDK de publicación. Estos paquetes contienen
los modelos para los tipos de evento nativos, como EventGridEvent , StorageBlobCreatedEventData y
EventHubCaptureFileCreatedEventData .
Haga clic en el vínculo "Ver archivos" de la función de Azure (panel más a la derecha del portal de funciones de
Azure) y cree un archivo denominado [Link]. Agregue el siguiente contenido al archivo [Link] y
guárdelo:
{
"frameworks": {
"net46":{
"dependencies": {
"[Link]": "2.0.0"
}
}
}
}
Validación de punto de conexión
Lo primero que querrá hacer es controlar eventos [Link] . Cada vez que
alguien se suscribe a un evento, Event Grid envía un evento de validación al punto de conexión con
validationCode en la carga de datos. El punto de conexión debe reproducirlo en el cuerpo de la respuesta para
demostrar que el punto de conexión es válido y le pertenece. Si usa un desencadenador de Event Grid en lugar de
una función desencadenada por WebHook, la validación del punto de conexión se completa de manera
automática. Si usa un servicio de API de terceros (como Zapier o IFTTT), puede que no sea capaz de reflejar el
código de validación mediante programación. Con esos servicios, puede validar manualmente la suscripción
mediante una dirección URL de validación que se envía en el evento de validación de la suscripción. Copie esa
dirección URL en la propiedad validationUrl y envíe una solicitud GET mediante un cliente de REST o el
explorador web.
En C#, la función DeserializeEventGridEvents() deserializa los eventos de Event Grid. Deserializa los datos del
evento en el tipo adecuado, como StorageBlobCreatedEventData. Use la clase
[Link] para obtener los nombres y tipos de eventos compatibles.
Para reflejar el código de validación mediante programación, use el código siguiente. Encontrará ejemplos
relacionados en el ejemplo de consumidor de Event Grid.
using [Link];
using [Link];
using [Link];
using [Link];
// Do any additional validation (as required) and then return back the below response
var code = [Link];
[Link] = { status: 200, body: { "ValidationResponse": code } };
}
}
[Link]();
};
// Do any additional validation (as required) and then return back the below response
var code = [Link];
[Link] = { status: 200, body: { "ValidationResponse": code } };
}
[{
"topic": "/subscriptions/{subscription-
id}/resourceGroups/Storage/providers/[Link]/storageAccounts/xstoretestaccount",
"subject": "/blobServices/default/containers/testcontainer/blobs/[Link]",
"eventType": "[Link]",
"eventTime": "2017-06-26T18:41:00.9584103Z",
"id": "831e1650-001e-001b-66ab-eeb76e069631",
"data": {
"api": "PutBlockList",
"clientRequestId": "6d79dbfb-0e37-4fc4-981f-442c9ca65760",
"requestId": "831e1650-001e-001b-66ab-eeb76e000000",
"eTag": "0x8D4BCC2E4835CD0",
"contentType": "text/plain",
"contentLength": 524288,
"blobType": "BlockBlob",
"url": "[Link]
"sequencer": "00000000000004420000000000028963",
"storageDiagnostics": {
"batchId": "b68529f3-68cd-4744-baa4-3c0498ec19f0"
}
},
"dataVersion": "",
"metadataVersion": "1"
}]
Agregue una comprobación para el evento [Link] . El código final debe tener el aspecto
siguiente:
using [Link];
using [Link];
using [Link];
using [Link];
class ContosoItemReceivedEventData
{
[JsonProperty(PropertyName = "itemSku")]
public string ItemSku { get; set; }
}
// Do any additional validation (as required) and then return back the below response
var code = [Link];
[Link] = { status: 200, body: { "ValidationResponse": code } };
}
[{
"subject": "Contoso/foo/bar/items",
"eventType": "[Link]",
"eventTime": "2017-08-16T01:57:26.005121Z",
"id": "602a88ef-0001-00e6-1233-1646070610ea",
"data": {
"itemSku": "Standard"
},
"dataVersion": "",
"metadataVersion": "1"
}]
También puede probar esta funcionalidad en vivo mediante el envío de un evento personalizado con CURL desde
Portal o la publicación en un tema personalizado con cualquier servicio o aplicación que pueda ejecutar POST en
un punto de conexión, como Postman. Cree un tema y una suscripción a eventos personalizados con el punto de
conexión establecido como dirección URL de la función.
Pasos siguientes
Explore los SDK de Event Grid para administración y publicación.
Obtenga información acerca de cómo publicar en un tema personalizado.
Pruebe uno de los tutoriales detallados sobre Event Grid y funciones, como el cambio de tamaño de imágenes
cargadas a Blob Storage.
Mensajes fallidos y directivas de reintento
04/08/2020 • 7 minutes to read • Edit Online
Cuando crea una suscripción a eventos, puede personalizar la configuración de entrega de estos. Este artículo
muestra cómo configurar una ubicación de la cola de mensajes fallidos y personalizar la configuración de
reintentos. Para obtener información acerca de estas características, consulte Entrega y reintento de entrega de
mensajes de Event Grid.
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de AzureRM
que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más información acerca del
nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module
(Presentación del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la instalación del módulo Az,
consulte Instalación de Azure PowerShell.
NOTE
Cree una cuenta de almacenamiento y un contenedor de blobs en el almacenamiento antes de ejecutar los comandos
de este artículo.
El servicio Event Grid crea blobs en este contenedor. Los nombres de los blobs tendrán el nombre de la suscripción de
Event Grid con todas las letras en mayúsculas. Por ejemplo, si el nombre de la suscripción es My-Blob-Subscription, los
nombres de los blobs de mensajes con problemas de entrega tendrán MY-BLOB-SUBSCRIPTION
(myblobcontainer/MY-BLOB-SUBSCRIPTION/2019/8/8/5/[Link]). Este
comportamiento sirve para proteger contra las diferencias en el control de las mayúsculas y minúsculas entre servicios
de Azure.
Azure CLI
containername=testcontainer
topicid=$(az eventgrid topic show --name demoTopic -g gridResourceGroup --query id --output tsv)
storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --
output tsv)
Para desactivar las colas de mensajes fallidos, vuelva a ejecutar el comando para crear la suscripción de eventos,
pero no proporcione un valor para deadletter-endpoint . No es necesario eliminar la suscripción de eventos.
NOTE
Si usa la CLI de Azure en la máquina local, utilice la versión 2.0.56 o superior. Para instrucciones sobre cómo instalar la
versión más reciente de la CLI de Azure, consulte Instalación de la CLI de Azure.
PowerShell
$containername = "testcontainer"
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint <endpoint_URL> `
-DeadLetterEndpoint "$storageid/blobServices/default/containers/$containername"
Para desactivar las colas de mensajes fallidos, vuelva a ejecutar el comando para crear la suscripción de eventos,
pero no proporcione un valor para DeadLetterEndpoint . No es necesario eliminar la suscripción de eventos.
NOTE
Si usa Azure PowerShell en la máquina local, use Azure PowerShell versión 1.1.0 o superior. Descargue e instale la última
versión de Azure PowerShell desde las descargas de Azure.
Para establecer el número máximo de reintentos en otro valor distinto a 30, use:
Si establece event-ttl y max-deliver-attempts , Event Grid usa la primera opción más próxima a la expiración
para determinar cuándo se debe detener la entrega de eventos.
PowerShell
Para establecer el período de vida del evento en otro valor distinto de 1440 minutos, use:
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint <endpoint_URL> `
-EventTtl 720
Para establecer el número máximo de reintentos en otro valor distinto a 30, use:
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint <endpoint_URL> `
-MaxDeliveryAttempt 18
Si establece EventTtl y MaxDeliveryAttempt , Event Grid usa la primera opción más próxima a la expiración para
determinar cuándo se debe detener la entrega de eventos.
Pasos siguientes
Para una aplicación de ejemplo que usa una aplicación de función de Azure para procesar los eventos de
mensajes fallidos, consulte Ejemplos de mensajes fallidos de Azure Event Grid para .NET.
Para obtener información acerca de los reintentos y las entregas de eventos, consulte Entrega y reintento de
entrega de mensajes de Event Grid.
Para obtener una introducción a Event Grid, vea Acerca de Event Grid.
Para comenzar a usar rápidamente Event Grid, vea Creación y enrutamiento de eventos personalizados con
Azure Event Grid.
Filtrado de eventos para Event Grid
04/08/2020 • 9 minutes to read • Edit Online
En este artículo se muestra cómo filtrar eventos al crear una suscripción de Event Grid. Para obtener información
sobre las opciones de filtrado de eventos, consulte Understand event filtering for Event Grid subscriptions
(Descripción del filtrado de events para suscripciones de Event Grid).
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de AzureRM
que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más información acerca del
nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure PowerShell Az module
(Presentación del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la instalación del módulo Az,
consulte Instalación de Azure PowerShell.
New-AzEventGridSubscription `
-EventSubscriptionName demoSubToResourceGroup `
-ResourceGroupName myResourceGroup `
-Endpoint <endpoint-URL> `
-IncludedEventType $includedEventTypes
Para la CLI de Azure, use el parámetro --included-event-types . En el ejemplo siguiente se usa la CLI de Azure en
un shell de Bash:
includedEventTypes="[Link] [Link]"
New-AzEventGridSubscription `
-Endpoint <endpoint-URL> `
-EventSubscriptionName demoSubscriptionToResourceGroup `
-ResourceGroupName myResourceGroup `
-SubjectBeginsWith $resourceId
En el siguiente ejemplo de PowerShell se crea una suscripción para un almacenamiento de blobs. Se limitan los
eventos a aquellos con un asunto que termina por .jpg .
New-AzEventGridSubscription `
-EventSubscriptionName demoSubToStorage `
-Endpoint <endpoint-URL> `
-ResourceId $storageId `
-SubjectEndsWith ".jpg"
En el siguiente ejemplo de la CLI de Azure, se crea una suscripción de eventos que filtra por el principio del asunto.
Se usa el parámetro --subject-begins-with para limitar los eventos a aquellos de un recurso específico. Se pasa el
identificador de recurso de un grupo de seguridad de red.
resourceId=$(az resource show --name demoSecurityGroup --resource-group myResourceGroup --resource-type
[Link]/networkSecurityGroups --query id --output tsv)
En el siguiente ejemplo de la CLI de Azure se crea una suscripción para un almacenamiento de blobs. Se limitan
los eventos a aquellos con un asunto que termina por .jpg .
storageid=$(az storage account show --name $storageName --resource-group myResourceGroup --query id --output
tsv)
En el siguiente ejemplo de plantilla de Resource Manager, se crea una suscripción de eventos que filtra por el
principio del asunto. Se usa la propiedad subjectBeginsWith para limitar los eventos a aquellos de un recurso
específico. Se pasa el identificador de recurso de un grupo de seguridad de red.
"resources": [
{
"type": "[Link]/eventSubscriptions",
"name": "[parameters('eventSubName')]",
"apiVersion": "2018-09-15-preview",
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "[parameters('endpoint')]"
}
},
"filter": {
"subjectBeginsWith": "[resourceId('[Link]/networkSecurityGroups','demoSecurityGroup')]",
"subjectEndsWith": "",
"isSubjectCaseSensitive": false,
"includedEventTypes": [ "All" ]
}
}
}
]
En el siguiente ejemplo de plantilla de Resource Manager se crea una suscripción para un almacenamiento de
blobs. Se limitan los eventos a aquellos con un asunto que termina por .jpg .
"resources": [
{
"type": "[Link]/storageAccounts/providers/eventSubscriptions",
"name": "[concat(parameters('storageName'), '/[Link]/', parameters('eventSubName'))]",
"apiVersion": "2018-09-15-preview",
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "[parameters('endpoint')]"
}
},
"filter": {
"subjectEndsWith": ".jpg",
"subjectBeginsWith": "",
"isSubjectCaseSensitive": false,
"includedEventTypes": [ "All" ]
}
}
}
]
topicName=<your-topic-name>
endpointURL=<endpoint-URL>
topicid=$(az eventgrid topic show --name $topicName -g gridResourceGroup --query id --output tsv)
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint $endpointURL `
-ExpirationDate $expDate `
-AdvancedFilter @($AdvFilter1)
topicEndpoint=$(az eventgrid topic show --name $topicName -g gridResourceGroup --query "endpoint" --output
tsv)
key=$(az eventgrid topic key list --name $topicName -g gridResourceGroup --query "key1" --output tsv)
$htbody = @{
id= $eventID
eventType="recordInserted"
subject="myapp/vehicles/cars"
eventTime= $eventDate
data= @{
model="SUV"
color="green"
}
dataVersion="1.0"
}
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Para probar un escenario donde no se envía el evento, envíe un evento con el campo de color establecido en
amarillo. El amarillo no es uno de los valores especificados en la suscripción, por lo que el evento no se entrega a
su suscripción.
Para la CLI de Azure, utilice:
$htbody = @{
id= $eventID
eventType="recordInserted"
subject="myapp/vehicles/cars"
eventTime= $eventDate
data= @{
model="SUV"
color="yellow"
}
dataVersion="1.0"
}
Invoke-WebRequest -Uri $endpoint -Method POST -Body $body -Headers @{"aeg-sas-key" = $keys.Key1}
Pasos siguientes
Para información sobre la supervisión de las entregas de eventos, consulte Supervisar la entrega de mensajes
de Event Grid.
Para más información sobre la clave de autenticación, vea Seguridad y autenticación de Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Consulta de suscripciones de Event Grid
04/08/2020 • 6 minutes to read • Edit Online
En este artículo se describe cómo enumerar las suscripciones de Event Grid en una suscripción a Azure. Cuando
se consultan las suscripciones de Event Grid existentes, es importante conocer los distintos tipos de
suscripciones, ya que se usan parámetros diferentes en función del tipo de suscripción que se desea obtener.
NOTE
Este artículo se ha actualizado para usar el nuevo módulo Az de Azure PowerShell. Aún puede usar el módulo de
AzureRM que continuará recibiendo correcciones de errores hasta diciembre de 2020 como mínimo. Para más
información acerca del nuevo módulo Az y la compatibilidad con AzureRM, consulte Introducing the new Azure
PowerShell Az module (Presentación del nuevo módulo Az de Azure PowerShell). Para obtener instrucciones sobre la
instalación del módulo Az, consulte Instalación de Azure PowerShell.
Para obtener las suscripciones de Event Grid para una suscripción de Azure, especifique el tipo de tema
[Link] .
Para la CLI de Azure, utilice:
Para obtener las suscripciones de Event Grid para un grupo de recursos especificado, indique el nombre del
grupo de recursos como parámetro.
Para la CLI de Azure, utilice:
Para obtener las suscripciones a temas personalizados para una ubicación, especifique la ubicación y el tipo de
tema [Link] .
Para la CLI de Azure, utilice:
Para obtener las suscripciones a las cuentas de almacenamiento para una ubicación, especifique la ubicación y
el tipo de tema [Link] .
Para la CLI de Azure, utilice:
Para obtener las suscripciones de Event Grid para un tema personalizado, especifique tanto el nombre del tema
como el de su grupo de recursos.
Para la CLI de Azure, utilice:
Para obtener las suscripciones de Event Grid para un recurso concreto, especifique el identificador del recurso.
Para la CLI de Azure, utilice:
Pasos siguientes
Para obtener información acerca de los reintentos y las entregas de eventos, consulte Entrega y reintento de
entrega de mensajes de Event Grid.
Para obtener una introducción a Event Grid, vea Acerca de Event Grid.
Para comenzar a usar rápidamente Event Grid, vea Creación y enrutamiento de eventos personalizados con
Azure Event Grid.
Suscripción a eventos a través del portal
04/08/2020 • 2 minutes to read • Edit Online
En este artículo se describe cómo crear suscripciones de Event Grid a través del portal.
4. Seleccione el tipo de suscripción que desea crear. Por ejemplo, para suscribirse a eventos desde su
suscripción a Azure, seleccione Suscripciones de Azure y la suscripción de destino.
5. Para suscribirse a todos los tipos de evento para este origen del evento, mantenga activada la opción
Suscribirse a todos los tipos de evento . En caso contrario, seleccione los tipos de evento para esta
suscripción.
6. Proporcione detalles adicionales sobre la suscripción a los eventos, como el punto de conexión para el
control de eventos y un nombre de la suscripción.
7. Para habilitar la cola de mensajes fallidos y personalizar las directivas de reintento, seleccione
Características adicionales .
8. Seleccione un contenedor para almacenar los eventos que no se pueden entregar y establezca cómo se
envían los reintentos.
El portal presenta opciones para crear una suscripción de eventos que sea pertinente para ese origen.
Pasos siguientes
Para obtener información acerca de los reintentos y las entregas de eventos, consulte Entrega y reintento de
entrega de mensajes de Event Grid.
Para obtener una introducción a Event Grid, vea Acerca de Event Grid.
Para comenzar a usar rápidamente Event Grid, vea Creación y enrutamiento de eventos personalizados con
Azure Event Grid.
Asignación de campos personalizados a esquemas
de Event Grid
04/08/2020 • 10 minutes to read • Edit Online
Si los datos del evento no coinciden con el esquema de Event Grid esperado, podrá seguir usando Event Grid para
enrutar el evento a los suscriptores. En este artículo se describe cómo asignar el esquema al de Event Grid.
IMPORTANT
El uso de esta característica de Azure desde PowerShell requiere que tenga el módulo AzureRM instalado. Se trata de un
módulo anterior que solo está disponible para Windows PowerShell 5.1 que ya no obtiene nuevas características. Los
módulos Az y AzureRM no son compatibles cuando se instalan para las mismas versiones de PowerShell. Si necesita ambas
versiones:
1. Desinstale el módulo Az desde una sesión de PowerShell 5.1.
2. Instale el módulo AzureRM desde una sesión de PowerShell 5.1.
3. Descargue e instale PowerShell Core 6.x o posterior.
4. Instale el módulo Az en una sesión de PowerShell Core.
[
{
"myEventTypeField":"Created",
"resource":"Users/example/Messages/1000",
"resourceData":{"someDataField1":"SomeDataFieldValue"}
}
]
Aunque dicho formato no coincide con el esquema requerido, Event Grid permite asignar los campos al esquema.
También pueden recibir los valores en el esquema original.
New-AzureRmEventGridTopic `
-ResourceGroupName myResourceGroup `
-Name demotopic `
-Location eastus2 `
-InputSchema CustomEventSchema `
-InputMappingField @{eventType="myEventTypeField"} `
-InputMappingDefaultValue @{subject="DefaultSubject"; dataVersion="1.0" }
topicid=$(az eventgrid topic show --name demoTopic -g myResourceGroup --query id --output tsv)
En el ejemplo siguiente se realiza la suscripción a un tema de Event Grid y se usa el esquema de Event Grid. Para
PowerShell, use:
$topicid = (Get-AzureRmEventGridTopic -ResourceGroupName myResourceGroup -Name demoTopic).Id
New-AzureRmEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName eventsub1 `
-EndpointType webhook `
-Endpoint <endpoint-url> `
-DeliverySchema EventGridSchema
New-AzureRmEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName eventsub2 `
-EndpointType webhook `
-Endpoint <endpoint-url> `
-DeliverySchema CustomInputSchema
endpoint=$(az eventgrid topic show --name demotopic -g myResourceGroup --query "endpoint" --output tsv)
key=$(az eventgrid topic key list --name demotopic -g myResourceGroup --query "key1" --output tsv)
$htbody = @{
myEventTypeField="Created"
resource="Users/example/Messages/1000"
resourceData= @{
someDataField1="SomeDataFieldValue"
}
}
Ahora, examinemos el punto de conexión de WebHook. Las dos suscripciones entregaron eventos en diferentes
esquemas.
La primera suscripción usó el esquema de Event Grid. El formato del evento entregado es:
{
"id": "aa5b8e2a-1235-4032-be8f-5223395b9eae",
"eventTime": "2018-11-07T23:59:14.7997564Z",
"eventType": "Created",
"dataVersion": "1.0",
"metadataVersion": "1",
"topic": "/subscriptions/<subscription-
id>/resourceGroups/myResourceGroup/providers/[Link]/topics/demotopic",
"subject": "DefaultSubject",
"data": {
"myEventTypeField": "Created",
"resource": "Users/example/Messages/1000",
"resourceData": {
"someDataField1": "SomeDataFieldValue"
}
}
}
Estos campos contienen las asignaciones del tema personalizado. myEventTypeField se asigna a EventType . Se
usan los valores predeterminados para DataVersion y Subject . El objeto Data contiene los campos del esquema
del evento original.
La segunda suscripción usó el esquema del evento de entrada. El formato del evento entregado es:
{
"myEventTypeField": "Created",
"resource": "Users/example/Messages/1000",
"resourceData": {
"someDataField1": "SomeDataFieldValue"
}
}
Pasos siguientes
Para obtener información acerca de los reintentos y las entregas de eventos, consulte Entrega y reintento de
entrega de mensajes de Event Grid.
Para obtener una introducción a Event Grid, vea Acerca de Event Grid.
Para comenzar a usar rápidamente Event Grid, vea Creación y enrutamiento de eventos personalizados con
Azure Event Grid.
Uso del esquema CloudEvents v1.0 con Event Grid
04/08/2020 • 11 minutes to read • Edit Online
Además de su esquema de eventos predeterminado, Azure Event Grid admite de forma nativa eventos de la
implementación de JSON de CloudEvents v1.0 y el enlace del protocolo HTTP. CloudEvents es una especificación
abierta para la descripción de datos de eventos.
CloudEvents simplifica la interoperabilidad al proporcionar un esquema de eventos común para la publicación y el
consumo de eventos basados en la nube. Este esquema permite herramientas uniformes, formas estándar de
enrutar y administrar eventos y formas universales de deserializar el esquema de eventos externo. Con un
esquema común, puede integrar más fácilmente el trabajo entre plataformas.
En la compilación de CloudEvents participan varios colaboradores, entre ellos Microsoft, mediante Cloud Native
Compute Foundation. Actualmente está disponible en versión 1.0.
En este artículo se describe cómo usar el esquema CloudEvents con Event Grid.
IMPORTANT
El uso de esta característica de Azure desde PowerShell requiere que tenga el módulo AzureRM instalado. Se trata de un
módulo anterior que solo está disponible para Windows PowerShell 5.1 que ya no obtiene nuevas características. Los
módulos Az y AzureRM no son compatibles cuando se instalan para las mismas versiones de PowerShell. Si necesita ambas
versiones:
1. Desinstale el módulo Az desde una sesión de PowerShell 5.1.
2. Instale el módulo AzureRM desde una sesión de PowerShell 5.1.
3. Descargue e instale PowerShell Core 6.x o posterior.
4. Instale el módulo Az en una sesión de PowerShell Core.
Esquema CloudEvent
Este es un ejemplo de un evento de Azure Blob Storage en formato de CloudEvents:
{
"specversion": "1.0",
"type": "[Link]",
"source": "/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/[Link]/storageAccounts/{storage-account}",
"id": "9aeb0fdf-c01e-0131-0922-9eb54906e209",
"time": "2019-11-18T15:13:39.4589254Z",
"subject": "blobServices/default/containers/{storage-container}/blobs/{new-file}",
"dataschema": "#",
"data": {
"api": "PutBlockList",
"clientRequestId": "4c5dd7fb-2c48-4a27-bb30-5361b5de920a",
"requestId": "9aeb0fdf-c01e-0131-0922-9eb549000000",
"eTag": "0x8D76C39E4407333",
"contentType": "image/png",
"contentLength": 30699,
"blobType": "BlockBlob",
"url": "[Link]
"sequencer": "000000000000000000000000000099240000000000c41c18",
"storageDiagnostics": {
"batchId": "681fe319-3006-00a8-0022-9e7cde000000"
}
}
}
Una descripción detallada de los campos disponibles, sus tipos y definiciones en CloudEvents v1.0 se encuentra
disponible aquí.
Los valores de encabezados de los eventos proporcionados en el esquema de CloudEvents y el esquema de Event
Grid son los mismos excepto para content-type . En el esquema de CloudEvents, ese valor de encabezado es
"content-type":"application/cloudevents+json; charset=utf-8" . En el esquema de Event Grid, ese valor de
encabezado es "content-type":"application/json; charset=utf-8" .
Con todos los esquemas de eventos, Event Grid requiere validación al publicar en un tema de Event Grid y al crear
una suscripción de eventos. Para más información, vea Event Grid security and authentication (Seguridad y
autenticación de Event Grid).
Esquema de entrada
El esquema de entrada de un tema personalizado se establece al crear este.
Para la CLI de Azure, utilice:
New-AzureRmEventGridTopic `
-ResourceGroupName gridResourceGroup `
-Location westcentralus `
-Name <topic_name> `
-InputSchema CloudEventSchemaV1_0
Esquema de salida
El esquema de salida se establece al crear la suscripción de eventos.
Para la CLI de Azure, utilice:
topicID=$(az eventgrid topic show --name <topic-name> -g gridResourceGroup --query id --output tsv)
New-AzureRmEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName <event_subscription_name> `
-Endpoint <endpoint_URL> `
-DeliverySchema CloudEventSchemaV1_0
Actualmente, no puede usar un desencadenador de Event Grid para una aplicación de Azure Functions cuando el
evento se entrega en el esquema de CloudEvents. Use un desencadenador HTTP. Para obtener ejemplos de la
implementación de un desencadenador HTTP que recibe eventos en el esquema de CloudEvents, consulte el uso de
CloudEvents con Azure Functions.
return response;
}
return [Link]([Link]);
}
El siguiente ejemplo de código JavaScript para un desencadenador HTTP simula el comportamiento del
desencadenador de Event Grid. Utilice este ejemplo para los eventos entregados en el esquema de CloudEvents.
if ([Link] == "OPTIONS") {
// If the request is for subscription validation, send back the validation code
[Link]();
};
Pasos siguientes
Para información sobre la supervisión de las entregas de eventos, consulte Supervisar la entrega de mensajes
de Event Grid.
Le animamos a que pruebe CloudEvents, nos deje su opinión y contribuya a dicho esquema.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Administrar temas y publicar eventos con dominios
de eventos
04/08/2020 • 10 minutes to read • Edit Online
IMPORTANT
El uso de esta característica de Azure desde PowerShell requiere que tenga el módulo AzureRM instalado. Se trata de un
módulo anterior que solo está disponible para Windows PowerShell 5.1 que ya no obtiene nuevas características. Los
módulos Az y AzureRM no son compatibles cuando se instalan para las mismas versiones de PowerShell. Si necesita ambas
versiones:
1. Desinstale el módulo Az desde una sesión de PowerShell 5.1.
2. Instale el módulo AzureRM desde una sesión de PowerShell 5.1.
3. Descargue e instale PowerShell Core 6.x o posterior.
4. Instale el módulo Az en una sesión de PowerShell Core.
{
"endpoint": "[Link]
"id": "/subscriptions/<sub-id>/resourceGroups/<my-resource-group>/providers/[Link]/domains/<my-
domain-name>",
"inputSchema": "EventGridSchema",
"inputSchemaMapping": null,
"location": "westus2",
"name": "<my-domain-name>",
"provisioningState": "Succeeded",
"resourceGroup": "<my-resource-group>",
"tags": null,
"type": "[Link]/domains"
}
Para más información sobre la administración de acceso para las operaciones de Event Grid, consulte
Autenticación y seguridad de Event Grid.
Si necesita un punto de conexión de prueba al que suscribir sus eventos, siempre puede implementar una
aplicación web precompilada que muestre los eventos entrantes. Puede enviar los eventos a su sitio web de
prueba en [Link] .
Los permisos que se establecen para un tema se almacenan en Azure Active Directory y se deben eliminar
explícitamente. Eliminar una suscripción de eventos no revoca el acceso de un usuario para crear suscripciones de
eventos si tiene acceso de escritura en un tema.
[{
"topic": "demotopic1",
"id": "1111",
"eventType": "maintenanceRequested",
"subject": "myapp/vehicles/diggers",
"eventTime": "2018-10-30T21:03:07+00:00",
"data": {
"make": "Contoso",
"model": "Small Digger"
},
"dataVersion": "1.0"
},
{
"topic": "demotopic2",
"id": "2222",
"eventType": "maintenanceCompleted",
"subject": "myapp/vehicles/tractors",
"eventTime": "2018-10-30T21:04:12+00:00",
"data": {
"make": "Contoso",
"model": "Big Tractor"
},
"dataVersion": "1.0"
}]
CLI de Azure
PowerShell
Para obtener el punto de conexión del dominio con la CLI de Azure, use
Después, use su método favorito para crear una solicitud HTTP POST para publicar los eventos en el dominio de
Event Grid.
Pasos siguientes
Para más información sobre los conceptos de alto nivel en dominios de eventos y saber por qué son útiles,
consulte la información general conceptual acerca de dominios de eventos.
Creación de una recuperación ante desastres propia
para temas personalizados en Event Grid
04/08/2020 • 14 minutes to read • Edit Online
La recuperación ante desastres se ocupa de recuperarse tras una pérdida grave de funcionalidad de la aplicación.
Este tutorial le guía por los pasos para configurar la arquitectura de eventos para recuperación en caso de que el
servicio Event Grid deje de funcionar correctamente en una región determinada.
En este tutorial, aprenderá a crear una arquitectura de conmutación por error activo-pasivo para temas
personalizados en Event Grid. Para realizar la conmutación por error, creará un reflejo de sus temas y
suscripciones entre dos regiones y, luego, administrará una conmutación por error cuando un tema deje de tener
un estado correcto. La arquitectura de este tutorial conmuta por error todo el tráfico nuevo. Es importante tener
en cuenta que, con esta configuración, los eventos ya en ejecución no se recuperarán hasta que la región
comprometida vuelva a tener un estado correcto.
NOTE
Event Grid admite ahora la recuperación ante desastres geográfica automática (GeoDR) en el servidor. Aún puede
implementar la lógica de recuperación ante desastres en el lado del cliente si desea un mayor control sobre el proceso de
conmutación por error. Para obtener más información acerca de GeoDR automática, consulte Recuperación de desastres
geográfica del lado servidor en Azure Event Grid.
2. La implementación puede tardar unos minutos en completarse. Después de que la implementación se haya
realizado correctamente, puede ver la aplicación web para asegurarse de que se está ejecutando. En un
explorador web, vaya a: [Link] Asegúrese de anotar esta dirección
URL, ya que la necesitará más adelante.
3. Verá el sitio, pero aún no se ha publicado en él ningún evento.
Habilitación del proveedor de recursos de Event Grid
Si aún no ha usado anteriormente Event Grid en su suscripción de Azure, puede que tenga que registrar el
proveedor de recursos de Event Grid.
En Azure Portal:
1. Seleccione Suscripciones en el menú de la izquierda.
2. Seleccione la suscripción que está usando para Event Grid.
3. En el menú de la izquierda, en Configuración , seleccione Proveedores de recursos .
4. Busque [Link] .
5. Si no está registrado, seleccione Registrar .
Puede tardar unos instantes en finalizarse el registro. Seleccione Actualizar para actualizar el estado. Cuando el
estado es Registrado , ya está listo para continuar.
4. Una vez creado el tema, vaya a él y copie el punto de conexión del tema . Necesitará el URI más adelante.
5. Obtenga la clave de acceso para el tema, que también necesitará más adelante. Haga clic en Claves de
acceso en el menú de recursos y copie Clave 1.
6. En la hoja Tema, haga clic en +Suscripción de eventos para crear una suscripción que conecte el sitio
web receptor de eventos de suscripción que creó en los requisitos previos con el tutorial.
Asigne un nombre lógico a la suscripción de eventos y agregue "-principal" como sufijo para que sea
fácil realizar un seguimiento.
Seleccione el webhook de tipo de punto de conexión.
Establezca el punto de conexión en la dirección URL del evento del receptor de eventos, que debe
parecerse a: [Link]
7. Repita el mismo flujo para crear su tema y suscripción secundarios. Esta vez, reemplace el sufijo "-principal"
por el sufijo "-secundario" para facilitar el seguimiento. Por último, asegúrese de colocarlo en una región
distinta de Azure. Aunque puede colocarlo donde quiera, se recomienda usar las regiones emparejadas de
Azure. Si coloca el tema y la suscripción secundarios en una región distinta, se tiene la seguridad de que los
nuevos eventos fluirán incluso si la región principal deja de funcionar.
Ahora debería tener:
Un sitio web receptor de eventos para pruebas.
Un tema principal en su región primaria.
Una suscripción al evento principal que conecta el tema principal con el sitio web receptor de eventos.
Un tema secundario en la región secundaria.
Una suscripción al evento secundario que conecta el tema principal con el sitio web receptor de eventos.
using System;
using [Link];
using [Link];
using [Link];
using [Link];
using [Link];
namespace EventGridFailoverPublisher
{
// This captures the "Data" portion of an EventGridEvent on a custom topic
class FailoverEventData
{
[JsonProperty(PropertyName = "teststatus")]
public string TestStatus { get; set; }
}
class Program
{
static void Main(string[] args)
{
// TODO: Enter the endpoint each topic. You can find this topic endpoint value
// in the "Overview" section in the "Event Grid Topics" blade in Azure Portal..
string primaryTopic = "[Link]
region>.[Link]/api/events";
string secondaryTopic = "[Link]
region>.[Link]/api/events";
// TODO: Enter topic key for each topic. You can find this in the "Access Keys" section in the
// "Event Grid Topics" blade in Azure Portal.
string primaryTopicKey = "<your-primary-topic-key>";
string secondaryTopicKey = "<your-secondary-topic-key>";
try
{
TopicCredentials topicCredentials = new TopicCredentials(primaryTopicKey);
EventGridClient client = new EventGridClient(topicCredentials);
[Link](primaryTopicHostname, GetEventsList()).GetAwaiter().GetResult();
[Link]("Published events to primary Event Grid topic.");
[Link](secondaryTopicHostname, GetEventsList()).GetAwaiter().GetResult();
[Link]("Published events to secondary Event Grid topic. Reason for primary topic
failure:\n\n" + e);
[Link]();
}
return eventsList;
}
}
}
Prueba
Ahora que tiene todos los componentes en su sitio, puede probar la implementación de la conmutación por error.
Ejecute el ejemplo anterior en Visual Studio Code o su entorno favorito. Reemplace los siguientes cuatro valores
por los puntos de conexión y claves de sus temas:
primaryTopic: el punto de conexión del tema principal.
secondaryTopic: el punto de conexión del tema secundario.
primaryTopicKey: la clave del tema principal.
secondaryTopicKey: la clave del tema secundario.
Intente ejecutar el publicador de eventos. Verá que los eventos de prueba se muestran en el visor de Event Grid,
como se ilustra a continuación.
Para asegurarse de que la conmutación por error funciona, puede cambiar algunos caracteres de la clave del tema
principal para que ya no sea válido. Intente ejecutar de nuevo el publicador. Aunque seguirá viendo que aparecen
nuevos eventos en el visor de Event Grid, si examina la consola verá que ya no se publican a través del tema
secundario.
Posibles extensiones
Hay muchas maneras de ampliar este ejemplo según sus necesidades. En escenarios de gran volumen, puede que
quiera comprobar periódicamente la API de mantenimiento del tema de forma independiente. Así, si un tema deja
de funcionar, no necesitará comprobarlo con cada publicación. Una vez que sepa que un tema ya no tiene un
estado correcto, puede adoptar como valor predeterminado la publicación en el tema secundario.
Igualmente, puede que quiera implementar la lógica de conmutación por recuperación según sus necesidades
específicas. Si publicar en el centro de datos más cercano es fundamental para reducir la latencia, puede sondear
periódicamente la API de mantenimiento de un tema que se haya conmutado por error. Cuando su estado vuelva a
ser correcto, sabrá que es seguro conmutar por recuperación al centro de datos más cercano.
Pasos siguientes
Más información sobre cómo recibir eventos en un punto de conexión HTTP.
Descubra cómo enrutar eventos a Conexiones híbridas.
Aprenda sobre la recuperación ante desastres mediante Azure DNS y Traffic Manager.
Seguimiento de las operaciones asincrónicas de
Azure
04/08/2020 • 7 minutes to read • Edit Online
Algunas operaciones de REST de Azure se ejecutan asincrónicamente porque la operación no se puede completar
rápidamente. En este artículo se describe cómo realizar un seguimiento del estado de las operaciones asincrónicas
a través de los valores devueltos en la respuesta.
[Link]("Azure-AsyncOperation").GetValue(0)
{
"id": "{resource path from GET operation}",
"name": "{operation-id}",
"status" : "Succeeded | Failed | Canceled | {resource provider values}",
"startTime": "2017-01-06T20:56:36.002812+00:00",
"endTime": "2017-01-06T20:56:56.002812+00:00",
"percentComplete": {double between 0 and 100 },
"properties": {
/* Specific resource provider values for successful operations */
},
"error" : {
"code": "{error code}",
"message": "{error description}"
}
}
Solo se devuelve status para todas las respuestas. El objeto de error se devuelve cuando el estado es Failed o
Canceled. Todos los demás valores son opcionales; por lo tanto, la respuesta que reciba puede ser diferente del
ejemplo.
Valores ProvisioningState
Las operaciones que crean, actualizan o eliminan (PUT, PATCH, DELETE) un recurso, normalmente devuelven un
valor provisioningState . Cuando una operación ha finalizado, se devuelve uno de tres valores siguientes:
Correcto
Con error
Canceled
Todos los demás valores indican que la operación todavía se está ejecutando. El proveedor de recursos puede
devolver un valor personalizado que indica su estado. Por ejemplo, puede recibir Accepted cuando la solicitud se
ha recibido y está en ejecución.
POST
[Link]
group}/providers/[Link]/virtualMachines/{vm-name}/start?api-version=2016-03-30
Azure-AsyncOperation : [Link]
id}/providers/[Link]/locations/{region}/operations/{operation-id}?api-version=2016-03-30
Para comprobar el estado de la operación asincrónica, envíe otra solicitud a esa dirección URL.
GET
[Link]
id}/providers/[Link]/locations/{region}/operations/{operation-id}?api-version=2016-03-30
El cuerpo de respuesta contiene el estado de la operación:
{
"startTime": "2017-01-06T18:58:24.7596323+00:00",
"status": "InProgress",
"name": "9a062a88-e463-4697-bef2-fe039df73a02"
}
PUT
[Link]
group}/providers/[Link]/deployments/{deployment-name}?api-version=2016-09-01
"provisioningState":"Accepted",
Azure-AsyncOperation: [Link]
group}/providers/[Link]/deployments/{deployment-name}/operationStatuses/{operation-id}?api-
version=2016-09-01
Para comprobar el estado de la operación asincrónica, envíe otra solicitud a esa dirección URL.
GET
[Link]
group}/providers/[Link]/deployments/{deployment-name}/operationStatuses/{operation-id}?api-
version=2016-09-01
{"status":"Running"}
{"status":"Succeeded"}
PUT
[Link]
group}/providers/[Link]/storageAccounts/{storage-name}?api-version=2016-01-01
Devuelve el código de estado 202. Entre los valores de encabezado, vea los dos valores siguientes:
Location: [Link]
id}/providers/[Link]/operations/{operation-id}?monitor=true&api-version=2016-01-01
Retry-After: 17
GET
[Link]
id}?monitor=true&api-version=2016-01-01
Si la solicitud aún se está ejecutando, recibe un código de estado 202. Si la solicitud se ha completado, recibe un
código de estado 200 y el cuerpo de la respuesta contiene las propiedades de la cuenta de almacenamiento que se
ha creado.
Pasos siguientes
Para obtener documentación sobre cada operación de REST, consulte la documentación de la API de REST.
Para información acerca de la implementación de plantillas a través de la API REST de Resource Manager,
consulte Implementación de recursos con las plantillas de Resource Manager y la API de REST de Resource
Manager.
Configuración de puntos de conexión privados para
temas o dominios de Azure Event Grid
04/08/2020 • 21 minutes to read • Edit Online
Puede usar puntos de conexión privados para permitir la entrada de eventos directamente desde su red virtual a
sus temas y dominios de forma segura a través de un vínculo privado sin tener que ir a la red pública de Internet.
El punto de conexión privado usa una dirección IP del espacio de direcciones de la red virtual para el tema o
dominio. Para más información conceptual, consulte Seguridad de las redes.
En este artículo se describe cómo configurar los puntos de conexión privados para los temas o dominios.
NOTE
Los pasos que se muestran en esta sección son principalmente para los temas. Puede usar pasos similares para crear
puntos de conexión privados para dominios .
5. En la página Configuración , seleccione la subred de una red virtual en la que desee implementar el
punto de conexión privado.
a. Seleccione una red vir tual . En la lista desplegable, solo se muestran las redes virtuales de la
suscripción y la ubicación seleccionadas actualmente.
b. Seleccione una subred de la red virtual que seleccionó.
c. Seleccione Siguiente: Etiquetas situado en la parte inferior de la página.
6. En la página Etiquetas , cree cualquier etiqueta (nombres y valores) que desee asociar al recurso de punto
de conexión privado. Después, en la parte inferior de la página, seleccione el botón Revisar y crear .
7. En Revisar y crear , revise toda la configuración y seleccione Crear para crear el punto de conexión
privado.
Administración de una conexión de vínculo privado
Cuando se crea un punto de conexión privado, se debe aprobar la conexión. Si el recurso para el que va a crear
un punto de conexión privado está en el directorio, puede aprobar la solicitud de conexión siempre que tenga
permisos suficientes. Si se va a conectar a un recurso de Azure en otro directorio, debe esperar a que el
propietario de ese recurso apruebe la solicitud de conexión.
Hay cuatro estados de aprovisionamiento:
ESTA DO DE P UN TO DE C O N EXIÓ N
P RIVA DO DEL C O N SUM IDO R DEL
A C C IÓ N DEL SERVIC IO SERVIC IO DESC RIP C IÓ N
NOTE
Los pasos que se muestran en esta sección son principalmente para los temas. Puede usar pasos similares para aprobar
puntos de conexión privados para dominios .
1. Seleccione el punto de conexión privado que desea aprobar y seleccione Aprobar en la barra de
herramientas.
NOTE
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para rechazar puntos de
conexión privados para dominios .
1. Seleccione el punto de conexión privado que desea rechazar y seleccione Rechazar en la barra de
herramientas.
NOTE
No se puede aprobar un punto de conexión privado en Azure Portal una vez rechazado.
Para obtener descripciones de los parámetros utilizados en el ejemplo, consulte la documentación de az network
private-endpoint create. Tenga en cuenta los siguientes puntos de este ejemplo:
Para private-connection-resource-id , especifique el identificador del recurso del tema o dominio . En el
ejemplo anterior se utiliza el tipo "tema".
Para group-ids , especifique topic o domain . En el ejemplo anterior, se usa topic .
Para eliminar un punto de conexión privado, use el método az network private-endpoint delete que se indica en
el siguiente ejemplo:
az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
NOTE
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para crear puntos de conexión
privados para dominios .
Requisitos previos
Actualice la extensión de Azure Event Grid para la CLI mediante el siguiente comando:
Para obtener descripciones de los parámetros utilizados en el ejemplo, consulte la documentación de az network
private-endpoint create. Tenga en cuenta los siguientes puntos de este ejemplo:
Para private-connection-resource-id , especifique el identificador del recurso del tema o dominio . En el
ejemplo anterior se utiliza el tipo "tema".
Para group-ids , especifique topic o domain . En el ejemplo anterior, se usa topic .
Para eliminar un punto de conexión privado, use el método az network private-endpoint delete que se indica en
el siguiente ejemplo:
az network private-endpoint delete --resource-group <RESOURECE GROUP NAME> --name <PRIVATE ENDPOINT NAME>
NOTE
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para crear puntos de conexión
privados para dominios .
Script de ejemplo
Este es un script de ejemplo que crea los siguientes recursos de Azure:
Resource group
Virtual network
Una subred en la red virtual
Tema de Azure Event Grid
Un punto de conexión privado para el tema
NOTE
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para crear puntos de conexión
privados para dominios.
subscriptionID="<AZURE SUBSCRIPTION ID>"
resourceGroupName="<RESOURCE GROUP NAME>"
location="<LOCATION>"
vNetName="<VIRTUAL NETWORK NAME>"
subNetName="<SUBNET NAME>"
topicName = "<TOPIC NAME>"
connectionName="<ENDPOINT CONNECTION NAME>"
endpointName=<ENDPOINT NAME>
# resource ID of the topic. replace <SUBSCRIPTION ID>, <RESOURCE GROUP NAME>, and <TOPIC NAME>
topicResourceID="/subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/topics/<TOPIC NAME>"
# select subscription
az account set --subscription $subscriptionID
# create vnet
az network vnet create \
--resource-group $resourceGroupName \
--name $vNetName \
--address-prefix [Link]/16
# create subnet
az network vnet subnet create \
--resource-group $resourceGroupName \
--vnet-name $vNetName \
--name $subNetName \
--address-prefixes [Link]/24
# get topic
az eventgrid topic show \
--resource-group $resourceGroupName \
--name $topicName
Aprobación de un punto de conexión privado
En el siguiente ejemplo de fragmento de código de la CLI se muestra cómo aprobar una conexión de punto de
conexión privado.
Uso de PowerShell
En esta sección se muestra cómo crear un punto de conexión privado para un tema o dominio mediante
PowerShell.
Requisito previo
Siga las instrucciones de Procedimientos: Uso del portal para crear una aplicación de Azure AD y una entidad de
servicio con acceso a los recursos para crear una aplicación de Azure Active Directory, y anote los valores de Id.
de directorio (inquilino) , Id. de aplicación (cliente) y Secreto de la aplicación (cliente) .
Preparación de tokens y encabezados para las llamadas de la API REST
Ejecute los siguientes comandos como requisitos previos para obtener un token de autenticación para usarlo con
llamadas de la API REST y la autorización y otra información de encabezado.
$body = "grant_type=client_credentials&client_id=<CLIENT ID>&client_secret=<CLIENT
SECRET>&resource=[Link]
NOTE
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para crear puntos de conexión
privados para dominios .
$body = @{"location"="<LOCATION>"; "properties"=@{"publicNetworkAccess"="disabled"}} | ConvertTo-Json
# create topic
Invoke-RestMethod -Method 'Put' `
-Uri "[Link] SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/topics/<EVENT GRID TOPIC NAME>?api-version=2020-04-01-preview" `
-Headers $Headers `
-Body $body
Cuando compruebe que se ha creado el punto de conexión, debería ver un resultado similar al siguiente:
{
"value": [
{
"properties": {
"privateEndpoint": {
"id": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/privateEndpoints/<PRIVATE ENDPOINT NAME>"
},
"groupIds": [
"topic"
],
"privateLinkServiceConnectionState": {
"status": "Approved",
"description": "Auto-approved",
"actionsRequired": "None"
},
"provisioningState": "Succeeded"
},
"id": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP
NAME>/providers/[Link]/topics/<EVENT GRID TOPIC NAME>/privateEndpointConnections/<PRIVATE
ENDPOINT NAME>.<GUID>",
"name": "myConnection",
"type": "[Link]/topics/privateEndpointConnections"
}
]
}
NOTE
Los pasos que se muestran en esta sección son para los temas. Puede usar pasos similares para aprobar puntos de
conexión privados para dominios .
$approvedBody =
@{"properties"=@{"privateLinkServiceConnectionState"=@{"status"="approved";"description"="connection
approved";"actionsRequired"="none"}}} | ConvertTo-Json
$rejectedBody =
@{"properties"=@{"privateLinkServiceConnectionState"=@{"status"="rejected";"description"="connection
rejected";"actionsRequired"="none"}}} | ConvertTo-Json
Puede aprobar la conexión incluso después de que esta se haya rechazado mediante la API. Si usa Azure Portal,
no puede aprobar un punto de conexión que se haya rechazado.
Pasos siguientes
Para más información sobre cómo configurar las opciones de firewall de IP, consulte Configuración del firewall
de IP para temas o dominios de Azure Event Grid.
Para solucionar problemas de conectividad de red, consulte Solucionar problemas de conectividad de red.
Configuración del firewall de IP para temas o
dominios de Azure Event Grid (versión preliminar)
04/08/2020 • 11 minutes to read • Edit Online
De forma predeterminada, el tema y el dominio son accesibles desde Internet siempre que la solicitud venga
con una autenticación y una autorización válidas. Con el firewall de IP, puede restringirlo aún más a solo un
conjunto de direcciones IPv4 o intervalos de direcciones IPv4 en la notación CIDR (Enrutamiento de
interdominios sin clases). Los publicadores que se originen desde cualquier otra dirección IP se rechazarán y
recibirán una respuesta 403 (Prohibido). Para más información sobre las características de seguridad de red
admitidas por Event Grid, consulte Seguridad de red para Event Grid.
En este artículo se describe cómo configurar las opciones de firewall de IP para los temas o dominios de Azure
Event Grid.
3. Seleccione Private endpoints only (Solo puntos de conexión privados) para permitir que sean solo las
conexiones de puntos de conexión privados las que tengan acceso a este recurso. Use la pestaña
Conexiones de punto de conexión privado de esta página para administrar las conexiones.
4. Seleccione Guardar en la barra de herramientas.
Uso de PowerShell
En esta sección se muestra cómo usar los comandos de Azure PowerShell para crear temas de Azure Event Grid
con reglas de firewall de IP de entrada. Los pasos que se muestran en esta sección son para los temas. Puede
usar pasos similares para crear reglas de IP de entrada para dominios .
Requisitos previos
Siga las instrucciones de Procedimientos: Use el portal para crear una aplicación de Azure AD y una entidad de
servicio que pueda acceder a los recursos para crear una aplicación de Azure Active Directory y anote los
siguientes valores:
Id. de directorio (inquilino)
Id. de aplicación (cliente)
Secreto de la aplicación (cliente)
Preparación de tokens y encabezados para las llamadas de la API REST
Ejecute los siguientes comandos como requisitos previos para obtener un token de autenticación para usarlo
con llamadas de la API REST y la autorización y otra información de encabezado.
# replace <CLIENT ID> and <CLIENT SECRET>
$body = "grant_type=client_credentials&client_id=<CLIENT ID>&client_secret=<CLIENT
SECRET>&resource=[Link]
# prepare the body for the REST PUT method. Notice that no inbound IP rules are specified.
$body = @{"location"="<LOCATION>"; "sku"= @{"name"="basic"};
"properties"=@{"publicNetworkAccess"="enabled";}} | ConvertTo-Json -Depth 5
# prepare the body for REST PUT method. Notice that it includes inbound IP rules now. This feature is
available in both basic and premium tiers.
$body = @{"location"="<LOCATION>"; "sku"= @{"name"="basic"};
"properties"=@{"publicNetworkAccess"="enabled"; "inboundIpRules"=@(@{"ipmask"="<IP ADDR or CIDR
MASK>";"action"="allow"}, @{"ipmask"="<IP ADDR or CIDR MASK>";"action"="allow"})}} | ConvertTo-Json -Depth
5
En este artículo se describe cómo aprovechar las ventajas de Azure Active Directory para proteger la conexión
entre su suscripción de eventos y el punto de conexión de webhook. Para una introducción a las entidades de
servicio y aplicaciones de Azure AD, consulte Introducción a la Plataforma de identidad de Microsoft (versión 2.0).
En este artículo se usa Azure Portal para la demostración; sin embargo, la característica también se puede habilitar
mediante la CLI, PowerShell o los SDK.
Esta característica se encuentra en su versión preliminar. Para usarlo, debe instalar una extensión o módulo de la
versión preliminar.
Instalación de la extensión para la CLI de Azure
Para la CLI de Azure, necesita la extensión de Event Grid.
En CloudShell:
Si ha instalado la extensión anteriormente, actualícela az extension update -n eventgrid
Si no ha instalado la extensión anteriormente, instálela az extension add -n eventgrid
Para una instalación local:
1. Instalación de la CLI de Azure. Asegúrese de que tiene la última versión. Para ello, debe comprobarlo con
az --version .
2. Desinstale las versiones anteriores de la extensión az extension remove -n eventgrid .
3. Instale la extensión eventgrid con az extension add -n eventgrid
Instalación del módulo para PowerShell
Para PowerShell, necesita el módulo [Link].
En CloudShell:
Instale el módulo Install-Module -Name [Link] -AllowPrerelease -Force -Repository PSGallery .
NOTE
Debe ser miembro del rol Administrador de aplicaciones de Azure AD para ejecutar este script.
1. Modifique el valor de $myTenantId del script de PowerShell para usar el identificador de inquilino de Azure AD.
2. Modifique el valor de $myAzureADApplicationObjectId del script de PowerShell para usar el identificador de
objeto de Azure AD.
3. Ejecute el script modificado.
# This is the name of the new role we will add to your Azure AD Application
$eventGridRoleName = "AzureEventGridSecureWebhook"
Pasos siguientes
Para información sobre la supervisión de las entregas de eventos, consulte Supervisar la entrega de mensajes
de Event Grid.
Para más información sobre la clave de autenticación, vea Seguridad y autenticación de Event Grid.
Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de
suscripción de Event Grid.
Entrega de evento con una identidad administrada
04/08/2020 • 19 minutes to read • Edit Online
En este artículo se describe cómo habilitar una identidad de servicio administrada de temas o dominios de Azure
Event Grid. Úselo para reenviar eventos a destinos compatibles, como colas y temas de Service Bus, centros de
eventos y cuentas de almacenamiento.
Estos son los pasos que se describen en detalle en este artículo:
1. Cree un tema o un dominio con una identidad asignada por el sistema, o bien actualice un tema o dominio
existente para habilitar la identidad.
2. Agregue la identidad a un rol adecuado (por ejemplo, Remitente de los datos de Service Bus) en el destino (por
ejemplo, una cola de Service Bus).
3. Al crear suscripciones de eventos, habilite el uso de la identidad para enviar eventos al destino.
Del mismo modo, puede usar el comando az eventgrid domain create para crear un dominio con una identidad
administrada por el sistema.
Puede usar pasos similares para habilitar una identidad de un dominio de Event Grid.
Uso de la CLI de Azure
Use el comando az eventgrid topic update con --identity establecido en systemassigned para habilitar la
identidad asignada por el sistema para un tema existente. Si desea deshabilitar la identidad, especifique
noidentity como valor.
DEST IN AT IO N RO L DE RB A C
# create role assignment scoped to just one event hub inside the namespace
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$eventhubresourceid"
# create role assignment scoped to just one hub inside the namespace
az role assignment create --role "$role" --assignee "$topic_pid" --scope "$sbustopicresourceid"
Creación de una suscripción de eventos usando una identidad administrada para la entrega
Este comando de ejemplo crea una suscripción de eventos de un tema de Event Grid con un tipo de punto de
conexión establecido en Cola de Ser vice Bus .
Creación de una suscripción de eventos usando una identidad administrada para la entrega y cola de mensajes fallidos
Este comando de ejemplo crea una suscripción de eventos de un tema de Event Grid con un tipo de punto de
conexión establecido en Cola de Ser vice Bus . También especifica que la identidad administrada por el sistema
se va a usar para la cola de mensajes fallidos.
storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output
tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"
hubid=$(az eventhubs eventhub show --name <EVENT HUB NAME> --namespace-name <NAMESPACE NAME> --resource-group
<RESOURCE GROUP NAME> --query id --output tsv)
eh_esname = "<SPECIFY EVENT SUBSCRIPTION NAME>"
Creación de una suscripción de eventos usando una identidad administrada para la entrega
Este comando de ejemplo crea una suscripción de eventos de un tema de Event Grid con un tipo de punto de
conexión establecido en Event Hubs .
Creación de una suscripción de eventos usando una identidad administrada para la entrega y cola de mensajes fallidos
Este comando de ejemplo crea una suscripción de eventos de un tema de Event Grid con un tipo de punto de
conexión establecido en Event Hubs . También especifica que la identidad administrada por el sistema se va a
usar para la cola de mensajes fallidos.
storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output
tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"
Creación de una suscripción de eventos usando una identidad administrada para la entrega
Creación de una suscripción de eventos usando una identidad administrada para la entrega y cola de mensajes fallidos
storageid=$(az storage account show --name demoStorage --resource-group gridResourceGroup --query id --output
tsv)
deadletterendpoint="$storageid/blobServices/default/containers/<BLOB CONTAINER NAME>"
La configuración de diagnóstico permite a los usuarios de Event Grid capturar y ver los registros de error de
publicación y entrega en una cuenta de almacenamiento, un centro de eventos o un área de trabajo de Log
Analytics. En este artículo se proporcionan instrucciones paso a paso sobre cómo habilitar estas opciones en un
tema de Event Grid.
Requisitos previos
Un tema de Event Grid aprovisionado.
Un destino aprovisionado para capturar registros de diagnóstico. Puede tener uno de los siguientes destinos en
la misma ubicación que el tema de Event Grid:
Cuenta de almacenamiento de Azure
Centro de eventos
Área de trabajo de Log Analytics
b. Seleccione el tema de la lista para el que desea configurar las opciones de diagnóstico.
3. Seleccione Configuración de diagnóstico en Super visión , en el menú de la izquierda.
4. En la página Configuración de diagnóstico , seleccione Add New Diagnostic Setting (Agregar nueva
configuración de diagnóstico).
7. Habilite uno o varios destinos de captura para los registros y, a continuación, configúrelos; para ello,
seleccione un recurso de captura creado anteriormente.
Si selecciona Archive to a storage account (Archivar en una cuenta de almacenamiento),
seleccione Cuenta de almacenamiento: configurar y, a continuación, seleccione la cuenta de
almacenamiento en la suscripción de Azure.
Si selecciona Stream to an event hub (Transmitir a un centro de eventos), seleccione Centro de
eventos: Configurar y, a continuación, seleccione el espacio de nombres de Event Hubs, el centro
de eventos y la directiva de acceso.
Si selecciona Send to Log Analytics (Enviar a Log Analytics), seleccione un área de trabajo de Log
Analytics.
b. Seleccione el tema del sistema para el que desea configurar las opciones de diagnóstico.
3. Seleccione Configuración de diagnóstico en Super visión en el menú izquierdo y, luego, elija Agregar
configuración de diagnóstico .
6. Habilite uno o varios destinos de captura para los registros y, a continuación, configúrelos; para ello,
seleccione un recurso de captura creado anteriormente.
Si selecciona Send to Log Analytics (Enviar a Log Analytics), seleccione un área de trabajo de Log
Analytics.
También puede habilitar la recopilación de todas las métricas del tema del sistema.
Visualización de registros de diagnóstico en Azure Storage
1. Una vez que habilite una cuenta de almacenamiento como destino de captura y Event Grid comience a
emitir registros de diagnóstico, debería ver nuevos contenedores denominados insights-logs-
deliver yfailures e insights-logs-publishfailures en la cuenta de almacenamiento.
2. A medida que se desplace con uno de los contenedores, terminará en un blob en formato JSON. El archivo
contiene entradas de registro para un error de entrega o un error de publicación. La ruta de navegación
representa el ResourceId del tema de Event Grid y la marca de tiempo (nivel de minuto) como cuando se
emitieron las entradas de registro. El archivo blob/JSON, que se puede descargar, al final se adhiere al
esquema descrito en la sección siguiente.
3. Debería ver el contenido en el archivo JSON similar al ejemplo siguiente:
{
"time": "2019-11-01T00:17:13.4389048Z",
"resourceId": "/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID /RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-
NAME/PROVIDERS/[Link]/TOPICS/SAMPLE-TOPIC-NAME ",
"eventSubscriptionName": "SAMPLEDESTINATION",
"category": "DeliveryFailures",
"operationName": "Deliver",
"message": "Message:outcome=NotFound, latencyInMs=2635, systemId=17284f7c-0044-46fb-84b7-
59fda5776017, state=FilteredFailingDelivery, deliveryTime=11/1/2019 12:17:10 AM, deliveryCount=0,
probationCount=0, deliverySchema=EventGridEvent, eventSubscriptionDeliverySchema=EventGridEvent,
fields=InputEvent, EventSubscriptionId, DeliveryTime, State, Id, DeliverySchema,
LastDeliveryAttemptTime, SystemId, fieldCount=, requestExpiration=1/1/0001 12:00:00 AM, delivered=False
publishTime=11/1/2019 12:17:10 AM, eventTime=11/1/2019 12:17:09 AM, eventType=Type,
deliveryTime=11/1/2019 12:17:10 AM, filteringState=FilteredWithRpc, inputSchema=EventGridEvent,
publisher=[Link], size=363, fields=Id, PublishTime,
SerializedBody, EventType, Topic, Subject, FilteringHashCode, SystemId, Publisher, FilteringTopic,
TopicCategory, DataVersion, MetadataVersion, InputSchema, EventTime, fieldCount=15,
url=sb://[Link]/, deliveryResponse=NotFound: The messaging
entity 'sb://[Link]/eh-diagnosticlogstest' could not be
found. TrackingId:c98c5af6-11f0-400b-8f56-c605662fb849_G14, SystemTracker:diagnosticlogstesting-
[Link]:eh-diagnosticlogstest, Timestamp:2019-11-01T00:17:13, referenceId:
ac141738a9a54451b12b4cc31a10dedc_G14:"
}
Pasos siguientes
Para obtener el esquema de registro y otra información conceptual sobre los registros de diagnóstico de temas o
dominios, consulte Registros de diagnóstico.
Solución de problemas de Azure Event Grid
04/08/2020 • 8 minutes to read • Edit Online
En esta guía de solución de problemas se le proporciona una lista de códigos de error de Azure Event Grid,
mensajes de error, sus descripciones y acciones recomendadas que debe realizar cuando reciba estos errores.
[Link] El nombre del tema debe La longitud del nombre del Elija otro nombre de tema
400 tener entre 3 y 50 dominio debe estar entre 3 y que cumpla con los
caracteres. 50 caracteres. Solo se requisitos pertinentes.
permiten caracteres
alfanuméricos, dígitos y el
carácter "-" en el nombre del
tema. Además, el nombre no
debe comenzar con las
siguientes palabras
reservadas:
Microsoft
EventGrid
Sistema
[Link] El nombre del dominio debe La longitud del nombre del Elija otro nombre de dominio
400 tener entre 3 y 50 dominio debe estar entre 3 y que cumpla con los
caracteres. 50 caracteres. Solo se requisitos pertinentes.
permiten caracteres
alfanuméricos, dígitos y el
carácter "-" en el nombre del
tema. Además, el nombre no
debe comenzar con las
siguientes palabras
reservadas:
Microsoft
EventGrid
Sistema
[Link] Ya existe un tema con el El nombre del tema Elija otro nombre para el
409 nombre especificado. Elija personalizado debe ser único tema.
otro nombre para el tema. en una única región de
Azure con el fin de garantizar
una operación de publicación
correcta. Se puede usar el
mismo nombre en distintas
regiones de Azure.
[Link] Ya existe un dominio con el El nombre del dominio Elija otro nombre para el
409 nombre especificado. Elija personalizado debe ser único dominio.
otro nombre de dominio. en una única región de
Azure con el fin de garantizar
una operación de publicación
correcta. Se puede usar el
mismo nombre en distintas
regiones de Azure.
Pasos siguientes
Si necesita más ayuda, publique su problema en el foro de Stack Overflow o abra una incidencia de soporte técnico.
Solución de problemas de conectividad - Azure
Event Grid
04/08/2020 • 10 minutes to read • Edit Online
Hay varias razones por las que las aplicaciones cliente no pueden conectarse a un tema o dominio de Event Grid.
Los problemas de conectividad que experimenta pueden ser permanentes o transitorios. Si el problema sucede
todo el tiempo (permanente), puede que desee comprobar la configuración del firewall de la organización, la
configuración del firewall de IP, las etiquetas de servicio, los puntos de conexión privados, etc. En el caso de
problemas transitorios, la ejecución de comandos para comprobar los paquetes descartados y la obtención de
seguimientos de red puede ayudar a solucionar los problemas.
En este artículo se proporcionan consejos sobre cómo solucionar problemas de conectividad con Azure Event
Grid.
P ROTO C O LO P UERTO S
HTTPS 443
En Linux:
Compruebe que se permite la etiqueta de servicio AzureEventGrid en los grupos de seguridad de red
Si la aplicación se ejecuta dentro de una subred y hay un grupo de seguridad de red asociado, confirme si se
permite saliente de Internet o la etiqueta de servicio AzureEventGrid. Consulte Etiquetas de servicio
Compruebe la configuración del firewall de IP para su tema o dominio
Compruebe que el firewall de IP del tema o dominio EventGrid no bloquea la dirección IP pública de la máquina
en la que se ejecuta la aplicación.
De forma predeterminada, los temas o dominios de Event Grid son accesibles desde Internet, siempre que la
solicitud venga con una autenticación y una autorización válidas. Con el firewall de IP, puede restringirlo aún más
a solo un conjunto de direcciones o intervalos de direcciones IPv4 en notación CIDR (Enrutamiento de
interdominios sin clases).
Las reglas de firewall de IP se aplican en el nivel de tema o dominio de Event Grid. Por lo tanto, las reglas se
aplican a todas las conexiones de clientes que usan cualquier protocolo admitido. Cualquier intento de conexión
desde una dirección IP que no coincida con una regla IP admitida en el tema o dominio de Event Grid se rechaza
como prohibido. La respuesta no menciona la regla IP.
Para obtener más información, consulte Configuración de reglas de firewall de IP para un tema o dominio de
Azure Event Grid.
Busque las direcciones IP bloqueadas por el firewall de IP
Habilite los registros de diagnóstico para el tema o dominio de Event Grid Habilitar los registros de diagnóstico.
Verá la dirección IP para la conexión que se deniega.
{
"time": "2019-11-01T00:17:13.4389048Z",
"resourceId": "/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID/RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-
NAME/PROVIDERS/[Link]/TOPICS/SAMPLE-TOPIC-NAME",
"category": "PublishFailures",
"operationName": "Post",
"message": "inputEventsCount=null, requestUri=[Link]
[Link]/api/events, publisherInfo=PublisherInfo(category=User, inputSchema=EventGridEvent,
armResourceId=/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID/RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-
NAME/PROVIDERS/[Link]/TOPICS/SAMPLE-TOPIC-NAME), httpStatusCode=Forbidden,
errorType=ClientIPRejected, errorMessage=Publishing to SAMPLE-TOPIC-NAME.{region}-
{suffix}.[Link] by client {clientIp} is rejected due to IpAddress filtering rules."
}
Compruebe si se puede obtener acceso al tema o dominio EventGrid con solo un punto de conexión privado
Si el tema o dominio de Event Grid está configurado para ser accesible únicamente a través de un punto de
conexión privado, confirme que la aplicación cliente obtiene acceso al tema o dominio a través del punto de
conexión privado. Para confirmarlo, compruebe si la aplicación cliente se ejecuta dentro de una subred y hay un
punto de conexión privado para el tema o dominio de Event Grid en esa subred.
El servicio Azure Private Link permite el acceso a Azure Event Grid a través de un punto de conexión privado
en la red virtual. Un punto de conexión privado es una interfaz de red que le conecta de forma privada y segura a
un servicio con la tecnología de Azure Private Link. El punto de conexión privado usa una dirección IP privada de
la red virtual para incorporar el servicio de manera eficaz a su red virtual. Todo el tráfico dirigido al servicio se
puede enrutar mediante el punto de conexión privado, por lo que no se necesita ninguna puerta de enlace,
dispositivos NAT, conexiones de ExpressRoute o VPN ni direcciones IP públicas. El tráfico entre la red virtual y el
servicio atraviesa la red troncal de Microsoft, eliminando la exposición a la red pública de Internet. Puede
conectarse a una instancia de un recurso de Azure, lo que le otorga el nivel más alto de granularidad en el control
de acceso.
Para obtener más información, consulte Configuración de puntos de conexión privados.
Puede usar comandos equivalentes si utiliza otras herramientas como tcpping [Link].
Realice un seguimiento de red si los pasos anteriores no ayudan y analícelo con herramientas como Wireshark. Si
lo necesita, póngase en contacto con el soporte técnico de Microsoft.
Actualizaciones o reinicios del servicio
Pueden producirse problemas de conectividad transitorios debido a actualizaciones y reinicios del servicio back-
end. Cuando se producen, es posible que vea los síntomas siguientes:
Puede haber una caída en la llegada de mensajes o solicitudes entrantes.
El archivo de registro puede contener mensajes de error.
Puede que las aplicaciones se desconecten del servicio durante unos segundos.
Puede que las solicitudes se limiten momentáneamente.
La detección de estos errores transitorios, la interrupción y el posterior reintento de la llamada garantizará que el
código sea resistente a estos problemas transitorios.
Pasos siguientes
Si necesita más ayuda, publique su problema en el foro de Stack Overflow o abra una incidencia de soporte
técnico.
Solución de problemas de validación de suscripciones
de Azure Event Grid
04/08/2020 • 3 minutes to read • Edit Online
En este artículo se proporciona información sobre la solución de problemas de validaciones de las suscripciones a
eventos.
IMPORTANT
Para más información sobre la validación de los puntos de conexión para webhooks, consulte Entrega de eventos de
webhook.
{
"validationResponse": "512d38b6-c7b8-40c8-89fe-f46f9e9622b6"
}
Para obtener más información sobre la validación de eventos de Event Grid para webhooks, consulte Validación de
puntos de conexión con eventos de Event Grid.
Use el método HTTP OPTIONS para la validación con eventos de nube. Para más información sobre la validación
de eventos de nube para webhooks, consulte Validación de puntos de conexión con eventos de nube.
Pasos siguientes
Si necesita más ayuda, publique su problema en el foro de Stack Overflow o abra una incidencia de soporte
técnico.
Supervisar la entrega de mensajes de Event Grid
04/08/2020 • 6 minutes to read • Edit Online
En este artículo se describe cómo usar el portal para ver las métricas de temas y suscripciones de Event Grid, y
cómo crear alertas en ellas.
Métricas
El portal muestra las métricas para el estado de la entrega de mensajes de eventos.
En el caso de los temas, estas son algunas de las métricas:
Publicación correcta : el evento se envió correctamente al tema y se procesó con una respuesta 2xx.
Error al publicar : el evento se envió al tema, pero se rechazó con un código de error.
Sin coincidencia : el evento se publicó correctamente en el tema, pero no coincide con ninguna suscripción
a eventos. Se descartó el evento.
En el caso de las suscripciones, estas son algunas de las métricas:
Entrega realizada : el evento se entregó correctamente al punto de conexión de la suscripción y se
recibió una respuesta 2xx.
Entrega no realizada : Cada vez que el servicio intenta entregar y el controlador de eventos no
devuelve un código de error 2xx, se incrementa el contador de error de entrega . Si intentamos entregar
el mismo evento varias veces y se produce un error, se incrementa el contador de error de entrega por
cada error.
Eventos expirados : no se entregó el evento y se enviaron todos los reintentos. Se descartó el evento.
Eventos coincidentes : la suscripción a eventos coincide con el evento del tema.
NOTE
Para obtener la lista completa de las métricas, consulte Métricas compatibles con Azure Event Grid.
4. Vea las métricas del tema de evento personalizado en la página de Temas de Event Grid . En la imagen
siguiente, se minimiza la sección de Essentials que muestra el grupo de recursos, la suscripción, etc.
Puede crear gráficos con métricas compatibles mediante la pestaña de Métricas de la página de Temas de
Event Grid .
Para obtener más información sobre las métricas, consulte Métricas en Azure Monitor.
Por ejemplo, vea el gráfico de métricas para la métrica de Eventos publicados .
También puede buscar Suscripciones de Event Grid en la barra de búsqueda de Azure Portal,
seleccionar Tipo de temas , Suscripción y Ubicación para ver una suscripción de eventos.
Para los temas personalizados, seleccione Temas de Event Grid como Tipo de temas . Para los temas
del sistema, seleccione el tipo de recurso de Azure, por ejemplo Cuentas de almacenamiento (Blob,
GPv2) .
3. Vea las métricas de la suscripción en la Página principal de la suscripción en un gráfico. Puede ver las
métricas de General , Error , Latencia y Mensajes no enviados durante la hora, 6 horas, 12 horas, 1
día, 7 días o 30 días anteriores.
.
4. Vea las métricas de tema de sistema en la página de Temas del sistema de Event Grid . En la imagen
siguiente, se minimiza la sección de Essentials que muestra el grupo de recursos, la suscripción, etc.
Puede crear gráficos con métricas compatibles mediante la pestaña de Métricas de la página de Temas de
Event Grid .
Para obtener más información sobre las métricas, consulte Métricas en Azure Monitor.
Pasos siguientes
Vea los artículos siguientes:
Para obtener información sobre cómo crear alertas de métricas y operaciones de registro de actividad,
consulte Establecer alertas.
Para obtener información acerca de los reintentos y las entregas de eventos, consulte Entrega y reintento de
entrega de mensajes de Event Grid.
Establecimiento de alertas en métricas y registros de
actividad de Azure Event Grid
04/08/2020 • 6 minutes to read • Edit Online
En este artículo se describe cómo crear alertas en métricas y operaciones de registro de actividad de Azure Event
Grid. Puede crear alertas tanto en las métricas de publicación como de entrega para los recursos de Azure Event
Grid (temas y dominios). En los temas del sistema, cree alertas con la página Métricas .
2. En la página Crear regla de aler ta , compruebe que se ha seleccionado el tema para el recurso. A
continuación, haga clic en Seleccionar condición .
3. En la página Configurar lógica de señal , siga estos pasos:
a. Seleccione una métrica o una entrada del registro de actividad. En este ejemplo, se selecciona
Eventos en la cola de mensajes fallidos .
b. Seleccione las dimensiones (opcional).
NOTE
Puede seleccionar el botón + para EventSubscriptionName si desea especificar un nombre de suscripción
de evento para filtrar los eventos.
Pasos siguientes
Para obtener información acerca de los reintentos y las entregas de eventos, consulte Entrega y reintento de
entrega de mensajes de Event Grid.
Para obtener una introducción a Event Grid, vea Acerca de Event Grid.
Para comenzar a usar rápidamente Event Grid, vea Creación y enrutamiento de eventos personalizados con
Azure Event Grid.
Cuotas y límites de Azure Event Grid
04/08/2020 • 2 minutes to read • Edit Online
En este artículo se enumeran las cuotas y los límites de Azure Event Grid.
Cuotas y límites
Los límites siguientes se aplican a temas del sistema y temas personalizados de Azure Event Grid, no a dominios de
eventos.
RESO URC E L ÍM IT E
Velocidad de publicación de un tema personalizado (entrada) 5000 eventos por segundo y tema
Tasa de publicación para un dominio de eventos (entrada) 5000 eventos por segundo
Pasos siguientes
Consulte Suscripción de Azure y límites de servicio, cuotas y restricciones para obtener las cuotas y los límites de
todos los servicios de Azure.
Esquema de suscripción de Event Grid
04/08/2020 • 3 minutes to read • Edit Online
Para crear una suscripción de Event Grid, se envía una solicitud a la operación de suscripción Crear
evento. Utilice el siguiente formato:
PUT /subscriptions/{subscription-id}/resourceGroups/{group-name}/providers/{resource-
provider}/{resource-type}/{resource-name}/[Link]/eventSubscriptions/{event-type-
definitions}?api-version=2018-01-01
Por ejemplo, con el fin de crear una suscripción de eventos para una cuenta de almacenamiento
denominada " examplestorage " en un grupo de recursos llamado examplegroup , utilice el formato
siguiente:
PUT /subscriptions/{subscription-
id}/resourceGroups/examplegroup/providers/[Link]/storageaccounts/examplestorage/Microsoft.
EventGrid/eventSubscriptions/{event-type-definitions}?api-version=2018-01-01
El nombre de la suscripción de eventos debe tener entre 3 y 64 caracteres de longitud y solo puede
contener los siguientes caracteres: a-z, A-z, 0-9, y "-". En el artículo se describen las propiedades y el
esquema del cuerpo de la solicitud.
Objeto de destino
P RO P IEDA D T IP O DESC RIP C IÓ N
Objeto de filtro
P RO P IEDA D T IP O DESC RIP C IÓ N
P RO P IEDA D T IP O DESC RIP C IÓ N
Pasos siguientes
Para ver una introducción a Event Grid, consulte el artículo acerca de qué es Event Grid.
SDK de Event Grid para administración y publicación
04/08/2020 • 2 minutes to read • Edit Online
Event Grid proporciona SDK que permiten administrar los recursos y exponer eventos mediante programación.
SDK de administración
Los SDK de administración permiten crear, actualizar y eliminar suscripciones y temas de Event Grid. En la
actualidad, están disponibles los siguientes SDK:
.NET
Go
Java
Node
Python
Ruby
Pasos siguientes
Para obtener aplicaciones de ejemplo, consulte Ejemplos de código de Event Grid.
Para ver una introducción a Event Grid, consulte el artículo acerca de qué es Event Grid.
Para consultar los comandos de Event Grid en la CLI de Azure, vea CLI de Azure.
Para consultar los comandos de Event Grid en PowerShell, vea PowerShell.