如何延长CloudBuild超时

问题描述

我尝试了许多其他方法来延长CloudBuild的持续时间,但是我的gcloud应用程序部署步骤始终会在10分钟后超时。遵循其他主题的技巧,我已经在本地终端上尝试了此设置

gcloud config set app/cloud_build_timeout 2000

我还尝试了许多构建作业和任务级别超时的组合,但是该步骤总是在10分钟后失败,并且云构建日志中出现此错误

ERROR: context deadline exceeded

这是我笔记本电脑上的错误

Step #2: ERROR: (gcloud.app.deploy) Error Response: [4] Cloud build did not succeed within 10m.

我的cloudbuild.yaml是

steps:
- name: gcr.io/cloud-builders/npm
  args: [ install ]

- name: 'gcr.io/$PROJECT_ID/ng'
  args: ['build','--prod']

- name: gcr.io/cloud-builders/gcloud
  #entrypoint: 'bash'
  #args: ['-c','gcloud config set app/cloud_build_timeout 2000 && gcloud app deploy']
  args: [ app,deploy ]
  timeout: 2000s

timeout: 4600s

然后我使用命令从笔记本电脑运行构建

gcloud builds submit . --config=cloudbuild.yaml --timeout=1h

如何允许gcloud应用程序部署步骤运行超过10分钟?

更新1

我还按照下面的注释尝试了各种版本,仍然是相同的错误消息

steps:
- name: gcr.io/cloud-builders/npm
  args: [ install ]
  timeout: 2000s

- name: 'gcr.io/$PROJECT_ID/ng'
  args: ['build','--prod']
  timeout: 2000s

- name: gcr.io/cloud-builders/gcloud
  args: [ app,deploy ]
  timeout: 2000s

timeout: 6100s

我不知道它是否相关,但查看日志,看来gcloud app的部署步骤正在重新编译代码,与上一步相同。

解决方法

来自documentation

向构建步骤添加一个超时字段。这是因为Cloud Build构建步骤和构建的默认超时为10分钟,并且App Engine部署所花费的时间可能比完成时间更长。指定更长的超时时间将确保如果gcloud应用程序部署花费的时间超过10分钟,则构建不会超时。

示例:

steps:
- name: 'gcr.io/cloud-builders/gcloud'
  args: ['app','deploy']
  timeout: '1600s'

以上示例将为您的App Engine部署增加27分钟的超时时间。