Contexts

Los contextos son una división lógica que funciona como marcador en la URL de publicación de eventos. Con ellos, los tópicos pueden reutilizarse en distintos escenarios.

El servidor externo de autorización se define por contexto. Esto significa que cuando se disponibilizan dos contextos diferentes para un tópico, es posible utilizar dos endpoints de autorización distintos para el mismo tópico.

La pantalla Contexts lista todos los contextos registrados en su Events Hub:

contexts

Cómo funciona

Para entender cómo funcionan los contextos, es importante entender cómo Events Hub coordina la publicación y suscripción a eventos:

  • Los publicadores de eventos (publishers) envían solicitudes a Events Hub, que las distribuye a todos los suscriptores (subscribers) registrados.

  • Para asegurar que los eventos del publicador se entreguen a los suscriptores correctos, Events Hub utiliza tópicos.

  • Cada tópico puede tener varios suscriptores.

  • Cuando un publicador envía un evento a un tópico específico, Events Hub distribuye ese evento a todos los suscriptores vinculados al tópico.

URL de publicación de eventos

Para publicar eventos, es necesario crear una ruta (URL) que sirva como canal de envío de eventos desde un publicador hasta el Events Hub.

Esta URL se compone de la URL base + context + handler + topic:

  1. URL base: es definida por el Events Hub. Incluye la dirección de la interfaz de cada cliente + event-receiver + un código único (hash).

  2. Contexto, handler y tópico: son creados por usted. Le ayudan a organizar y gestionar los diferentes canales de publicación.

    • El tópico es el nivel más específico.

    • Los handlers son los agregadores de tópicos y sirven como una capa lógica de agrupamiento.

    • Los contextos añaden otro nivel de agrupamiento, lo que permite utilizar el mismo tópico en diferentes situaciones. Para habilitar un tópico para un publicador, es necesario activarlo en al menos un contexto.

Imagina que deseas crear un flujo de publicación de varios tipos de alerta y probarlo sin notificar a los suscriptores. Para hacerlo, puede:

  1. crear un handler llamado "Alerts" con el path /alerts;

  2. registrar tópicos agrupados en el handler. Por ejemplo: /latency para alertas de latencia y api-update para alertas de actualización de las APIs;

  3. crear un contexto de prueba (por ejemplo, testing) y habilitarlo para el tópico que deseas probar, evitando que los suscriptores reciban alertas.

    • Para registrar suscriptores en el contexto de prueba, debe vincularlos al tópico y habilitarlos solo para el contexto testing.

    • Si no registras ningún contexto, el Events Hub establece "Default" como predeterminado y no se agrega ningún marcador a la URL de publicación.
      Por lo tanto, las solicitudes para el tópico latency o api-update se enviarán a <url-base>/alerts/latency/ <url-base>/alerts/api-update y todos los suscriptores activos en él recibirán los eventos.

Teniendo en cuenta el ejemplo anterior, las URLs de publicación para el tópico latency serán:

  • Contexto Default: <url-base>/alerts/latency

  • Contexto Testing: <url-base>/testing/alerts/latency

La principal ventaja de utilizar diferentes contextos es que puede reutilizar las configuraciones de políticas de seguridad y de entrega definidas en el handler, sin necesidad de crear nuevos tópicos. Dado que los endpoints de autorización se definen por contexto, puede usar un mock de autorización para pruebas mientras mantienes inalterada la autorización del contexto predeterminado.

  • Los contextos son divisiones lógicas para facilitar la creación y mantenimiento de tópicos, permitiendo su reutilización en diferentes escenarios. No son entornos separados físicamente.

  • Esto significa que si utiliza el contexto "Default" para los eventos productivos y el contexto "Testing" para los eventos de prueba, puede controlar los publicadores, suscriptores y endpoints de autorización de cada contexto. Sin embargo, todos los eventos recibidos y distribuidos en Events Hub comparten la misma infraestructura.

  • Las pruebas que sobrecarguen la infraestructura, incluso en el contexto de prueba, pueden afectar a la recepción y distribución de eventos en los demás contextos.

Autorización

Los endpoints que validan a los publicadores se definen para cada contexto. Esto se realiza en la pantalla Authorizations, que contiene dos secciones: OAUTH y JWT. En ambas se muestran todos los contextos registrados en su Events Hub, indicando la URL de autorización que está definida para cada uno.

El uso de interceptores de seguridad es opcional. Sin embargo, si agrega políticas a su handler, debe configurar la URL de autorización vinculada al interceptor. Excepto por el "IP Filtering Validation", todos dependen de esta configuración para funcionar.

Vinculación de contextos

Los contextos se vinculan a los tópicos a través de la pestaña TOPICS al crear o editar handlers. Para publicar eventos, se relacionan los tópicos y sus contextos con los publicadores y suscriptores. Esto se hace de la siguiente manera:

  1. Publicadores: En el paso TOPICS durante el registro del publicador, seleccione los tópicos deseados. Verá los contextos disponibles para cada tópico.

    1. Elija en cuál el publicador tendrá permiso para publicar.

  2. Suscriptores: Al registrar un suscriptor, debe inscribirlo en los tópicos de los que recibirá eventos. Habilitando los contextos del tópico para él, solo recibirá eventos de los publicadores activos en ese contexto.

    1. En el registro del suscriptor, en el paso TOPICS, seleccione los tópicos deseados. Verá los contextos disponibles para cada tópico.

    2. Elija de cuál suscriptor recibirá eventos.

Creando contextos

Puedes crear hasta 5 contextos en Events Hub. El contexto "Default" es predeterminado y no se puede editar ni eliminar.

Cuando alcances el límite de contextos creados, el botón + se desactivará, impidiendo el registro. Si necesitas un nuevo contexto, deberás eliminar uno de los existentes.

Para crear un nuevo contexto, haz clic en el botón +. Completa los campos:

  • Name: nombre único identificador del contexto.

  • Path: ruta del contexto, que servirá como marcador de la URL de publicación.

  • Description: descripción opcional para el contexto.

Después de registrarlo, el contexto se mostrará en el paso TOPICS de la creación/edición de los handlers y se podrá habilitar para cualquier tópico.

contexts create

Overview de contextos

Al hacer clic en el nombre de un contexto, verás los tópicos vinculados a él. En esta pantalla, puedes:

  • buscar un tópico usando el campo Keywords. La búsqueda se realiza por nombre o descripción de los tópicos y nombre del handler;

  • editar el contexto con el botón EDIT CONTEXT. Esta opción permite editar el nombre, path, y la descripción del contexto;

  • ver detalles de un tema haciendo clic en el nombre en la columna Handler. Al hacerlo, serás dirigido a la pestaña TOPICS en la página de Handlers;

  • eliminar el contexto haciendo clic en el ícono icon delete.

Solo es posible eliminar contextos que no están asociados a ningún tópico. Si lo están, deberás deshabilitar el contexto en cada tópico para poder eliminarlo.
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]