Google App Engine中的Docker灵活的健康检查具有错误的URL

我的服务使用这样的url:

<google_url>/v1/lookup_stuff

<google_url>/v1/是服务中所有内容的基本url,所以当运行状况检查ping <google_url>它会得到一个404.我需要更新到ping <google_url>/v1/

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

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

好的清晰度:

  • Googleurl: service-something.appspot.com
  • 所有的服务url都在: service-something.appspot.com/v1

我需要指出健康检查员:

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

代替

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

更新:

灵活的环境现在支持更新后的运行状况检查 ,包括单独configuration的活跃检查和/或准备情况检查 ,两者均具有可configuration的pathfunction。

请注意,这些更新的运行状况检查不兼容,不能与传统运行状况检查共同出现:

您必须分别为每个项目启用更新的健康检查。 默认情况下,传统运行状况检查已启用。 您不能在同一个项目中使用两种types的运行状况检查。

原始答案,仅适用于传统健康检查:

该path目前不可configuration。 从健康检查 :

你不必做任何特殊的事情来实施健康检查。 如果您的应用程序不处理运行状况检查,则HTTP 404响应被解释为成功的回复。

您可以编写自己的自定义健康检查代码。 它应该以HTTP状态码200回复/_ah/health请求。 响应必须包含一个消息主体,然而,主体的值被忽略(可以是空的)。

所以你可以这样离开 – 你的应用程序总是被认为是健康的。 或者你可以教你的应用程序正确回答/_ah/health的健康检查请求。

无论如何,真的很隐晦的问题:

  • 如果<google_url>是您devise的标签,然后将其分成两部分: <google_base_url>/v1/<google_path_url>lookup_stuff那么您可以ping <google_base_url>/v1/并在需要原始<google_url> = <google_base_url> + <google_path_url>

  • 如果<google_url>是由某个框架给你的,那么你需要解释它,以获得你需要的初始部分。 也许你可以使用正则expression式模式,检查这个search

  • 第三个select是在您的Web服务中添加一个重写规则,将所有的pingredirect到您需要的url,再次检查这个,以便searchapache ,或者扩展您的问题,解释您使用的Web服务器,您打算做什么等等

最后,在kubernetes-health-check上查看关于如何configuration活性探测器的一个很好的例子,有一个应该是有用的path参数