【发布时间】:2020-01-14 03:11:23
【问题描述】:
我有两个 Google App Engine 实例,以及 queue.yaml 和 cron.yaml 文件,它们在通过 Google Cloud Build 触发器推送到主分支时自动部署。触发器运行以下 cloudbuild.yaml 文件:
steps:
- name: gcr.io/cloud-builders/gcloud
dir: website
args: ['app', 'deploy', 'app.yaml']
waitFor: ["-"]
- name: gcr.io/cloud-builders/gcloud
dir: support_backend
args: ['app', 'deploy', 'support_backend.yaml']
waitFor: ["-"]
- name: gcr.io/cloud-builders/gcloud
dir: website
args: ['app', 'deploy', queue.yaml]
waitFor: ["-"]
- name: gcr.io/cloud-builders/gcloud
dir: website
args: ['app', 'deploy', 'cron.yaml']
waitFor: ["-"]
timeout: 900s
app.yaml 配置运行 Django 的 Python 3.7 标准环境,support_backend.yaml 配置运行 Flask 的相同环境。
直到昨天,当构建开始随机超时时,我的部署还没有遇到任何问题。之前整个过程大约需要 5 分钟,现在构建超时(10 分钟后)。
我没有进行任何大的代码更改(实际上只是更改了三行),我没有使用任何新库。我尝试使用 waitFor 参数,这样所有步骤都不会相互依赖。有时 app.yaml 超时(有时需要 2 分钟),有时 support_backend.yaml 超时(有时需要 2 分钟)。哪个实例失败似乎是随机的。 此外,我已经通过 gcloud 控制台(使用 编辑: 我现在也通过 gcloud 控制台进行了一次部署。gcloud app deploy app.yaml)成功地独立部署了这两个应用程序,每次都运行良好,每次大约需要 3 分钟。
我尝试设置 timeout: 900s - 这似乎没有任何效果,构建仍然在 10 分钟后超时。谷歌云状态仪表板昨天提到构建服务中断,但仅限于亚洲服务器,我的应用程序在欧洲运行。此外,从那时起,该问题被标记为已解决,并且问题仍然存在。
这是来自失败构建的日志的结尾
...
File upload done.
Updating service [staging]...failed.
ERROR: (gcloud.app.deploy) Error Response: [4] Cloud build did not succeed within 10m.
Build error details: Build error details not available..
Check the build log for errors: https://console.cloud.google.com/gcr/builds/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX?project=XXXXXXXX
以及它提到的构建日志的结尾
...
Step #1 - "builder": INFO gzip_tar_runtime_package took 0 seconds
Step #1 - "builder": INFO Finished gzipping tarfile.
Step #1 - "builder": INFO Building app layer took 0 seconds
Step #1 - "builder": INFO starting: Stitching layers into final image
Finished Step #1 - "builder"
TIMEOUT
ERROR: context deadline exceeded
还有什么我可以尝试确定我的构建超时的确切原因吗?
【问题讨论】:
标签: python google-app-engine google-cloud-platform gcloud google-cloud-build