Publicar eventos en temas personalizados de Azure Event Grid usando claves de acceso

Un tema personalizado de Grid de Eventos es un punto final al que tus aplicaciones envían sus propios eventos, para que Grid de Eventos pueda enrutarlos a suscriptores interesados. Este artículo te muestra cómo publicar eventos en un tema personalizado usando claves de acceso, que autentican tus solicitudes sin necesidad de configurar Microsoft Entra ID. Obtienes el endpoint del tema y la clave de acceso, formateas una carga útil de evento, envías un evento de muestra y revisas la respuesta.

El Acuerdo de Nivel de Servicio (SLA) solo se aplica a publicaciones que coinciden con el formato esperado.

Prerequisites

Nota:

La autenticación Microsoft Entra ofrece un mejor soporte de autenticación que la autenticación por clave de acceso o la autenticación de token de firma de acceso compartida (SAS). Al usar la autenticación Microsoft Entra, el proveedor de identidad de Microsoft Entra valida la identidad, por lo que no manejas las claves en tu código. También te beneficias de funciones de seguridad integradas en la Plataforma de identidad de Microsoft, como el Acceso Condicional, que ayudan a mejorar la seguridad de tu aplicación. Para más información, consulte el artículo sobre la autenticación de clientes de publicación mediante Microsoft Entra ID.

Obtención del punto de conexión del tema

Para publicar eventos en un tema personalizado, envía una solicitud HTTP POST usando el siguiente formato URI: https://<topic-endpoint>?api-version=2018-01-01. Por ejemplo, un URI válido es: https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01. Para obtener el endpoint de un tema personalizado, utiliza el portal de Azure, CLI de Azure o Azure PowerShell.

Encuentra el punto final del tema en la pestaña Resumen de la página de Temas de la Cuadrícula de Eventos en el portal de Azure.

Captura de pantalla de la página del tema de Event Grid en Azure Portal con el punto de conexión del tema resaltado.

Obtención de la clave de acceso

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: xxxxxxxxxxxxxxxxxxxxxxx. Para obtener la clave de un tema personalizado, utiliza el portal de Azure, CLI de Azure o Azure PowerShell.

Para obtener la clave de acceso para el tema personalizado, selecciona la pestaña de claves de acceso en la página de Temas de la Cuadrícula de Eventos en el portal de Azure.

Captura de pantalla que muestra la pestaña Claves de acceso de la página del tema de Event Grid en Azure Portal.

Dar formato a la carga útil del evento

Formatea cada evento como un objeto JSON. Los campos de nivel superior son los mismos que los eventos estándar definidos por recurso, y la data propiedad contiene las propiedades únicas de tu tema personalizado. Como editor, defines el contenido del data objeto. Para una descripción de cada propiedad, véase Azure Event Grid event schema.

[
  {
    "id": string,
    "eventType": string,
    "subject": string,
    "eventTime": string-in-date-time-format,
    "data":{
      object-unique-to-each-publisher
    },
    "dataVersion": string
  }
]

Ten en cuenta estos límites de tamaño cuando construyas la carga útil:

  • El array de eventos puede tener un tamaño total de hasta 1 MB.
  • El tamaño máximo para un solo evento es de 1 MB. Los eventos de más de 64 KB conllevan cargos por bloques de 64 KB.
  • Un lote puede contener un máximo de 5.000 eventos.

El siguiente ejemplo muestra una carga útil de evento válida:

[{
  "id": "1807",
  "eventType": "recordInserted",
  "subject": "myapp/vehicles/motorcycles",
  "eventTime": "2017-08-10T21:03:07+00:00",
  "data": {
    "make": "Ducati",
    "model": "Monster"
  },
  "dataVersion": "1.0"
}]

Envío de un evento de ejemplo

En esta sección se muestra cómo enviar un evento de ejemplo al tema personalizado.

  1. En Azure Portal, inicie Cloud Shell.

  2. En Cloud Shell, ejecute los comandos desde Azure PowerShell o la CLI de Azure en la sesión de Bash o PowerShell.

    Captura de pantalla que muestra Cloud Shell en Azure Portal.

Revisión de la respuesta

Después de publicar en el endpoint del tema, recibes una respuesta. La respuesta es un código de respuesta HTTP estándar. Algunas respuestas comunes son:

Resultado Respuesta
Éxito 200 Ok
Los datos del evento tienen un formato incorrecto 400 - Solicitud incorrecta
Clave de acceso no válida 401 No autorizado
Punto de conexión incorrecto 404 No encontrado
La matriz o el evento superan los límites de tamaño 413 Carga demasiado grande

En caso de error, el cuerpo del mensaje utiliza el siguiente formato:

{
    "error": {
        "code": "<HTTP status code>",
        "message": "<description>",
        "details": [{
            "code": "<HTTP status code>",
            "message": "<description>"
    }]
  }
}