部署到 Google App Engine 时出现 CLI 400 错误

CLI 400 error deploying to Google App Engine

今天我在尝试通过命令行将我的应用程序部署到 Google App Engine 时遇到了一个新错误:

Updating module [default]...-ERROR: (gcloud.preview.app.deploy) Server responded with code [400]:
  Bad Request Unexpected HTTP status 400.
  Your app may not have more than 120 versions.
  Please delete one of the existing versions before trying to create a new version.

我正在使用 --promote 部署到顶层,而不是创建其他版本。我该如何解决这个错误?

所以我找到了一种通过 Web GUI (https://console.developers.google.com) 来完成此操作的方法。如果您转到 "App Engine" 选项卡,则会有一个 "Versions" 选项。单击它,它将带您到版本列表。显然,每次使用 --promote 部署时都会创建一个,此外还会为您部署的每个版本创建一个。可以选择这些,然后有一个垃圾桶可以点击它们来删除它们。

虽然这不是我想要的 CLI 解决方案,但它确实有效。

如果您感兴趣,也可以通过命令行执行此操作。

gcloud preview app versions list

gcloud preview app modules delete <module_name> --version=<version_number>


2017 年更新 (另请参阅 CLI 400 错误部署到 Google App Engine )

List all versions:

gcloud app versions list

Delete versions v1 and v2:

gcloud app versions delete v1 v2

https://cloud.google.com/sdk/gcloud/reference/app/versions/

以前的命令行答案现已弃用。备选方案如下:

要列出所有版本:

gcloud app versions list

删除版本:

gcloud app versions delete v1 v2

更多信息:https://cloud.google.com/sdk/gcloud/reference/app/versions/delete

希望对您有所帮助!

如果有人正在为此寻找 cloudbuild.yaml 更改,那么这里是示例 YAML 配置文件

steps:
 - name: 'gcr.io/cloud-builders/docker'
   args: [ 'build', '-t', '<dockerRepository>', '.' ]

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

 - name: "gcr.io/cloud-builders/gcloud"
   entrypoint: 'bash'
   args:
   - '-eEuo'
   - 'pipefail'
   - '-c'
   - |-
     gcloud app versions list --format="value(version.id)" --sort-by="~version.createTime" | tail -n +6 | xargs -r gcloud app versions delete --quiet