Hvordan konfigurerer og tester jeg Canvas direktehendelser med HTTPS-levering?

Canvas datatjenester har to alternativer for dataformidling, som begge er distribuert for å motta det samme settet med direktehendelser fra Canvas: HTTPS-endepunkt og AWS SQS-kø. Både HTTPS og AWS SQS kan kjøres samtidig.

Denne artikkelen beskriver hvordan du konfigurerer og tester HTTPS-formidling i Canvas direktehendelser. Lær mer om SQS-formidling.

Merknad: Direktehendelsesdata behandles i samme region som Canvas-forekomsten de sendes ut fra.

Konfigurasjonsdetaljer

Du kan implementere en Google Cloud-funksjon for å motta hendelser fra Canvas og lagre dem i en Google Cloud-lagringsbeholder.

Følgende trinn er nødvendige for å behandle innkommende Canvas direktehendelsesmeldinger via HTTPS-endepunktet:

  1. Signerte JWT payloads skal settes til På
  2. Når hendelsesmeldingen er mottatt av Google Cloud-funksjonen, skal den dekodes ved hjelp av RS256.  
  3. Når den er dekodet, vil JWT-signaturen inneholde "kid"-egenskap. Denne egenskapen skal matches mot en av "kid"-verdiene som hentes fra denne offentlige URL-adressen: https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
  4. Transformer payloaden og lagre den resulterende hendelsen. Med andre ord bør du ikke lagre signerte og kodede meldinger for lenge, da "kid"-verdiene etter hvert vil gå ut. AWS bytter nøkler en gang i måneden, den 30. i måneden. Den mest aktuelle "kid" er den i midten.

Hendelsesoverskrifter

I tillegg finnes det tre typer overskrifter når Canvas genererer en hendelse :

  1. Forespørselsoverskrift når hendelsen utløses i Canvas (forutsatt at hendelsen er generert basert på forespørselen). Dataene fra forespørselen legges inn i et hendelsesmetadataobjekt, f.eks. metode, forespørsels-ID, henvisende URl osv.
  2. AWS legger til ekstra data i en hendelseskonvolutt når den overføres fra en tjeneste til en annen (f.eks. tidsstempel når hendelsen ble formidlet til SQS).
  3. JWT-standardoverskrift, disse dataene legges til når vi signerer hver hendelse.

Forskjell mellom HTTPS og AWS SQS

Hendelsene som formidles fra HTTPS-endepunktet, har noen ekstra funksjoner. Når AWS SQS-formidlede hendelser samles inn via en AWS-lambda-funksjon, er det mulig å skrive hendelsene i grupper – opptil 10 hendelsesmeldinger samtidig. Dette resulterer i filer med opptil 10 hendelsesmeldinger, sammenlignet med filene for hendelser som formidles via HTTPS-endepunktet, som vil resultere i én fil per hendelse. Med andre ord, for det samme settet med hendelser vil mappen for HTTPS-endepunktet ha 10 ganger så mange filer som mappen som inneholder data hentet via SQS-køen.