部署前检查 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
所以今天我基本上摸索了大量的流量,因为我部署了一个 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