如何使用CLI命令更改GCP中的项目

如何使用cli命令而不是手动使用gcloud init将当前运行的项目更改为GCP (谷歌云平台)帐户中的另一个项目?

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

308071 次浏览
gcloud config set project $MY_PROJECT_ID


#=>


Updated property [core/project].

你也可以设置环境变量$CLOUDSDK_CORE_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
}

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

gcloud config configurations list

< p > gcloud config configurations activate [NAME] < br >

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

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`

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

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

gcloud ——项目 my_project计算ssh my_vm

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

您应该实际使用项目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

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

我向.bash_alaises添加别名以切换到不同的项目。

alias switch_proj1="gcloud config set project ************"

这是一个脚本,为列出的所有项目生成别名:) 请将switch_proj更新为您能记住的唯一项目别名

gcloud projects list | awk '{print "alias switch_proj=\"gcloud config set project " $1 "\""}'

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

gcloud init

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

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 projects list检查可用的项目。这将为您提供一个可以访问的项目列表。 在项目之间切换:gcloud config set project <project-id>.

另外,我建议在对gcloud配置进行任何更改之前检查活动配置。你可以通过运行:gcloud config list来实现

要将现有项目更新到另一个项目,您可以使用以下命令行:

gcloud项目更新PROJECT_ID——name= name

NAME:将是项目的新名称。

执行gcloud config list命令检查您的项目 然后gcloud配置“项目名称”

您可以尝试:gcloud config set project [project_id]

可能是我回答的晚了,但是这个命令让我学到了很多关于gcloud SDK的知识

gcloud alpha interactive

自己发现需要gcloud config set project my-project会更容易。

然而,我喜欢gcloud的tab补全功能,所以如果你用配置配置你的gcloud配置(我知道这听起来很奇怪,但运行这个命令gcloud config configurations list),你可以很容易地在你自己的项目之间切换:

gcca

我使用的别名是: alias gcca="gcloud config configurations activate",它与zsh gcloud插件工作良好 < p >编辑: 要配置其中一个配置,我通常这样做

gcloud config configurations create [CUSTOM_NAME]
gcloud auth login # you can also manually set but this is for lazy one
gcloud config set project [gcp-project-id]
gcloud config set compute/zone europe-west3-c
gcloud config set compute/region europe-west3

你也可以使用ENV变量来配置区域/项目,但我喜欢这样配置,这样我就可以在项目之间使用制表符。

我发布这个答案是为了让您了解在GCP上更改项目的多种可用方法。我还将解释何时使用以下每个选项。


选项1:Cloud CLI -在CLI上设置Cloud SDK上的项目属性

如果希望在特定项目上运行所有Cloud CLI命令,请使用此选项。

gcloud config set project <Project-ID>

这样,在Cloud CLI上选中的项目将会改变,当前选中的项目将用黄色突出显示。

enter image description here


选项2:Cloud CLI -在大多数命令中设置项目ID标志

当需要在多个项目上执行命令时,使用此命令。例如:在一个项目中创建集群,并使用相同的配置在另一个项目中创建。对每个命令使用以下标志。

--project <Project-ID>

选项3:云命令行-在命令行中初始化配置

如果需要为不同的项目/帐户单独配置,可以使用此选项。有了这个,你可以通过使用activate命令轻松地在配置之间切换。gcloud config configurations activate <congif-name>

gcloud init

选项4:使用首选项目打开新的Cloud Shell

如果您不喜欢使用CLI命令,则首选此选项。按PLUS +按钮创建新选项卡。 enter image description here < / p >

接下来,选择您喜欢的项目。

enter image description here

在~/中添加下面的脚本。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}]}"
}

只需使用gcloud projects list来获得你拥有的项目。获取要使用的对象的PROJECT_ID 之后使用gcloud set project --project=PROJECT_ID来设置项目

可以使用gcloud命令更改项目:

gcloud config set project <your_project_name>

Gcloud项目列表

获取项目列表。

gcloud配置项目

用于设置默认项目。

您还可以将项目id导出为变量,以便在将来的命令中使用,这有助于避免以下输入的错别字。

MY_PROJECT_ID =(项目号)

echo $ MY_PROJECT_ID

做以下几点:

1 - gcloud auth list
2 - gcloud projects list
3 - __abc0 (将项目id替换为实际项目id)

gcloud配置project <