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.
Encabezado
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.
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.
En Azure Portal, inicie Cloud Shell.
En Cloud Shell, ejecute los comandos desde Azure PowerShell o la CLI de Azure en la sesión de Bash o PowerShell.
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>"
}]
}
}
Contenido relacionado
- Para información sobre la supervisión de las entregas de eventos, consulte Supervisar la entrega de mensajes de Event Grid.
- Para más información sobre la clave de autenticación, vea Seguridad y autenticación de Event Grid.
- Para más información acerca de la creación de una suscripción de Azure Event Grid, consulte Esquema de suscripción de Event Grid.