0

我使用 Google Firebase 云功能。

需要明确的是,我可以冷启动,我不想减少启动时间。

我想获得与函数开始之前收到请求的时间相对应的时间戳。

最终目标是估计持续时间。

我们的服务器在数据库中保存一条带有时间戳的记录,然后我们调用外部服务。

这个外部 API 将调用我们服务器上的 webhook 来更新状态。

我们想要测量保存的记录和 webhook 调用之间的持续时间。

它在大多数情况下都有效,但是当云功能遇到冷启动时,它会影响统计信息。

我在文档中使用此信息查找变量,但没有找到任何东西。

我检查了来自外部服务的标头以获取时间戳,但那里也没有任何内容。

4

1 回答 1

0

这似乎是不可能的。HTTP 请求中没有日期和时间的标准标头。最简单的方法是在您的 API 请求中传递您自己的标头。您可以在请求中传递一个 UNIX 时间戳,只是为了确保有人没有传递错误的时间戳,即未来或过去的时间,您可以检查您的云功能。

if (Date.now() - req.headers.req_time > 3000) {
  // greater than 3 seconds - something is wrong
}

这可能不是最好的解决方案,但同时至少暂时没有标准解决方案。

于 2021-07-18T15:38:29.867 回答