我正在尝试将一个简单的 Flask 应用程序部署到 Google App Engine。当我运行命令时gcloud app deploy
,它完成了所有任务,但随后它在“更新服务”上出现堆栈。起初我收到此错误:
ERROR: (gcloud.app.deploy) Error Response: [4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back. If you believe this was an error, try adjusting the 'app_start_timeout_sec' setting in the 'readiness_check' section.
然后我增加超时时间,但仍然收到此错误:
ERROR: (gcloud.app.deploy) Operation [apps/artise-server/operations/a3a9a2ac-f33b-4c94-93f1-88917372703e] timed out. This operation may still be underway.
这是我的 .yaml 配置:
runtime: python
runtime_config:
python_version: 3.6
env: flex
entrypoint: gunicorn -b :$PORT main:app
liveness_check:
check_interval_sec: 60
timeout_sec: 4
failure_threshold: 10
success_threshold: 1
initial_delay_sec: 3600
readiness_check:
check_interval_sec: 300
timeout_sec: 4
failure_threshold: 10
success_threshold: 2
app_start_timeout_sec: 1800
endpoints_api_service:
name: artise-server.appspot.com
rollout_strategy: managed
如果我转到“构建云”部分,所有构建都有绿色勾号,因此它们成功了。
如果我检查日志,我看到的唯一错误是关于内存的:
failed to register layer: Error processing tar file(exit status 1): write /root/.cache/pip/http/0/6/0/1/c/0601ce0a759e906a3c59f237e6f51f593631e6614dfdd40374a20b3e: no space left on device
如果我访问该项目的网址,Google 会显示 404 未找到页面。并且发布请求不会返回响应。所以我认为我的服务器不在线。
答案1
第一个错误ERROR: (gcloud.app.deploy) Error Response: [4] Your deployment has failed to become healthy in the allotted time and therefore was rolled back. If you believe this was an error, try adjusting the 'app_start_timeout_sec' setting in the 'readiness_check' section.
可能由不同原因造成:
- 没有足够的资源
- 如果您有特殊的 VPC 配置,则在 VPC 网络中没有权限。
对于第一种可能性,增加 app.yaml 上的资源就足够了。
resources: cpu: 2 memory_gb: 2.3 disk_size_gb: 10 volumes: - name: ramdisk1 volume_type: tmpfs size_gb: 0.5
对于第二个错误:ERROR: (gcloud.app.deploy) Operation [apps/artise-server/operations/a3a9a2ac-f33b-4c94-93f1-88917372703e] timed out. This operation may still be underway.
这可能是由于使用相同的版本 ID 再次部署造成的,请尝试使用不同的版本 ID 再次部署,若要在部署时设置版本 ID,您可以通过以下行进行部署:
gcloud app deploy --version=VERSION_ID
答案2
该错误表明资源可能不足。请尝试按照说明增加内存的默认值这里。 例子:
resources: cpu: 2 memory_gb: 2.3 disk_size_gb: 10 volumes: - name: ramdisk1 volume_type: tmpfs size_gb: 0.5
答案3
您是否正在使用虚拟私有云进行部署?如果是这样,您收到的第一条错误消息表明问题可能与 VPC 的防火墙有关。您可以验证您的防火墙规则吗?