如何使用cli命令在gcp中更改项目

时间:2017-10-16 12:56:28

标签: google-cloud-platform command-line-interface gcloud

如何使用 cli命令将当前正在运行的项目更改为GCP( Google Cloud Platform )帐户中的其他项目,而不是使用 gcloud init 手动。

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

18 个答案:

答案 0 :(得分:208)

gcloud config set project my-project

您也可以设置环境变量$CLOUDSDK_CORE_PROJECT

答案 1 :(得分:28)

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

gcloud auth list
* account 1
  account 2

如果没有,请更改为项目帐户:

gcloud config set account `ACCOUNT`

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

gcloud projects list

- project 1
- project 2...

切换到预期项目:

gcloud config set project `PROJECT NAME`

答案 2 :(得分:10)

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

如果使用该名称,它将默默接受它,但是在尝试将某些内容部署到项目时,您总是会遇到连接或权限问题。

答案 3 :(得分:4)

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

例如:在Google Cloud Platform中名为my_vm的项目下连接名为my_project的虚拟机:

  

gcloud -项目 my_project计算ssh my_vm

这样,您可以处理多个项目,只需放置 project 标志即可轻松地在多个项目之间进行更改。您可以从here中找到有关其他GCP标志的更多信息。

答案 4 :(得分:4)

可能我来晚了,但是此命令使我对gcloud SDK有了很多了解

gcloud alpha interactive

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

但是,我最喜欢gcloud的是制表符,因此,如果您使用配置来配置gcloud config(我知道这听起来很奇怪,但运行此命令gcloud config configurations list),则可以轻松地在自己通常的项目之间切换工作:

gcca

我使用的别名是: alias gcca="gcloud config configurations activate",并且可以与zsh gcloud插件配合使用。

编辑: 要配置其中一种配置,我通常会这样做

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

您也可以使用ENV变量,但是我喜欢以这种方式配置它...

答案 5 :(得分:1)

我更喜欢别名,对于可能需要多个命令的东西,根据您的项目需求,我更喜欢功能......

实施例

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
}

答案 6 :(得分:1)

<块引用>

gcloud 项目列表

获取项目列表。

<块引用>

gcloud 配置集项目 [Project-ID]

用于设置默认项目。

您还可以将您的项目 ID 导出到变量中,以便在以后的命令中使用,这有助于避免出现以下错误。

<块引用>

MY_PROJECT_ID=[项目 ID]

<块引用>

回显 $MY_PROJECT_ID

答案 7 :(得分:1)

我正在发布此答案,以深入了解您可以在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:Cloud CLI-在CLI中初始化配置

如果您需要为不同的项目/帐户进行单独的配置,则可以使用此选项。这样,您可以使用activate命令轻松地在配置之间切换。例如:gcloud config configurations activate <congif-name>

gcloud init

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

如果您不喜欢使用CLI命令,则首选此选项。按PLUS +按钮进入新标签页。 enter image description here

下一步,选择您喜欢的项目。

enter image description here

答案 8 :(得分:1)

运行以下命令检查可用项目:gcloud projects list。这将为您提供可以访问的项目列表。 要在项目之间切换:gcloud config set project <project-id>

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

答案 9 :(得分: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:

它将始终要求您登录并显示您可能拥有的其他Google帐户的选项。

鉴于我管理多个组织和项目,因此该方法使我可以在它们之间进行简单切换。

答案 10 :(得分:1)

如果您不知道已添加gcloud的项目名称,那么选择的答案将无济于事。我的流程是列出活动的项目,然后切换到我想要的项目。

gcloud config configurations list

gcloud config configurations activate [NAME]
在上一个命令中列出了[NAME]。

答案 11 :(得分:0)

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

gcloud项目更新了PROJECT_ID --name = NAME

NAME:将是您的项目的新名称。

答案 12 :(得分:0)

通过运行gcloud配置列表检查项目 然后gcloud config设置“项目名称”

答案 13 :(得分:0)

您可以尝试:gcloud配置设置项目[project_id]

答案 14 :(得分:0)

我在.bash_alaises中添加别名以切换到其他项目。

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

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

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

答案 15 :(得分:0)

在 ~/.bashrc 中添加以下脚本,并请用您需要的任何名称替换项目名称(项目名称)

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}]}"
}

答案 16 :(得分:0)

只需使用 gcloud projects list 即可获取您拥有的项目。获取要使用的项目的 PROJECT_ID 之后使用 gcloud set project --project=PROJECT_ID 设置项目。

答案 17 :(得分:0)

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

gcloud config set project <your_project_name>