如何使用cli命令,而不是手动使用gcloud init,将GCP(谷歌云平台)账户下当前正在运行的项目修改为其他项目?
Gcloud项目列表将列出在我的帐户上运行的项目。我想使用cli命令将当前项目更改为列表中的任何其他项目。
如何使用cli命令,而不是手动使用gcloud init,将GCP(谷歌云平台)账户下当前正在运行的项目修改为其他项目?
Gcloud项目列表将列出在我的帐户上运行的项目。我想使用cli命令将当前项目更改为列表中的任何其他项目。
当前回答
我发布这个答案是为了让您了解在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:云命令行-在命令行中初始化配置
如果需要为不同的项目/帐户单独配置,可以使用此选项。这样,您就可以使用activate命令轻松地在配置之间切换。例如:gcloud config configurations activate < config -name>。
gcloud init
选项4:使用首选项目打开新的Cloud Shell
如果您不喜欢使用CLI命令,则首选这种方法。按下加号+按钮来创建新标签。
接下来,选择您喜欢的项目。
其他回答
请确保您已使用正确的帐户进行身份验证:
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`
gcloud config set project $MY_PROJECT_ID
#=>
Updated property [core/project].
您还可以设置环境变量$CLOUDSDK_CORE_PROJECT。
可能是我回答的晚了,但是这个命令让我学到了很多关于gcloud SDK的知识
Gcloud alpha交互
自己发现需要gcloud config set project my-project更容易。
然而,我喜欢gcloud的tab补全功能,所以如果你用配置来配置你的gcloud配置(我知道这听起来很奇怪,但是运行这个命令gcloud config configurations list),你可以很容易地在你自己的项目之间切换:
我使用的别名是: 别名gcca="gcloud配置配置激活",它可以与ZSH gcloud插件一起工作。
编辑: 为了配置其中一个配置,我通常这样做
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变量来配置区域/项目,但我喜欢这样配置,这样我就可以在项目之间使用制表符。
我确实更喜欢别名,对于可能需要多个命令的东西,根据您的项目需求,我更喜欢函数……
例子
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
}
在~/中添加下面的脚本。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}]}"
}