【发布时间】:2021-12-21 10:20:08
【问题描述】:
我在 GCP App Engine 上托管了 asp.net 核心应用程序。当我尝试部署应用程序时,它在最后一步失败:
正在更新服务 [名称](这可能需要几分钟)... ...失败
错误:(gcloud.app.deploy) 错误响应:[9] 处理任务 /app-engine-flex/flex_await_healthy/flex_await_healthy>blablabla.wm.1 时发生内部错误
异常堆栈跟踪显示后台运行的服务找不到 MySQL 表(该表显然存在)。
我的 app.yaml 文件:
service: XXX
runtime: custom
env: flex
automatic_scaling:
max_concurrent_requests: 80
min_num_instances: 1
max_num_instances: 1
resources:
cpu: XXX
memory_gb: XXX
beta_settings:
cloud_sql_instances: "XXX:XXXX:XXXX=tcp:3306"
尽管出现错误,但看起来应用程序已正确部署。这是唯一的错误,后台服务不会在以后抛出任何异常。事实上它工作正常,可以连接到数据库。
我的猜测是,当应用程序未连接数据库时,GCP 可能正在检查运行状况。所以我尝试将liveness_check 和readiness_check 添加到app.yaml 并在我的应用程序中配置专用的/healthcheck 端点,但它没有做任何更改。
任何想法如何解决它以及可能是什么原因?
【问题讨论】:
-
当您收到此错误时,您可以查看 Cloud Console Logs Viewer(日志记录 -> 日志)中的 crash.log 以了解您的特定服务/版本,它通常会准确地告诉您发生了什么。但是我希望您尝试将实例数指定为最多两个,这可以通过 manual_scaling 或 max_num_instances 来完成,同时使用自动缩放到 2 (automatic_scaling: min_num_instances: 1 max_num_instances: 2)/(manual_scaling: instances: 2 ) 在您的 app.yaml 文件中
标签: mysql asp.net google-app-engine .net-core google-cloud-platform