Comment configurer et tester les événements en direct de Canvas à l'aide de la livraison HTTPS ?

Canvas Data Services propose deux choix de livraison de données, chacun déployé pour recevoir le même ensemble d'événements en direct de Canvas : point final HTTPS et file d'attente AWS SQS. HTTPS et AWS SQS peuvent être exécutés simultanément.

Cet article explique comment configurer et tester la livraison HTTPS dans les événements en direct de Canvas. En savoir plus sur la livraison SQS.

Remarque : Les données des événements en direct sont traitées dans la même région que l'instance de Canvas à partir de laquelle elles sont émises.

Détails de configuration

Vous pouvez implémenter une fonction Google Cloud pour recevoir des événements de Canvas et les stocker dans un bucket Google Cloud Storage.

Les étapes suivantes sont nécessaires pour traiter les messages des événements en direct entrants de Canvas via le point final HTTPS :

  1. Les charges JWT signées doivent être définies sur Activé.
  2. Le message d'événement, une fois reçu par la fonction Google Cloud, doit être décodé via RS256.  
  3. Une fois décodée, la signature JWT contiendra une propriété « kid ». Cette propriété doit être comparée à l'une des valeurs « kid » récupérées à partir de cette URL publique : https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
  4. Transformez la charge et stockez l'événement résultant. En d'autres termes, ne stockez pas les messages signés et codés trop longtemps, car les valeurs « kid » finiront par expirer. AWS effectue une rotation des clés une fois par mois, le 30. La valeur « kid » la plus récente est celle au milieu.

En-têtes d'événements

De plus, il existe trois types d'en-têtes lorsque Canvas génère un événement :

  1. l'en-tête de la demande lorsque l'événement est déclenché dans Canvas (en supposant que l'événement a été généré en fonction de la demande). Les données de la requête sont placées dans un objet de métadonnées d'événement, par exemple une méthode, un identifiant de requête, une URL de référence, etc.
  2. AWS ajoute des données supplémentaires à une enveloppe d'événement lorsqu'il la transmet d'un service à un autre (par exemple, l'horodatage de la transmission de l'événement à SQS).
  3. L'en-tête standard JWT, ces données sont ajoutées lorsque nous signons chaque événement.

Différence entre HTTPS et AWS SQS

Les événements transmis au point final HTTPS possèdent quelques propriétés supplémentaires. Lorsque les événements fournis par AWS SQS sont collectés via une fonction AWS lambda, il est possible d'écrire les événements par lots – jusqu'à 10 messages d'événement à la fois. Cela donne des fichiers contenant jusqu'à 10 messages d'événement, par rapport aux fichiers pour les événements transmis via le point final HTTPS, et il en résulte un fichier par événement. En d'autres termes, pour le même ensemble d'événements, le dossier du point final HTTPS contiendra 10 fois plus de fichiers que le dossier contenant les données récupérées via la file d'attente SQS.