gcloud:是否可以根据当前文件夹更改默认项目?

gcloud: is it possible to change the default project based on the current folder?

我正在处理几个 gcloud 项目,我厌倦了每次需要调用命令时都必须输入 --project XYZ,或者更糟的是,如果我忘记了,命令会在错误的项目上执行将其添加到

是的,通过使用 gcloud configurations together with direnv

创建一个配置(这也会激活它):

  • gcloud config configurations create <cool_new_config>
  • gcloud config set project <project>

安装direnv。将它连接到您的 shell。对于 bash 我使用 ~/.bash_profile 而不是定向 ~/.bashrc.

导航到要进行切换的项目文件夹。

  • 创建一个名为 .envrc 的文件
  • 添加行 export CLOUDSDK_ACTIVE_CONFIG_NAME=<cool_new_config>
  • 白名单文件 direnv allow

验证功能:

  • 打开一个新终端window
  • 激活default/prior配置
  • 导航到文件夹
  • gcloud config configurations list
  • 确认

可选:重建其余配置

  • 查看所有配置:gcloud config configurations list
  • 描述旧配置 gcloud config configurations describe <default>
  • 登录:gcloud auth login
  • 设置地区:gcloud config set compute/region <us-central1>
  • 设置区域:gcloud config set compute/zone <us-central1-a>
  • 等等