Wie konfiguriere und teste ich Canvas Live-Ereignisse mit HTTPS-Übertragung?
Canvas Data Services bietet zwei Möglichkeiten für die Datenbereitstellung, die beide für den Empfang der gleichen Gruppe von Live-Ereignissen von Canvas eingesetzt werden: HTTPS-Endpunkt und AWS-SQS-Warteschlange. HTTPS als auch AWS SQS können gleichzeitig ausgeführt werden.
Dieser Artikel beschreibt, wie Sie die HTTPS-Übertragung in Canvas Live-Ereignissen konfigurieren und testen. Erfahren Sie mehr über die SQS-Bereitstellung.
Hinweis: Die Daten von Live-Ereignissen werden in der gleichen Region verarbeitet wie die Canvas-Instanz, von der sie gesendet werden.
Details zur Konfiguration
Sie können eine Funktion von Google Cloud implementieren, um Ereignisse von Canvas zu empfangen und sie in einem Storage-Bucket von Google Cloud zu speichern.
Die folgenden Schritte sind erforderlich, um eingehende Nachrichten zu Canvas Live-Ereignissen über den HTTPS-Endpunkt zu verarbeiten:
- Signierte JWT-Payloads sollten auf Ein gesetzt werden.
- Die Nachricht über das Ereignis sollte, sobald sie von der Google-Cloud-Funktion empfangen wurde, mit RS256 dekodiert werden.
- Nach der Dekodierung enthält die JWT-Signatur die Eigenschaft „kid“. Diese Eigenschaft sollte mit einem der „kid“-Werte abgeglichen werden, die von dieser öffentlichen URL abgerufen wurden: https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
- Transformieren Sie die Nutzdaten und speichern Sie das daraus resultierende Ereignis. Mit anderen Worten, speichern Sie signierte und verschlüsselte Nachrichten nicht zu lange, da die „kid“-Werte irgendwann ablaufen werden. AWS rotiert die Schlüssel einmal im Monat am 30. Der aktuellste „kid“-Wert ist der in der Mitte.
Ereignis-Header
Darüber hinaus gibt es drei Arten von Headern, wenn Canvas ein Ereignis erzeugt:
- Header der Anfrage, wenn ein Ereignis in Canvas ausgelöst wird (vorausgesetzt, das Ereignis wurde auf der Grundlage der Anfrage erzeugt). Die Daten aus der Anfrage werden in ein Ereignis-Metadatenobjekt aufgenommen, z. B. Methode, Anfrage-ID, Referrer URl usw.
- AWS fügt zusätzliche Daten zu einer Ereignissendung hinzu, wenn es diesen von einem Service an einen anderen weitergibt (z. B. Zeitstempel, wann das Ereignis an SQS übermittelt wurde).
- JWT-Standard-Header, diese Daten werden hinzugefügt, wenn wir jedes Ereignis signieren.
Unterschied zwischen HTTPS und AWS SQS
Die über den HTTPS-Endpunkt gelieferten Ereignisse weisen einige zusätzliche Eigenschaften auf. Wenn die von AWS SQS gelieferten Ereignisse über eine AWS-Lambda-Funktion gesammelt werden, besteht die Möglichkeit, die Ereignisse in Stapeln zu schreiben – bis zu 10 Ereignismeldungen auf einmal. Dies führt zu Dateien mit bis zu 10 Ereignismeldungen, im Gegensatz zu den Dateien für Ereignisse, die über den HTTPS-Endpunkt geliefert werden, was zu einer Datei pro Ereignis führt. Mit anderen Worten: Für die gleiche Anzahl von Ereignissen enthält der Ordner für den HTTPS-Endpunkt 10 Mal so viele Dateien wie der Ordner mit den über die SQS-Warteschlange abgerufenen Daten.