¿Cómo configuro y pruebo los Eventos en vivo de Canvas usando la entrega HTTPS?

Servicios de datos de Canvas ofrece dos opciones para la entrega de datos, cada una implementada para recibir el mismo conjunto de datos de Eventos en vivo de Canvas: terminal de HTTPS y fila AWS SQS. Tanto HTTPS como AWS SQS se pueden ejecutar simultáneamente.

Este artículo aborda cómo configurar y probar la entrega de HTTPS en los Eventos en vivo de Canvas. Obtenga más información acerca de la entrega de SQS.

Nota: Los datos de los eventos en vivo se procesan en la misma región que la instancia de Canvas de la que se emiten.

Información de configuración

Puede implementar la función de Google Cloud para recibir eventos de Canvas y almacenarlos en un sector de almacenamiento de Google Cloud.

Los siguientes pasos son necesarios para procesar los mensajes entrantes de los Eventos en vivo de Canvas a través del terminal HTTPS:

  1. Las cargas de JWT firmadas deben estar activadas
  2. El mensaje del evento, una vez recibido por la función de Google Cloud, se debe decodificar con RS256.  
  3. Una vez decodificada, la firma de JWT contendrá una propiedad "kid". Esta propiedad debe vincularse con uno de los valores "kid" recuperados de esta URL pública: https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
  4. Transforme la carga y almacene el evento resultante. En otras palabras, no almacene mensajes firmados y codificados por demasiado tiempo, porque los valores "kid" finalmente habrán caducado. AWS rota las claves una vez por mes el día 30. El "kid" más actual es el del medio.

Encabezados de los eventos

Además, hay tres tipos de encabezados cuando Canvas genera un evento:

  1. Encabezado de solicitud cuando se inicia en Canvas (asumiendo que el evento se generó basado en la solicitud). Los datos de la solicitud se ponen en un objeto de metadatos del evento (por ejemplo, método, identificación de la solicitud, URL de referencia, etc.).
  2. AWS agrega datos adicionales a un sobre del evento cuando lo pasa de un servicio a otro (por ejemplo, marca de tiempo cuando el evento se entregó a SQS).
  3. Encabezado estándar de JWT, estos datos se agregan al aprobar cada evento.

Diferencia entre HTTPS y AWS SQS

Los eventos entregados por el terminal HTTPS tienen unas pocas propiedades adicionales. Cuando los eventos entregados por AWS SQS se recopilan a través de una función lambda de AWS, hay una oportunidad de escribir los eventos en lotes, hasta 10 mensajes de eventos de una vez. Esto genera archivos que tienen hasta 10 mensajes de eventos, en comparación con los archivos para eventos entregados a través del terminal HTTPS, que resultará en un archivo por evento. En otras palabras, para el mismo conjunto de eventos, la carpeta para el terminal HTTPS tendrá 10 veces más archivos que la carpeta que contenga los datos recuperados a través de la fila SQS.