Google App Engine中的Docker灵活运行状况检查网址错误

时间:2017-08-02 20:58:41

标签: google-app-engine docker gcloud app-engine-flexible

我的服务使用这样的网址:

<google_url>/v1/lookup_stuff

<google_url>/v1/是服务中所有内容的基本网址,因此当健康检查ping <google_url>时,它会获得404.我需要更新为ping <google_url>/v1/

(可能有用的信息,该服务在Docker中,当我手动转到正确的URL时可以访问)

如何将gcloud的健康服务指向我服务的正确网址?

为了清楚起见:

  • Google网址:service-something.appspot.com
  • 所有服务网址均位于:service-something.appspot.com/v1

我需要将健康检查器指向:

  • service-something.appspot.com/v1/_ah/health

而不是

  • service-something.appspot.com/_ah/health

2 个答案:

答案 0 :(得分:1)

无论如何,

真是神秘的问题:

  • 如果submit是您设计的标记,则将其拆分为两个:<google_url><google_base_url>/v1/,然后您可以ping <google_path_url>lookup_stuff,当您需要原始的<google_base_url>/v1/

  • 如果某个框架等给你<google_url> = <google_base_url> + <google_path_url>,那么你需要解释它,以获得你需要的初始部分。也许您可以使用正则表达式模式,请查看this so search

  • 第三个选项是在您的网络服务中添加重写规则,将所有ping重定向到您需要的网址,再次check out this so search for apache,或者扩展您的问题,说明您使用的是哪种网络服务器,您打算使用什么做等等

最后,在kubernetes-health-check上查看关于如何配置活动探测器的好例子,有一个应该有用的路径参数

答案 1 :(得分:1)

<强>更新

灵活的环境现在支持Updated health checks,由可单独配置的liveness checks和/或readiness checks组成,两者都具有可配置的path功能。

请注意,这些更新的运行状况检查不兼容,无法与旧版运行状况检查共存:

  

您必须单独为每个项目启用更新的运行状况检查。   默认情况下,启用旧版运行状况检查。你不能同时使用它们   同一项目中的健康检查类型。

原始答案,仅适用于旧版健康检查:

目前路径不可配置。来自Health checking

  

您无需执行任何特殊操作即可实施运行状况检查。   如果您的应用不处理运行状况检查,则会发出HTTP 404响应   解释为成功回复。

     

您可以编写自己的自定义运行状况检查代码。它应该回复   具有HTTP状态代码/_ah/health的{​​{1}}个请求。响应   必须包含一个消息体,但是,忽略正文的值   (它可以是空的。)

所以你可以这样离开 - 你的应用程序总是被认为是健康的。或者,您可以教导您的应用在200正确回答健康检查请求。