如何使用cli命令,而不是手动使用gcloud init,将GCP(谷歌云平台)账户下当前正在运行的项目修改为其他项目?

Gcloud项目列表将列出在我的帐户上运行的项目。我想使用cli命令将当前项目更改为列表中的任何其他项目。


当前回答

请确保您已使用正确的帐户进行身份验证:

gcloud auth list
* account 1
  account 2

如果不是,则更改项目帐户:

gcloud config set account `ACCOUNT`

根据不同的帐户,项目列表将有所不同:

gcloud projects list

- project 1
- project 2...

切换到预定项目:

gcloud config set project `PROJECT ID`

其他回答

做以下几点:

1 - gcloud认证列表 2 - gcloud项目列表 3 - gcloud配置项目*投影* (将项目id替换为实际项目id)

gcloud config set project $MY_PROJECT_ID

#=>

Updated property [core/project].

您还可以设置环境变量$CLOUDSDK_CORE_PROJECT。

在~/中添加下面的脚本。Bashrc和做,请替换项目名称(projectname)与任何你需要的名称

function s() {
        array=($(gcloud projects list | awk /projectname/'{print $1}'))
        for i in "${!array[@]}";do printf "%s=%s\n" "$i" "${array[$i]}";done
        echo -e "\nenter the number to switch project:\c"
        read project
        [ ${array[${project}]} ] || { echo "project not exists"; exit 2; }
        printf "\n**** Running: gcloud config set project ${array[${project}]} *****\n\n"
        eval "gcloud config set project ${array[${project}]}"
}

我确实更喜欢别名,对于可能需要多个命令的东西,根据您的项目需求,我更喜欢函数……

例子

function switchGCPProject() {
        gcloud config set project [Project Name]
        // if you are using GKE use the following
        gcloud config set container/cluster [Cluster Name]
        // if you are using GCE use the following
        gcloud config set compute/zone [Zone]
        gcloud config set compute/region [region]
        // if you are using GKE use the following
        gcloud container clusters get-credentials [cluster name] --zone [Zone] --project [project name]
        export GOOGLE_APPLICATION_CREDENTIALS=path-to-credentials.json
}

此外,如果您正在使用多个项目,并且不想每次都设置全局项目,您可以使用选择项目标志。

例如:连接谷歌云平台my_project项目下名为my_vm的虚拟机:

Gcloud——project my_project compute SSH my_vm

通过这种方式,您可以使用多个项目,并通过添加项目标志轻松地在它们之间进行更改。你可以在这里找到更多关于其他GCP标志的信息。