Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 为不可公开访问的后端设置云监控正常运行时间检查_Google Cloud Platform_Google Cloud Endpoints_Google Cloud Run_Google Cloud Monitoring - Fatal编程技术网

Google cloud platform 为不可公开访问的后端设置云监控正常运行时间检查

Google cloud platform 为不可公开访问的后端设置云监控正常运行时间检查,google-cloud-platform,google-cloud-endpoints,google-cloud-run,google-cloud-monitoring,Google Cloud Platform,Google Cloud Endpoints,Google Cloud Run,Google Cloud Monitoring,我在为一些不允许未经验证的调用的云运行服务设置正常运行时间检查时遇到一些问题 在上下文中,我使用CloudEndpoints+ESPv2作为API网关,连接到一些云运行服务 ESPv2容器/API网关允许未经验证的调用,但底层云运行服务不允许(因为对这些后端的请求通过API网关流动) 每个云运行服务都有一个内部健康检查端点,我希望通过云监控正常运行时间检查定期访问该端点 这样做的目的是确保我的云运行服务是健康的,但也带来了额外的好处,减少了冷启动时间,因为容器保持“温暖” 但是,由于受保护的云运

我在为一些不允许未经验证的调用的云运行服务设置正常运行时间检查时遇到一些问题

在上下文中,我使用CloudEndpoints+ESPv2作为API网关,连接到一些云运行服务

ESPv2容器/API网关允许未经验证的调用,但底层云运行服务不允许(因为对这些后端的请求通过API网关流动)

每个云运行服务都有一个内部健康检查端点,我希望通过云监控正常运行时间检查定期访问该端点

这样做的目的是确保我的云运行服务是健康的,但也带来了额外的好处,减少了冷启动时间,因为容器保持“温暖”

但是,由于受保护的云运行服务需要有效的授权标头,因此来自云监控的所有请求都会以403失败

从云监控UI上看,您似乎只能配置一个静态身份验证头,在这种情况下它将不起作用。我需要能够为云监控发送的每个请求动态创建一个auth头

我可以看到云调度器已经支持这一点了。我在云运行服务(未通过API网关公开)上有几个内部端点,它们通过云调度程序命中,并且我能够在每个请求上配置一个OIDC auth头。理想情况下,我也能在云监控方面做到这一点

我可以看到一些解决方法,但都不太理想:

  • 允许对基础云运行服务进行未经验证的调用。这将使我的内部服务可以公开访问,然后我将不得不担心在每个服务中处理auth

  • 通过API网关/ESPv2公开内部端点。这实际上与前面的解决方法相同

  • 通过API网关/ESPv2公开内部端点,并配置某种身份验证。这类方法是可行的,但在撰写本文时,ESPv2支持的唯一身份验证方法是API键和JWT。JWT已经不可能了,但我想API密钥可以工作。同样,这需要一些设置,如果可能的话,我宁愿避免

如果您对此有任何想法/建议,我们将不胜感激


谢谢

这个简单的解决方案可能适用于您的用例,因为在端口443上使用TCP正常运行时间检查更容易:

  • 使用创建您自己的云运行服务

  • 在TCP端口443云运行URL上创建新的正常运行时间检查

  • 等几分钟

  • 位置结果:通过所有位置

    弗吉尼亚好的 俄勒冈州好的 爱荷华州OK 比利时OK 新加坡OK 圣保罗OK


    我还想告诉大家,Cloud Run是一款谷歌全面管理的产品,在过去几个月里,它有一个,但在你这方面主动监控也是一件非常好的事情。

    为什么你想对一个只按需提供资源并运行你的应用程序的平台进行正常运行时间检查?这里没有任何意义!内部端点内置了一个healthcheck,它基本上检查每个服务的外部依赖项(数据库、redis等),因此通过正常运行时间点击它就表明该服务是“健康的”。此外,我提到的另一个好处是,云运行的服务保持“温暖”