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

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


当前回答

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

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

Gcloud——project my_project compute SSH my_vm

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

其他回答

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

例子

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
}

如果你有很多项目,就像我一样,使用:

云热

这将列出你所有的项目,并让你选择更改当前项目设置,添加一个新的项目配置或切换:

Pick configuration to use:
 [1] Re-initialize this configuration [esqimo-preprod] with new settings
 [2] Create a new configuration
 [3] Switch to and re-initialize existing configuration: [default]
 [4] Switch to and re-initialize existing configuration: [project 1]
 [5] Switch to and re-initialize existing configuration: [project 2]
Please enter your numeric choice:

它总是会要求您登录并显示您可能拥有的不同谷歌帐户的选项。

鉴于我管理着多个组织和项目,这种方法让我可以简单地在它们之间切换。

gcloud config set project <PROJECT_ID>

如果您不知道已经添加了gcloud的项目的名称,那么所选的答案将不起作用。我的流程是列出活动项目,然后切换到我想要的项目。

Gcloud配置配置列表

gcloud配置激活 其中[NAME]从前面的命令中列出。

您应该实际使用项目ID,而不是其他答案暗示的名称。

例子:

gcloud projects list

PROJECT_ID              NAME                  PROJECT_NUMBER
something-staging-2587  something-staging     804012817122
something-production-24 something-production  392181605736

然后:

gcloud config set project something-staging-2587

在其中一个命令中只使用——project标志也是一样的:

gcloud --project something-staging-2587 compute ssh my_vm

如果你使用这个名字,它会默默地接受它,但是当你试图将一些东西部署到项目中时,你总是会遇到连接或权限问题。