GCP/Stackdriver:正常运行时间检查已验证 API

GCP/Stackdriver: Uptime Checks for an authenticated API

所以我正在开发一个由其他后端服务使用的后端服务。消费者在调用我们的 API 之前需要获取身份验证令牌。现在,我想定期向虚拟产品发出请求(在实时、部署的实例上)以观察是否一切正常。

正常运行时间检查可能吗?看起来它们只支持基本身份验证,您不能在执行前执行实际代码(检索令牌或生成随机请求标识符)。对吗?

我看到有通过代码创建正常运行时间检查的选项 https://cloud.google.com/monitoring/uptime-checks/#node.js 但由于 await client.createUptimeCheckConfig(request) 使用静态配置(请求对象),我想你不能在那里注入函数?

我可以使用 GCP 中的任何其他工具来满足我的需求,或者我是否需要部署中间人服务(或功能)来转发正常运行时间检查?

正常运行时间检查确实允许您提供自定义 headers (https://cloud.google.com/monitoring/api/ref_v3/rest/v3/projects.uptimeCheckConfigs#HttpCheck),因此如果您有一个硬编码令牌可以传递给您的 API 通过 headers.

如果这不是一个选项,您可以使用执行您需要的自定义逻辑的路由来启动网络服务器的实例。然后,设置正常运行时间检查以根据需要 ping 您的网络服务器。如果您的网络服务器需要额外的安全性,您有几个选择:

  1. 通过设置 HTTP 基本身份验证来限制对网络服务器的访问。正常运行时间支持基本身份验证,因此您只需提供服务器所需的值。
  2. 限制您的服务器仅接受来自 Google 用于正常运行时间检查的 IP 地址的连接 (https://cloud.google.com/monitoring/uptime-checks/using-uptime-checks#get-ips)。请注意,这些是动态的,需要一些自动化过程来使列表保持最新。