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:

  1. Signerede JWT-nyttelaster skal indstilles til Til
  2. Hændelsesbeskeden, når den modtages af Google Cloud-funktionen, skal afkodes ved hjælp af RS256.  
  3. 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
  4. 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:

  1. 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.
  2. 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).
  3. 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.