Google cloud platform 如何使用CLI命令在GCP中更改项目

Google cloud platform 如何使用CLI命令在GCP中更改项目,google-cloud-platform,command-line-interface,gcloud,Google Cloud Platform,Command Line Interface,Gcloud,如何使用cli命令将当前正在运行的项目更改为GCP(谷歌云平台)帐户中的另一个项目,而不是手动使用gcloud init $gcloud projects list将列出在我的帐户上运行的项目。我想使用cli命令将当前项目更改为列表中的任何其他项目 gcloud config set project my-project-id 您还可以设置环境变量$CLOUDSDK\u CORE\u PROJECT我确实更喜欢别名,对于可能需要多个命令的内容,根据您的项目需要,我更喜欢函数 范例 functi

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

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

gcloud config set project my-project-id

您还可以设置环境变量
$CLOUDSDK\u CORE\u 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配置列表

gcloud配置激活[名称]


其中,前面的命令中列出了[NAME]。

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

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`

此外,如果要使用多个项目,并且不希望每次都设置全局项目,则可以使用选择项目标志

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

gcloud--project我的项目计算ssh我的虚拟机


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

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

例如:

gcloud projects list

PROJECT_ID              NAME                  PROJECT_NUMBER
something-staging-2587  something-staging     804012817122
something-production-24 something-production  392181605736
然后:

在以下命令之一中仅使用
--project
标志也是一样的:

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

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

我向.bash\u 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:
它总是要求您登录并显示您可能拥有的不同google帐户的选项


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

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


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

将现有项目更新为其他项目,可以使用以下命令行:

gcloud项目更新项目\u ID--name=name


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

通过运行gcloud config list检查项目
然后gcloud config set“project name”

您可以尝试:gcloud config set project[project\u id]

可能是我回答晚了,但是这个命令让我了解了很多关于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变量,但我喜欢以这种方式配置它…

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


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

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

gcloud config set project <Project-ID>

选项3:Cloud CLI-初始化CLI中的配置

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


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

如果您不喜欢使用CLI命令,则首选此选项。按
PLUS+
按钮可创建新选项卡。

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


将此脚本添加到~/.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项目列表
即可获得您拥有的项目。获取要使用的项目的项目ID
然后使用
gcloud set project--project=project\u ID
设置项目。

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

gcloud config set project <your_project_name>
gcloud配置集项目
gcloud项目列表

获取项目列表

gcloud配置集项目[项目ID]

用于设置默认项目

alias switch_proj1="gcloud config set project ************"
Y
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 config set project <your_project_name>