我该如何使用 HTTPS 传送来配置和测试 Canvas 实时事件?

Canvas 数据服务提供两种数据传送选择,每种选择都部署用于从 Canvas 接收同一组实时事件:HTTPS 端点和 AWS SQS 队列。HTTPS 和 AWS SQS 可以同时运行。

本文讨论如何在 Canvas 实时事件中配置和测试 HTTPS 传递。进一步了解 SQS 传送

注意:实时事件数据在与发出它们的 Canvas 实例相同的区域进行处理。

配置详细信息

您可以实现谷歌云功能以从 Canvas 接收事件,并将其存储在谷歌云存储桶中。

需要执行以下步骤才能通过 HTTPS 端点处理传入的 Canvas 实时事件消息:

  1. 签名 JWT 有效负载应设置为打开
  2. 谷歌云功能接收到事件消息后,应使用 RS256 对其进行解码。
  3. 解码后,JWT 签名将包含一个"kid"属性。此属性应与从此公共 URL 检索到的一个"kid"值匹配:https://8axpcl50e4.execute-api.us-east-1.amazonaws.com/main/jwks
  4. 转换有效负载并存储结果事件。换言之,不要将经过签名和编码的消息存储太长时间,因为"kid"值最终会过期。AWS 每月 30 号轮换一次密钥。最新的"kid"是中间的那个。

事件标头

此外,当 Canvas 生成事件时,有三种类型的标头文件:

  1. 在 Canvas 中触发事件时的请求标头(假设事件是基于请求生成的)。来自请求的数据被放入事件元数据对象中,例如方法、请求 id、引用 URl 等。
  2. 当 AWS 将数据从一项服务传递到另一项服务时,它会将额外的数据添加到事件信封中(例如,当事件传递到 SQS 时的时间戳)。
  3. JWT 标准标头,当我们对每个事件进行签名时会添加这些数据。

HTTPS 与 AWS SQS 的区别

HTTPS 端点传送的事件具有一些附加属性。当通过 AWS lambda 功能收集 AWS SQS 传送的事件时,有机会批量写入事件 - 一次最多 10 条事件消息。与通过 HTTPS 端点传送的事件形成的文件相比,这将导致文件最多有 10 条事件消息,而 HTTPS 端点将导致每个事件形成一份文件。换言之,对于同一组事件,用于 HTTPS 端点的文件夹包含的文件数量将是包含通过 SQS 队列检索的数据的文件夹的 10 倍。