繁体   English   中英

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

[英]How to change the project in GCP using CLI commands

除了手动使用gcloud init之外,如何使用cli 命令将当前正在运行的项目更改为 GCP( Google Cloud Platform )帐户中的另一个项目?

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

gcloud config set project my-project-id

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

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

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`

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

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

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

gcloud config configurations list

gcloud config configurations activate [NAME]
其中 [NAME] 从先前的命令中列出。

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

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

gcloud --project my_project 计算 ssh my_vm

通过这种方式,您可以使用多个项目并通过放置项目标志轻松地在它们之间进行更改。 您可以从此处找到有关其他 GCP 标志的更多信息。

如果您有多个项目(我这样做),那么它的价值是什么,请使用:

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 SDK

gcloud alpha interactive

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

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

总汇

我使用的别名是: 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 变量,但我喜欢以这种方式配置...

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

示例

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

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

我发布此答案是为了深入了解您可以通过多种方式更改 GCP 上的项目。 我还将解释何时使用以下每个选项。


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

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

gcloud config set project <Project-ID>

这样, Cloud CLI上选定的项目将发生变化,当前选定的项目以黄色突出显示。

在此处输入图片说明


选项 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 +按钮打开新标签。 在此处输入图片说明

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

在此处输入图片说明

请执行下列操作:

1 - gcloud auth list
2 - gcloud projects list
3 - gcloud config set project *projectid* (用实际项目ID替换项目ID)

我将别名添加到 .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 项目列表

获取项目列表。

gcloud 配置集项目 [项目 ID]

用于设置默认项目。

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

MY_PROJECT_ID=[项目 ID]

回声 $MY_PROJECT_ID

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

gcloud 项目更新 PROJECT_ID --name=NAME

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

通过运行 gcloud config list 检查您的项目然后 gcloud config set "project name"

你可以试试:gcloud config set project [project_id]

在 ~/.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}]}"
}

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

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

gcloud config set project <your_project_name>

gcloud 配置集项目 <PROJECT_ID>

要使用 CLI 命令更改 GCP 中的项目,您可以使用 gcloud 命令行工具。 以下是如何更改为不同项目的示例:

gcloud config set project YOUR_PROJECT_ID

您还可以使用以下命令切换到不同的项目:

gcloud config set project YOUR_PROJECT_ID

您还可以使用以下命令检查当前项目上下文:

gcloud config get-value project

您还可以使用 gcloud init 命令在项目之间切换。 此命令允许您 select 现有项目或创建新项目,以及为项目设置默认计算区域和区域。

请注意,您需要拥有正确的权限才能在项目之间切换。

gcloud init

您还可以使用 gcloud projects list 命令查看您有权访问的所有项目的列表。

gcloud projects list

这些是使用 CLI 命令在 GCP 中更改项目的一些方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM