Hvordan konfigurerer og tester jeg Canvas livehændelser ved hjælp af HTTPS-levering?
Canvas Data Services tilbyder to valgmuligheder for datalevering, som hver er implementeret til at modtage det samme sæt livehændelser fra Canvas: HTTPS-slutpunkt og AWS SQS-kø. Både HTTPS og AWS SQS kan køres samtidigt.
Denne artikel diskuterer, hvordan man konfigurerer og tester HTTPS-levering i Canvas livehændelser. Lær mere om SQS-levering.
Bemærk: Data om livebegivenheder behandles i samme område som den Canvas-instans, de udsendes fra.
Konfigurationsdetaljer
Du kan implementere en Google Cloud-funktion til at modtage hændelser fra Canvas og gemme dem i en Google Cloud Storage-bøtten.
Følgende trin er nødvendige for at behandle indgående Canvas livehændelses-beskeder gennem HTTPS-slutpunktet:
- Signerede JWT-nyttelaster skal indstilles til Til
- Hændelsesbeskeden, når den modtages af Google Cloud-funktionen, skal afkodes ved hjælp af RS256.
- Når den er afkodet, vil JWT-signaturen indeholde en "kid"-egenskab. Denne egenskab skal matches mod en af "kid"-værdierne hentet fra denne offentlige URL: https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
- Transformer nyttelasten, og gem den resulterende hændelse. Med andre ord, gem ikke signerede og kodede beskeder for længe, fordi "kid"-værdierne til sidst vil være udløbet. AWS roterer nøgler en gang om måneden den 30. Det mest aktuelle "kid" er det i midten.
Hændelsesoverskrifter
Derudover er der tre typer overskrifter, når Canvas genererer en hændelse:
- Anmod om overskrift, når hændelsen udløses i Canvas (forudsat at hændelsen blev genereret baseret på anmodningen). Dataene fra anmodningen lægges ind i et hændelsesmetadataobjekt, f.eks. metode, anmodnings-ID, henvisnings-URl osv.
- AWS tilføjer yderligere data til en hændelsespakke, når den overfører dem fra en tjeneste til en anden (f.eks. tidsstempel, da hændelsen blev leveret til SQS).
- JWT standardoverskrift, disse data tilføjes, når vi signerer hver hændelse.
Forskellen mellem HTTPS og AWS SQS
De HTTPS-slutpunktsleverede hændelser har et par ekstra egenskaber. Når AWS SQS-leverede hændelser indsamles via en AWS lambda-funktion, er der mulighed for at skrive hændelserne i batches – op til 10 hændelsesbeskeder ad gangen. Dette resulterer i filer, der har op til 10 hændelsesbeskeder sammenlignet med filerne for hændelser leveret gennem HTTPS-slutpunktet, hvilket vil resultere i én fil pr. hændelse. Med andre ord, for det samme sæt hændelser vil mappen for HTTPS-slutpunktet have 10 gange så mange filer som mappen, der indeholder data hentet via SQS-køen.