Canvas Data Services offre due opzioni per la distribuzione dei dati, ciascuna delle quali è progettata per ricevere lo stesso set di eventi live da Canvas: endpoint HTTPS e coda AWS SQS. Sia HTTPS che AWS SQS possono essere eseguiti contemporaneamente.
Questo articolo illustra come configurare e testare la distribuzione HTTPS in Canvas Live Events. Scopri di più sulla distribuzione SQS .
Nota: i dati degli eventi live vengono elaborati nella stessa regione dell'istanza Canvas da cui vengono emessi.
Dettagli di configurazione
È possibile implementare una funzione Google Cloud per ricevere eventi da Canvas e archiviarli in un bucket Google Cloud Storage.
Per elaborare i messaggi Canvas Live Event in arrivo tramite l'endpoint HTTPS sono necessari i seguenti passaggi:
- I payload JWT firmati devono essere impostati su On
- Una volta ricevuto da Google Cloud Functions, il messaggio dell'evento deve essere decodificato tramite RS256.
- Una volta decodificata, la firma JWT conterrà una proprietà "kid". Questa proprietà deve essere confrontata con uno dei valori "kid" recuperati da questo URL pubblico: https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
- Trasforma il payload e memorizza l'evento risultante. In altre parole, non conservare i messaggi firmati e codificati per troppo tempo, perché i valori "kid" prima o poi scadranno. AWS ruota le chiavi una volta al mese, il 30. Il "kid" più aggiornato è quello al centro.
Inoltre, quando Canvas genera un evento, ci sono tre tipi di intestazioni:
- Intestazione della richiesta quando l'evento viene attivato in Canvas (supponendo che l'evento sia stato generato in base alla richiesta). I dati della richiesta vengono inseriti in un oggetto metadati dell'evento, ad esempio metodo, ID richiesta, URL di riferimento, ecc.
- AWS aggiunge dati aggiuntivi a un event envelope quando lo passa da un servizio all'altro (ad esempio, timestamp quando l'evento è stato consegnato a SQS).
- Intestazione standard JWT: questi dati vengono aggiunti quando firmiamo ogni evento.
Differenza tra HTTPS e AWS SQS
Gli eventi consegnati dall'endpoint HTTPS presentano alcune proprietà aggiuntive. Quando gli eventi consegnati da AWS SQS vengono raccolti tramite una funzione AWS Lambda, è possibile scrivere gli eventi in batch, fino a 10 messaggi di evento alla volta. Ciò si traduce in file che contengono fino a 10 messaggi di evento, rispetto ai file per gli eventi consegnati tramite l'endpoint HTTPS, che generano un file per evento. In altre parole, per lo stesso set di eventi, la cartella per l'endpoint HTTPS conterrà un numero di file 10 volte superiore a quello della cartella contenente i dati recuperati tramite la coda SQS.