Google Cloud App Engine Flex中.Net Core应用如何禁用默认健康检查?
我来帮你梳理下可行的解决思路——之前也碰到过不少开发者被这个高频健康检查请求困扰,咱们一步步排查:
确认app.yaml配置的层级与语法正确性
App Engine Flex的健康检查配置必须是顶级配置块,很多人失败是因为把它嵌套在了runtime_config或其他子块里。正确的禁用写法应该是:runtime: aspnetcore env: flex # 其他配置... health_check: enable_health_check: False注意YAML是大小写敏感的,
False要大写(小写false在部分场景下可能不被正确解析)。如果同时配置了readiness_check或liveness_check,也要一并禁用:readiness_check: enable_readiness_check: False liveness_check: enable_liveness_check: False验证配置是否被正确部署生效
部署后可以通过gcloud命令查看当前应用的实际配置,确认健康检查是否被禁用:gcloud app describe | grep -A 15 health_check或者直接查看完整配置输出,检查
enable_health_check字段是否为False。如果输出和你的app.yaml不一致,可能是部署时缓存或配置文件语法错误导致未生效,建议重新部署并查看部署日志有没有报错。排查请求来源,确认是否为默认健康检查
查看你的.NET Core应用日志,确认高频请求的路径是否为/_ah/health(App Engine默认健康检查路径)。如果是其他路径,可能是自定义探针或其他内部组件的请求,需要针对性处理。临时缓解方案:快速响应健康检查请求
如果暂时无法彻底禁用,可在.NET Core应用中添加一个快速响应/_ah/health的路由,减少资源消耗:// 在Program.cs的路由配置中添加 app.MapGet("/_ah/health", () => Results.Ok());这个接口会立即返回200状态码,不会消耗过多应用资源。
如果以上方法都无效,建议查看App Engine的部署日志,确认配置是否被正确解析,或者联系Google Cloud支持排查具体的部署异常。
内容的提问来源于stack exchange,提问作者Grigoryants Artem

