Compartir vía


Publicación de eventos en temas personalizados de Azure Event Grid mediante claves de acceso

En este artículo se describe cómo publicar un evento en un tema personalizado mediante una clave de acceso. Muestra el formato de los datos de publicación y eventos. El Acuerdo de Nivel de Servicio (SLA) solo se aplica a las publicaciones que coinciden con el formato esperado.

Nota:

La autenticación de Microsoft Entra proporciona una compatibilidad de autenticación superior a la que ofrece la autenticación con claves de acceso o tokens de firma de acceso compartido (SAS). Con la autenticación de Microsoft Entra, la identidad se valida con el proveedor de identidades de Microsoft Entra. Si usa la autenticación de Microsoft Entra, como desarrollador, no tiene que controlar las claves del código. También se beneficia de todas las características de seguridad integradas en la plataforma de identidad de Microsoft, como el acceso condicional, que puede ayudarle a mejorar la postura de seguridad de la aplicación. Para más información, consulte el artículo sobre la autenticación de clientes de publicación mediante Microsoft Entra ID.

Punto de conexión

Al enviar el método HTTP POST a un tema personalizado, use el formato del 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 punto de conexión de un tema personalizado con la CLI de Azure, use:

Puede encontrar el punto de conexión del tema en la pestaña Información general de la página Tema de Event Grid en Azure Portal.

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

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 con la CLI de Azure, use:

Para obtener la clave de acceso del tema personalizado, seleccione pestaña Claves de acceso en la página Tema d Event Grid en Azure Portal.

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

Datos de evento

Para los temas personalizados, los datos de nivel superior contienen los mismos campos que los eventos estándar definidos por los recursos. Una de esas propiedades es una propiedad data que contiene propiedades únicas del tema personalizado. Como publicador de eventos, debe determinar las propiedades del objeto de datos. Este es el esquema:

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

Para obtener una descripción de estas propiedades, vea Esquema de eventos de Azure Event Grid. Cuando un cliente envía eventos a un tema de Event Grid, la matriz puede tener un tamaño total de hasta 1 MB. El tamaño máximo permitido para un evento es también de 1 MB. Los eventos de más de 64 KB se cobran en incrementos de 64 KB. Cuando un cliente recibe eventos en un lote, el número máximo permitido de eventos es de 5000 por lote.

Por ejemplo, un esquema de datos de evento válido es:

[{
  "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 del 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.

Respuesta

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

Resultado Response
Correcto 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

Si hay errores, el cuerpo del mensaje tiene el formato siguiente:

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