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

Posted

技术标签:

【中文标题】如何使用 CLI 命令更改 GCP 中的项目【英文标题】:How to change the project in GCP using CLI commands 【发布时间】:2018-03-28 00:13:18 【问题描述】:

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

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

【问题讨论】:

【参考方案1】: 推荐的答案 Google Cloud
gcloud config set project $MY_PROJECT_ID

#=>

Updated property [core/project].

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

【讨论】:

获取项目名称有帮助:gcloud projects list 要检查哪个项目当前处于活动状态,请使用gcloud config get-value project 有趣的是,我每个月只切换一次或两次项目。所以每次我必须用谷歌搜索它并再次得到这个答案并尝试给它另一个赞成票:-D 切换项目后,获取项目配置。否则 kubectl 不会获得新的命名空间。 gcloud container clusters get-credentials --region=<region-name> <cluster-name> 他们为什么不再写这样的文档了,该死的救命稻草。谢谢!!【参考方案2】:

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

例子

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

【讨论】:

【参考方案3】:

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

gcloud config configurations list

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

【讨论】:

这就是我的做法......我正在考虑制作别名“gcca develop”【参考方案4】:

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

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`

【讨论】:

【参考方案5】:

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

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

gcloud --project my_project 计算 ssh my_vm

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

【讨论】:

【参考方案6】:

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

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

【讨论】:

【参考方案7】:

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

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

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

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

【讨论】:

【参考方案8】:

如果你有多个项目,我这样做,那么它的价值是什么:

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 帐户的选项。

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

【讨论】:

【参考方案9】:

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

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

【讨论】:

【参考方案10】:

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

gcloud 项目更新 PROJECT_ID --name=NAME

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

【讨论】:

问题在于如何将当前工作项目更改为另一个项目,而不是如何更改项目名称。有价值的信息,但与问题无关。【参考方案11】:

通过运行 gcloud config list 检查您的项目 然后 gcloud config 设置“项目名称”

【讨论】:

【参考方案12】:

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

【讨论】:

【参考方案13】:

可能是我回答迟了,但是这个命令让我学到了很多关于 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 变量,但我喜欢这样配置...

【讨论】:

这是一个很好的答案。以下是 gcloud 配置命令背后的文档:cloud.google.com/sdk/gcloud/reference/topic/configurations 感谢@jket,我花了一段时间才以我认为完美的方式自定义 gcloud。我很高兴分享,其他人也觉得它合适。【参考方案14】:

我发布此答案是为了深入了解您可以通过多种方式更改 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 &lt;congif-name&gt;.

gcloud init

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

如果您不喜欢使用 CLI 命令,这是首选。按PLUS + 按钮打开一个新标签。

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

【讨论】:

【参考方案15】:

在 ~/.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】:

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

【讨论】:

【参考方案17】:

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

gcloud config set project <your_project_name>

【讨论】:

【参考方案18】:

gcloud 项目列表

获取项目列表。

gcloud 配置设置项目 [Project-ID]

用于设置默认项目。

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

MY_PROJECT_ID=[项目 ID]

回显 $MY_PROJECT_ID

【讨论】:

【参考方案19】:

执行以下操作:

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

【讨论】:

以上是关于如何使用 CLI 命令更改 GCP 中的项目的主要内容,如果未能解决你的问题,请参考以下文章

我可以完全从 CLI 或脚本创建和配置 GCP 项目 + Firebase 吗?

GCP:如何动态更改 VM 实例的公共 IP 并保持连接

如何使用 CLI 中的 pipewire 使应用程序静音

如何更改 ember-cli 中的 dist 文件夹路径?

如何使用 Amplify CLI“拉取”命令拉取在 AppSync Web 控制台上所做的更改

GCP:如何更改VPC子网区域?