如何使用cli命令,而不是手动使用gcloud init,将GCP(谷歌云平台)账户下当前正在运行的项目修改为其他项目?
Gcloud项目列表将列出在我的帐户上运行的项目。我想使用cli命令将当前项目更改为列表中的任何其他项目。
如何使用cli命令,而不是手动使用gcloud init,将GCP(谷歌云平台)账户下当前正在运行的项目修改为其他项目?
Gcloud项目列表将列出在我的帐户上运行的项目。我想使用cli命令将当前项目更改为列表中的任何其他项目。
当前回答
做以下几点:
1 - gcloud认证列表 2 - gcloud项目列表 3 - gcloud配置项目*投影* (将项目id替换为实际项目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
如果你使用这个名字,它会默默地接受它,但是当你试图将一些东西部署到项目中时,你总是会遇到连接或权限问题。
此外,如果您正在使用多个项目,并且不想每次都设置全局项目,您可以使用选择项目标志。
例如:连接谷歌云平台my_project项目下名为my_vm的虚拟机:
Gcloud——project my_project compute SSH my_vm
通过这种方式,您可以使用多个项目,并通过添加项目标志轻松地在它们之间进行更改。你可以在这里找到更多关于其他GCP标志的信息。
Gcloud项目列表
获取项目列表。
gcloud配置项目
用于设置默认项目。
您还可以将项目id导出为变量,以便在将来的命令中使用,这有助于避免以下输入的错别字。
MY_PROJECT_ID =(项目号)
echo $ MY_PROJECT_ID
我确实更喜欢别名,对于可能需要多个命令的东西,根据您的项目需求,我更喜欢函数……
例子
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}]}"
}