配置详情
您可以实现一个 Google Cloud Function 来接收来自 Canvas 的事件,并将它们存储在 Google Cloud Storage 存储桶中。
要通过 HTTPS 端点处理传入的 Canvas Live Event 消息,需要执行以下步骤:
- 应将已签名 JWT 有效负载设置为“开启”。
- 事件消息一旦被 Google Cloud Function 接收,就应该使用 RS256 进行解码。
- 解码后,JWT 签名将包含一个kid属性。此属性应与从以下公共 URL 获取的kid值之一进行匹配: https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
- 转换有效负载并存储生成的事件。换句话说,不要长时间存储已签名和编码的消息,因为KIDD值最终会过期。AWS 每月 30 日轮换密钥。最新的KIDD位于中间。
此外,Canvas 生成事件时还有三种类型的标头:
- 请求头:当 Canvas 中触发事件时(假设事件是基于请求生成的),系统会将请求数据放入事件元数据对象中(例如,方法、请求 ID、引用 URL)。
- AWS 信封标头:AWS 在事件信封在服务之间传递时向其添加数据(例如,事件传递到 SQS 时的时间戳)。
- JWT 标准标头:系统在对每个事件进行签名时会添加 JWT 标准标头。
HTTPS 和 AWS SQS 的区别
通过 HTTPS 端点传递的事件具有一些额外的属性。当使用 AWS Lambda 函数收集 AWS SQS 传递的事件时,可以分批写入事件——一次最多写入 10 条事件消息。这样生成的文件最多包含 10 条事件消息,而通过 HTTPS 端点传递的事件,每个事件都会生成一个文件。换句话说,对于同一组事件,HTTPS 端点的文件夹包含的文件数量是 SQS 队列检索的数据文件夹的 10 倍。