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:
- Signerte JWT payloads skal settes til På
- Når hendelsesmeldingen er mottatt av Google Cloud-funksjonen, skal den dekodes ved hjelp av RS256.
- 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
- 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 :
- 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.
- 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).
- 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.