Destinos de controladores de eventos en Event Grid en Kubernetes
Un controlador de eventos es cualquier sistema que expone un punto de conexión y es el destino de los eventos enviados por Event Grid. Un controlador de eventos que recibe un evento actúa sobre él y usa la carga del evento para ejecutar alguna lógica, lo que podría derivar en la aparición de nuevos eventos.
La manera de configurar Event Grid para enviar eventos a un destino es mediante la creación de una suscripción de eventos. Se puede realizar con la CLI de Azure, el SDK de administración o las llamadas HTTPS directas mediante la versión 2020-10-15-preview API.
En general, Event Grid en Kubernetes puede enviar eventos a cualquier destino mediante webhooks. Los webhooks son puntos de conexión HTTP(S) expuestos por un servicio o una carga de trabajo a los que Event Grid tiene acceso. El webhook puede ser una carga de trabajo hospedada en el mismo clúster, en el mismo espacio de red, en la nube, en el entorno local o en cualquier lugar al que Event Grid puede acceder.
Importante
Event Grid en Kubernetes con Azure Arc se encuentra actualmente en versión preliminar pública. Esta versión preliminar se ofrece sin Acuerdo de Nivel de Servicio y no se recomienda para cargas de trabajo de producción. Es posible que algunas características no sean compatibles o que tengan sus funcionalidades limitadas. Para más información, consulte Términos de uso complementarios de las Versiones Preliminares de Microsoft Azure.
Con webhooks, Event Grid admite los siguientes destinos hospedados en un clúster de Kubernetes:
- Azure App Service en Kubernetes con Azure Arc
- Azure Functions en Kubernetes con Azure Arc
- Azure Logic Apps en Kubernetes con Azure Arc
Además de los webhooks, Event Grid en Kubernetes puede enviar eventos a los siguientes destinos hospedados en Azure:
- Azure Event Grid con webhooks
- Azure Functions con webhooks solamente
- Azure Event Hubs con su identificador de recursos de Azure Resource Manager
- Temas o colas de Azure Service Bus con su identificador de recursos de Azure Resource Manager
- Cola de Azure Storage con su identificador de recursos de Azure Resource Manager
Paridad de características
Event Grid en Kubernetes ofrece un buen nivel de paridad de características mediante la compatibilidad de Azure Event Grid con las suscripciones de eventos. En la lista siguiente se enumeran las principales diferencias en la funcionalidad de suscripción de eventos. Además de tales diferencias, puede usar la versión de la API de REST 2020-10-15-preview de Azure Event Grid como referencia al administrar las suscripciones de eventos en Event Grid en Kubernetes.
- Use la versión de la API de REST 2020-10-15-preview.
- El desencadenador de Azure Event Grid para Azure Functions no es compatible. Puede usar un tipo de destino de webhook para entregar eventos a Azure Functions.
- No hay compatibilidad con la ubicación de mensajes fallidos. Eso significa que no puede usar
properties.deadLetterDestination
en la carga de la suscripción de eventos. - Las conexiones híbridas de Azure Relay como destino aún no son compatibles.
- Solo se admite el esquema CloudEvents. El valor de esquema admitido es "CloudEventSchemaV1_0". El esquema de eventos en la nube es extensible y se basa en estándares abiertos.
- Las etiquetas (properties.labels) no son aplicables a Event Grid en Kubernetes. Por lo tanto, no están disponibles.
- No se admite la entrega con un identidad de recurso. Por lo tanto, no se admiten todas las propiedades de la identidad de la suscripción de eventos.
- Todavía no se admite la validación del punto de conexión de destino.
Filtrado de eventos en suscripciones de eventos
El otro aspecto importante de la configuración de una suscripción de eventos es seleccionar los eventos que están diseñados para entregarse a un destino. Para más información, vea Filtrado de eventos.
Configuraciones de destino de ejemplo
A continuación, se encuentran algunas configuraciones de ejemplo básicas en función del destino previsto.
WebHook
Para publicar en un punto de conexión de webhook, establezca endpointType
en WebHook
y proporcione:
endpointUrl: la dirección URL del punto de conexión del webhook.
{ "properties": { "destination": { "endpointType": "WebHook", "properties": { "endpointUrl": "<your-webhook-endpoint>" } } } }
Azure Event Grid
Para publicar en un punto de conexión de nube de Azure Event Grid, establezca endpointType
en WebHook
y proporcione:
endpointUrl: dirección URL del tema de Azure Event Grid en la nube con el parámetro de versión de la API establecido en 2018-01-01 y
aeg-sas-key
establecido en la clave SAS codificada en la URL.{ "properties": { "destination": { "endpointType": "WebHook", "properties": { "endpointUrl": "<your-event-grid-cloud-topic-endpoint-url>?api-version=2018-01-01&aeg-sas-key=urlencoded(sas-key-value)" } } } }
Event Hubs
Para realizar la publicación en un Event Hubs configura endpointType
como eventHub
y proporciona:
resourceId: identificador de recurso del centro de eventos específico.
{ "properties": { "destination": { "endpointType": "eventHub", "properties": { "resourceId": "<Azure Resource ID of your event hub>" } } } }
Colas de Service Bus
Para realizar la publicación en una cola de Service Bus, configure endpointType
como serviceBusQueue
y proporcione:
resourceId: identificador de recurso de la cola de Service Bus específica.
{ "properties": { "destination": { "endpointType": "serviceBusQueue", "properties": { "resourceId": "<Azure Resource ID of your Service Bus queue>" } } } }
Temas de Service Bus
Para realizar la publicación en un tema de Service Bus, configure endpointType
como serviceBusTopic
y proporcione:
resourceId: identificador de recurso del tema de Service Bus específico.
{ "properties": { "destination": { "endpointType": "serviceBusTopic", "properties": { "resourceId": "<Azure Resource ID of your Service Bus topic>" } } } }
Colas de almacenamiento
Para hacer la publicación en una cola de almacenamiento, configure endpointType
como storageQueue
y proporcione:
queueName: nombre de la cola de Azure Storage en la que va a realizar la publicación.
resourceID: identificador de recurso de Azure de la cuenta de almacenamiento que contiene la cola.
{ "properties": { "destination": { "endpointType": "storageQueue", "properties": { "queueName": "<your-storage-queue-name>", "resourceId": "<Azure Resource ID of your Storage account>" } } } }
Pasos siguientes
- Agregue la configuración de filtro a la suscripción de eventos para seleccionar los eventos que se van a entregar.
- Para obtener información sobre los esquemas admitidos por Event Grid en Azure Arc para Kubernetes, vea Event Grid en Kubernetes - Esquemas de eventos.