部署前检查 GCloud 项目的脚本

Script that checks GCloud project before deploy

所以今天我基本上摸索了大量的流量,因为我部署了一个 gcloud 项目,同时设置了错误的项目。如您所知,当我们部署到 gcloud 时,我们必须确保使用 gcloud config set project [PROJECT_NAME] 选择正确的项目,不幸的是,有时很难记住这一点,因为多个项目需要在出现错误时快速部署。

我想知道是否有人对此有一个很好的解决方案,可以运行预部署 shell 脚本,确保您在部署时部署正确的项目。

提前致谢, 尼基塔

the documentation 所示,gcloud 工具有一些独立于正在使用的子命令 (app deploy) 的标志,例如 --account--verbosity--log-http。这些 gcloud-wide 标志之一是 --project,它可以让您指定要部署到的项目。

现在,要部署您必须使用一个项目,在您的情况下,因为您必须部署到不同的项目,所以您必须在某处指定它。指定项目没有解决方法,因为服务必须有部署到的地方。您有两个选择:

  • 您可以将默认项目设置为您要使用的项目:

    gcloud config set project <project-name>
    gcloud app deploy
    

    请注意,您必须将项目重新设置回您之前使用的项目。

  • 或者您可以使用 --project 标志来指定部署位置。

    gcloud app deploy --project=<project-name>
    

我建议您使用 --project 标志,因为它更特定于部署并且不涉及更改默认项目。此外,您可以继续使用之前的项目 ID,因为它不会更改默认值,它只是部署到另一个项目。

请注意,过去您可以使用 application 标记在 app.yaml 文件中指定项目,但现在已弃用,取而代之的是 --project 标记。

@Ajordat 的回答很好,但我认为有一个更简单的解决方案。

如果您取消设置默认项目,那么您将需要在每个gcloud命令上显式设置--project=${PROJECT}

gcloud config unset project

然后,每个 gcloud 命令将需要:

gcloud ... --project=${PROJECT} ...

不会 禁止在命令中指定不正确的 ${PROJECT} 值,但它确实鼓励更深思熟虑的方法。

一种相关的方法是定义配置(属性集)并在 运行 命令之前启用这些。 IMO 这也是有问题的,我建议取消设置 gcloud config 属性并始终是明确的。

见: https://cloud.google.com/sdk/gcloud/reference/config/configurations