Docker Google App Engine 灵活健康检查有错误 URL
Docker in Google App Engine Flexible health check has wrong URL
我的服务使用这样的 url:
<google_url>/v1/lookup_stuff
<google_url>/v1/
是服务中所有内容的基础 url,因此当运行状况检查 ping <google_url>
时,它会收到 404。我需要更新到 ping <google_url>/v1/
(可能有用的信息,服务在Docker,我手动去右边就可以访问URL)
如何将 gcloud 的运行状况服务指向我服务的正确 URL?
为了清楚起见:
- Google url:
service-something.appspot.com
- 所有 url 的服务都在:
service-something.appspot.com/v1
我需要将运行状况检查程序指向:
service-something.appspot.com/v1/_ah/health
而不是
service-something.appspot.com/_ah/health
无论如何,这个问题确实很神秘:
如果 <google_url>
是您设计的标签,然后将其分成两部分:<google_base_url>/v1/
和 <google_path_url>lookup_stuff
那么您可以 ping <google_base_url>/v1/
和当你需要原来的 <google_url> = <google_base_url> + <google_path_url>
如果 <google_url>
是由一些框架等给你的,那么你需要解释它,以获得你需要的初始部分。也许你可以使用正则表达式模式,查看 this so search
- 第三种选择是在您的网络服务中放置一个重写规则,将所有 ping 重定向到您需要的 url,再次 check out this so search for apache,或者扩展您的问题,解释什么网络服务器你使用的,你打算做什么等等
最后,查看 kubernetes-health-check 上关于如何配置 liveness 探测器的这个很好的示例,其中有一个路径参数应该很有用
更新:
灵活的环境现在支持 Updated health checks, consisting of separately configurable liveness checks and/or readiness checks,两者都具有可配置的 path
功能。
请注意,这些更新后的健康检查不兼容,无法与旧版健康检查共存:
You must enable updated health checks for each project individually.
By default, legacy health checks are enabled. You cannot use both
types of health checks in the same project.
原始答案,仅适用于遗留健康检查:
该路径当前不可配置。来自 Health checking:
You do not have to do anything special to implement health checking.
If your app does not handle health checks, a HTTP 404
response is
interpretated as a successful reply.
You can write your own custom health-checking code. It should reply to
/_ah/health
requests with a HTTP status code 200
. The response
must include a message body, however, the value of the body is ignored
(it can be empty).
所以你可以这样了 - 你的应用程序总是被认为是健康的。或者,您可以教您的应用正确回答 /_ah/health
.
处的健康检查请求
我的服务使用这样的 url:
<google_url>/v1/lookup_stuff
<google_url>/v1/
是服务中所有内容的基础 url,因此当运行状况检查 ping <google_url>
时,它会收到 404。我需要更新到 ping <google_url>/v1/
(可能有用的信息,服务在Docker,我手动去右边就可以访问URL)
如何将 gcloud 的运行状况服务指向我服务的正确 URL?
为了清楚起见:
- Google url:
service-something.appspot.com
- 所有 url 的服务都在:
service-something.appspot.com/v1
我需要将运行状况检查程序指向:
service-something.appspot.com/v1/_ah/health
而不是
service-something.appspot.com/_ah/health
无论如何,这个问题确实很神秘:
如果<google_url>
是您设计的标签,然后将其分成两部分:<google_base_url>/v1/
和<google_path_url>lookup_stuff
那么您可以 ping<google_base_url>/v1/
和当你需要原来的<google_url> = <google_base_url> + <google_path_url>
如果
<google_url>
是由一些框架等给你的,那么你需要解释它,以获得你需要的初始部分。也许你可以使用正则表达式模式,查看 this so search- 第三种选择是在您的网络服务中放置一个重写规则,将所有 ping 重定向到您需要的 url,再次 check out this so search for apache,或者扩展您的问题,解释什么网络服务器你使用的,你打算做什么等等
最后,查看 kubernetes-health-check 上关于如何配置 liveness 探测器的这个很好的示例,其中有一个路径参数应该很有用
更新:
灵活的环境现在支持 Updated health checks, consisting of separately configurable liveness checks and/or readiness checks,两者都具有可配置的 path
功能。
请注意,这些更新后的健康检查不兼容,无法与旧版健康检查共存:
You must enable updated health checks for each project individually. By default, legacy health checks are enabled. You cannot use both types of health checks in the same project.
原始答案,仅适用于遗留健康检查:
该路径当前不可配置。来自 Health checking:
You do not have to do anything special to implement health checking. If your app does not handle health checks, a HTTP
404
response is interpretated as a successful reply.You can write your own custom health-checking code. It should reply to
/_ah/health
requests with a HTTP status code200
. The response must include a message body, however, the value of the body is ignored (it can be empty).
所以你可以这样了 - 你的应用程序总是被认为是健康的。或者,您可以教您的应用正确回答 /_ah/health
.