Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Event Grid admite arquitecturas orientadas a eventos mediante el enrutamiento de eventos desde los orígenes hasta los controladores de eventos. Este artículo te muestra cómo configurar colas y temas de Azure Service Bus como gestores de eventos para eventos de Event Grid. Configuras la cola o tema para procesar eventos en aplicaciones empresariales usando el portal de Azure, CLI de Azure, Azure PowerShell o la API REST.
Prerequisites
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
- Un tema de Grid de Eventos, tema de sistema, tema personalizado o tema de socio al que suscribirse. Para más información, consulte Tema de Crear una Cuadrícula de Eventos o un dominio.
- Un espacio de nombres de Service Bus con una cola o un tema para recibir eventos. Para más información, vea Creación de un espacio de nombres de Service Bus y una cola mediante Azure Portal.
- Permiso para crear una suscripción a un evento sobre el tema de origen y enviar mensajes a la cola o tema del Service Bus de destino.
Colas de Service Bus
Envíe los eventos de Event Grid directamente a las colas de Service Bus para el almacenamiento en búfer o para escenarios de comando y control en aplicaciones empresariales.
Configura una cola de Service Bus utilizando el portal de Azure
En el portal de Azure, al crear una suscripción a eventos, selecciona Service Bus Queue como tipo de punto de conexión y luego selecciona Select an endpoint para elegir una cola de Service Bus.
Nota:
Si usa una cola con sesiones habilitadas o una suscripción a un tema como destino, establezca la propiedad de sesión del evento mediante una propiedad de entrega con el nombre de encabezado SessionId.
Configura una cola de Service Bus usando la CLI de Azure
Use el comando az eventgrid event-subscription create con --endpoint-type establecido en servicebusqueue y --endpoint establecido en /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Este es un ejemplo:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebusqueue \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1
También puede usar el comando az eventgrid topic event-subscription para temas personalizados, el comando az eventgrid system-topic event-subscription para temas del sistema y el comando az eventgrid partner topic event-subscription create para temas de asociados.
Configura una cola de Service Bus usando Azure PowerShell
Use el comando New-AzEventGridSubscription con -EndpointType establecido en servicebusqueue y -Endpoint establecido en /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/queues/<QUEUE NAME>. Este es un ejemplo:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebusqueue `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/queues/queue1 `
-EventSubscriptionName EventSubscription1
También puede usar el comando New-AzEventGridSystemTopicEventSubscription para temas del sistema y el comando New-AzEventGridPartnerTopicEventSubscription para temas de asociados.
Temas de Service Bus
Enrutar los eventos en Event Grid directamente a temas de Service Bus para escenarios de mensajes de mando y control.
Configura un tema de Service Bus utilizando el portal de Azure
En el portal de Azure, al crear una suscripción a eventos, selecciona Service Bus Topic como tipo de punto de conexión y, a continuación, selecciona Select an endpoint para elegir un tema de Service Bus.
Configura un tema de Service Bus usando la CLI de Azure
Use el comando az eventgrid event-subscription create con --endpoint-type establecido en servicebustopic y --endpoint establecido en /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Este es un ejemplo:
az eventgrid event-subscription create \
--name <my-event-subscription> \
--source-resource-id /subscriptions/{SubID}/resourceGroups/{RG}/providers/Microsoft.EventGrid/topics/topic1 \
--endpoint-type servicebustopic \
--endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1
También puede usar el comando az eventgrid topic event-subscription para temas personalizados, el comando az eventgrid system-topic event-subscription para temas del sistema y el comando az eventgrid partner topic event-subscription create para temas de asociados.
Configura un tema de Service Bus usando Azure PowerShell
Use el comando New-AzEventGridSubscription con -EndpointType establecido en servicebustopic y -Endpoint establecido en /subscriptions/{AZURE SUBSCRIPTION}/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<NAMESPACE NAME>/topics/<TOPIC NAME>. Este es un ejemplo:
New-AzEventGridSubscription -ResourceGroup MyResourceGroup `
-TopicName Topic1 `
-EndpointType servicebustopic `
-Endpoint /subscriptions/{SubID}/resourceGroups/TestRG/providers/Microsoft.ServiceBus/namespaces/ns1/topics/topic1 `
-EventSubscriptionName EventSubscription1
También puede usar el comando New-AzEventGridSystemTopicEventSubscription para temas del sistema y el comando New-AzEventGridPartnerTopicEventSubscription para temas de asociados.
Encabezados de mensaje
Estas son las propiedades que recibe en los encabezados de mensaje:
| Nombre de propiedad | Descripción |
|---|---|
| aeg-subscription-name | Nombre de la suscripción al evento. |
| aeg-delivery-count | Número de intentos realizados para el evento. |
| aeg-event-type | Tipo de evento. Puede ser uno de los siguientes valores:
|
| aeg-metadata-version | Versión de metadatos del evento. Esta propiedad representa la versión de los metadatos en el esquema de eventos de Event Grid y la versión de la especificación en el esquema de eventos en la nube. |
| aeg-data-version | Versión de datos del evento. Esta propiedad representa la versión de los datos en el esquema de eventos de Event Grid y la no se aplica en el esquema de eventos en la nube. |
| aeg-output-event-id | Id. del evento de Event Grid. |
Cuando envías un evento a una cola o tema de Service Bus como un mensaje mediado, el messageid del mensaje mediado es un identificador interno del sistema.
El ID interno del sistema para el mensaje persiste durante la reentrega del evento, de modo que puedes evitar entregas duplicadas activando la detección de duplicados en la entidad Service Bus. Configure la duración de la detección de duplicados en la entidad de Service Bus como el tiempo de vida (TTL) del evento o la duración máxima de reintento, la que sea mayor.
Propiedades de entrega
Cuando usas suscripciones a eventos, puedes configurar cabeceras HTTP para incluirlas en eventos entregados. Esta capacidad permite configurar cabeceras personalizadas que el destino requiera. Puede establecer encabezados personalizados en los eventos entregados a colas y temas de Azure Service Bus.
Azure Service Bus soporta las siguientes propiedades de mensajes cuando envías mensajes individuales.
| Nombre de encabezado | Tipo de encabezado |
|---|---|
MessageId |
Dinámico |
PartitionKey |
Estático o dinámico |
SessionId |
Estático o dinámico |
CorrelationId |
Estático o dinámico |
Label |
Estático o dinámico |
ReplyTo |
Estático o dinámico |
ReplyToSessionId |
Estático o dinámico |
To |
Estático o dinámico |
ViaPartitionKey |
Estático o dinámico |
Nota:
- El valor predeterminado de
MessageIdes el identificador interno del evento de Event Grid. Puede invalidarlo. Por ejemplo, usedata.field. - Solo puede establecer
SessionIdoMessageId.
Para obtener más información, vea Propiedades de entrega personalizadas.
Ejemplos de REST (para PUT)
Cola de Service Bus
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Cola de Service Bus: entrega con identidad administrada
{
"properties": {
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusQueue",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/queues/<SERVICE BUS QUEUE NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Tema de Service Bus
{
"properties":
{
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Tema de Service Bus: entrega con identidad administrada
{
"properties":
{
"deliveryWithResourceIdentity":
{
"identity":
{
"type": "SystemAssigned"
},
"destination":
{
"endpointType": "ServiceBusTopic",
"properties":
{
"resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.ServiceBus/namespaces/<SERVICE BUS NAMESPACE NAME>/topics/<SERVICE BUS TOPIC NAME>"
}
}
},
"eventDeliverySchema": "EventGridSchema"
}
}
Nota:
Cuando se produce una conmutación por error de un espacio de nombres de Service Bus que tiene habilitada la recuperación ante desastres geográfica, el espacio de nombres secundario no emite eventos a Event Grid. Debes añadir manualmente la suscripción de Event Grid para el espacio de nombres secundario.
Contenido relacionado
Para una lista de manejadores de eventos soportados, véase el artículo sobre Manejadores de eventos .