Distribución de los eventos adecuados en los lugares adecuados con Dominios de eventos

Publicado el 31 octubre, 2018

Program Manager, Event Grid

A medida que nuestra comunidad se expande en torno a Event Grid, muchos de los usuarios han comenzado a explorar los límites de la complejidad y la escala que se puede alcanzar. Algunas de las arquitecturas de sistemas que se han construido con base en la plataforma son realmente asombrosas.

Con el fin de simplificar los procedimientos de algunos de estos escenarios, hemos dedicado gran parte de los últimos meses a generar dos características que, llenos de orgullo, presentamos hoy: los filtros avanzados y Dominios de eventos, una plataforma administrada para la publicación de eventos que lleguen a todos sus clientes. Además, hemos estado trabajando para mejorar la experiencia de los desarrolladores y hacer que Event Grid llegue a todas las regiones de Azure Government.

Dominios de eventos

Empiece a generar sus propios eventos para Event Grid con Dominios de eventos, administrando el flujo de eventos personalizados a sus diferentes organizaciones, clientes o aplicaciones empresariales. Un Dominio de eventos es básicamente una herramienta de administración para grandes volúmenes de Temas de Event Grid relacionados con la misma aplicación, un artefacto de nivel superior que puede contener miles de temas. Con un Dominio conseguirá un control pormenorizado sobre la autorización y la autenticación en cada tema a través de Azure Active Directory, gracias a lo cual podrá decidir fácilmente cuáles de sus inquilinos o clientes tiene acceso para suscribirse a qué temas. El Dominio de eventos también controla la creación de particiones automáticamente, lo que significa que ya no tiene que publicar los eventos en cada tema de forma individual, sino que puede publicar todos los eventos en el punto de conexión del Dominio y Event Grid se ocupa de garantizar que cada evento se envíe al tema adecuado.

Esta es una característica exclusiva de Event Grid que posibilita nuevos escenarios para usted y sus socios para ofrecer sus propios eventos para sus clientes finales.

Con Dominios de evento, utilizamos la arquitectura subyacente que atiende Azure, como Blob Storage o IoT Hub, para publicar eventos y ponerlos a su disposición para que los utilice. Esto implica que ahora puede utilizar un único Dominio de eventos para abordar la publicación de eventos para todos los clientes finales, o en una organización compleja con servicios independientes.

Es probable que un ejemplo nos ayude a explicar mejor el funcionamiento de Dominio de evento. Digamos que es usted el gerente de Contoso Construction Machinery, una empresa dedicada a la fabricación de tractores, equipos de excavaciones y otra maquinaria pesada. Entre las tareas de la empresa se incluye el envío de información en tiempo real a los clientes en relación con el mantenimiento de los equipos, el estado de los sistemas y las actualizaciones de los contratos. Todo llega a diferentes puntos de conexión, entre los que están su aplicación, los puntos de conexión de los clientes y otras infraestructuras que estos han configurado.

Los Dominios de eventos le permiten modelar Contoso Construction Machinery como una única entidad de creación de eventos. Cada uno de sus clientes está representado como un Tema dentro del Dominio, y la autenticación y la autorización se controlan mediante Azure Active Directory, así que no tiene que preocuparse por ello. Los clientes pueden suscribirse de manera individualizada a su Tema y recibir los eventos que se distribuyen en ellos, pero AAD y Dominio de eventos no les permiten acceder al Tema de otro inquilino.

También pone a su disposición un único punto de conexión en el que puede publicar los eventos de todos sus clientes, y Event Grid se ocupará de que cada Tema reciba solo los eventos dirigidos a su inquilino particular.

Representación del Dominio de eventos de Contoso Construction Machinery

En un mundo en que las arquitecturas de aplicación están cambiando cada vez más a modelos de programación basados en eventos, aumenta la importancia de disponer de un sistema compatible con el envío de información a puntos de conexión HTTP, aplicaciones y servicios en la nube. Dominios de eventos se ocupa de la creación de eventos para que usted solo tenga que preocuparse de decidir cuáles de ellos quiere que estén disponibles para sus clientes.

Use Dominios de eventos para:

  • Administrar arquitecturas de eventos multiinquilino a escala.
  • Administrar la autenticación y autorización.
  • Crear particiones de los temas sin tener que ocuparse de ellos de forma individual.
  • Evitar la publicación individualizada en cada uno de los puntos de conexión de los temas.

Obtenga más información sobre Dominios de evento en nuestra documentación, y empiece a familiarizarse con esta característica con este ejemplo.

Filtros avanzados en Event Grid

Para complementar las nuevas funciones que aporta Dominios de eventos, nos complace anunciar que Event Grid presenta desde hoy la posibilidad de utilizar varios tipos nuevos de filtros avanzados. Estos nuevos filtros permitirán el uso de nuevos tipos de filtrado en la red mediante, por ejemplo, filtros numéricos, de cadena y booleanos.

Con esta actualización, ponemos a su disposición varios operadores para cada tipo de datos y aumentamos en gran medida la cantidad de campos sobre los que podrá filtrar, con lo que tendrá un mayor control sobre qué eventos se enrutan a qué lugares, y se asegurará de que solo lleguen los requeridos a los servicios de proceso que los administran. Los filtros avanzados permiten filtrar por propiedades de sobre (como DataVersion, Id y Topic), así como la primera capa de la carga útil de datos (por ejemplo, data.key1). Se agregan los operadores siguientes para cada tipo de datos:

Números

  • NumberLessThan
  • NumberLessThanOrEquals
  • NumberGreaterThan
  • NumberGreaterThanOrEquals
  • NumberIn: el valor de data.key equivale a un valor del conjunto [0, 2.08, 3.14]
  • NumberNotIn: el valor de data.key no está en el conjunto [1, 11, 112, 1124]

Cadenas

  • StringContains: el valor de data.key contiene "the"
  • StringIn: el valor de data.key equivale a un valor del conjunto ["small", "brown", "fox"]
  • StringNotIn : el valor de data.key equivale a un valor del conjunto ["jumped", "over", "the"]
  • StringBeginsWith: el valor da data.key empieza por "lazy"
  • StringEndsWith: el valor de data.key finaliza por "dog"

Booleano

  • BoolEquals

Ya no tendrá que agregar scripts adicionales para filtrar más sus eventos antes de ejecutar su lógica de negocios. Se pueden hacer eficaces combinaciones de filtros en conexión mediante la combinación de los diferentes filtros nuevos, lo que permite a los controladores de eventos tratar solo con los datos que realmente les interesan.

Obtenga más información sobre las funciones de filtrado avanzado de Event Grid en nuestra documentación.

Disponibilidad de regiones de Azure Government

A partir del 1 de noviembre de 2018, Event Grid está disponible en las regiones de US Gov Arizona, Texas y Virginia. Todas las características de Event Grid (como Temas personalizados, los Dominios, el filtrado y los mensajes fallidos) estarán disponibles desde el principio. Sin embargo, los eventos integrados que proceden de servicios de Azure de primera entidad, como Azure Storage, no estarán disponibles de inmediato. Estos orígenes de eventos integrados ya están en proceso para estas regiones, y se irán agregando en el trascurso de los próximos meses, así que permanezca atento. Esto quiere decir que Event Grid estará inicialmente en versión preliminar en estas regiones de US Gov hasta que hayamos agregado el resto de funcionalidades al servicio. Si tiene preguntas o comentarios relativos a algún publicador de eventos determinado, no dude en ponerse en contacto con el equipo.

Mejoras de la experiencia de desarrollo

Finalmente, trabajamos constantemente para hacer pequeños ajustes y actualizaciones para que se encuentre más cómodo en su proceso de pruebas y desarrollo. Con ese fin, hemos actualizado algunos de nuestros SDK, hemos agregado una característica sobre la vigencia de las suscripciones de eventos y hemos incorporado la posibilidad de configurar en la IU del Portal los mensajes fallidos y las directivas de reintento.

Mensajes fallidos y directivas de reintento en Azure Portal

Ahora puede hacer clic en la pestaña "Características adicionales" de la parte superior de la página en cualquier momento cuando esté creando una Suscripción de eventos. Desde esa página podrá acceder a la configuración de los mensajes fallidos y las directivas de reintentos, los filtros y las nuevas funciones que agreguemos. Ahora hay también un modo de Editor avanzado en el que puede ver la representación ARM de su suscripción para usarla en una Plantilla ARM, así como configurar cualquier característica nueva que aún no esté disponible en el portal.

Período de vida de la suscripción de eventos

El hecho de que los recursos sean efímero puede resultar útil por varias razones. Se preserva la higiene de las pruebas eliminando los recursos antiguos, se mejora la seguridad al no permitir que un recurso se quede publicado para siempre y se mantienen las configuraciones actualizadas al garantizar que solo los recursos suscritos proactivamente a los eventos sigan recibiéndolos. Con la característica de período de vida de los eventos, ahora puede configurar una vigencia para una suscripción de eventos en el momento de su creación para que, una vez transcurrido este período, esta se elimine.

Actualizaciones de SDK

Hemos configurado los SDK de .NET, Java y Go para que el uso de eventos nativos de Azure sea aún más sencillo. Gracias a la última versión de cada uno de ellos, el SDK conoce ahora todos los tipos de eventos disponibles que Azure publica. Esto significa que puede usar el EventGridSubscriber de Event Grid para deserializar eventos directamente para todos los tipos de eventos conocidos y comenzar a escribir código en el contenido del evento en lugar de tener que abordar primero la deserialización manual de JSON en diferentes clases de tipos de eventos. Consulte los diferentes SDK para mejorar su experiencia de administración de los recursos y eventos de Event Grid.