productos mac instalar google como google-cloud-platform command-line-interface gcp gcloud

google-cloud-platform - mac - google cloud sdk documentation



Cómo cambiar el proyecto en gcp usando comandos cli (8)

¿Cómo puedo cambiar el proyecto actual en ejecución a otro proyecto en la cuenta de GCP ( Google Cloud Platform ) usando comandos cli que no sean gcloud init manualmente?

$gcloud projects list enumerará los proyectos que se ejecutan en mi cuenta. Quiero cambiar el proyecto actual a cualquier otro proyecto de la lista usando un comando cli.


Además, si está utilizando más de un proyecto y no desea establecer un proyecto global cada vez, puede usar la marca de selección de proyecto .

Por ejemplo: para conectar una máquina virtual, llamada my_vm en un proyecto llamado my_project en Google Cloud Platform:

gcloud --project my_project compute ssh my_vm

De esta manera, puede trabajar con varios proyectos y cambiarlos fácilmente con solo poner la bandera del proyecto . Puede encontrar mucha más información sobre otros indicadores de GCP here .


Agrego alias a .bash_alaises para cambiar a un proyecto diferente.

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

Aquí hay un script para generar alias :) para todos los proyectos enumerados. Actualice switch_proj a alias de proyecto únicos que pueda recordar.

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


Asegúrese de estar autenticado con la cuenta correcta:

gcloud auth list * account 1 account 2

Cambie a la cuenta del proyecto si no:

gcloud config set account `ACCOUNT`

Dependiendo de la cuenta, la lista de proyectos será diferente:

gcloud projects list - project 1 - project 2...

Cambiar al proyecto previsto:

gcloud config set project `PROJECT NAME`


En realidad, debe usar la ID del proyecto y no el nombre, como implican las otras respuestas.

Ejemplo:

gcloud projects list PROJECT_ID NAME PROJECT_NUMBER something-staging-2587 something-staging 804012817122 something-production-24 something-production 392181605736

Entonces:

gcloud config set project something-staging-2587

También es lo mismo cuando se usa solo la bandera --project con uno de los comandos:

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

Si usa el nombre, lo aceptará silenciosamente, pero siempre obtendrá problemas de conexión o permisos cuando intente implementar algo en el proyecto.


La respuesta seleccionada no ayuda si no conoce el nombre de los proyectos que ya ha agregado gcloud. Mi flujo es enumerar los proyectos activos, luego cambiar al que quiero.

gcloud config configurations list

gcloud config configurations activate [NAME]
donde [NOMBRE] aparece en la lista del comando anterior.


Por lo que vale la pena si tiene más de un puñado de proyectos, lo que hago, use:

gcloud init

Esto enumerará todos sus proyectos y le dará la opción de cambiar la configuración actual del proyecto, agregar una nueva configuración de proyecto o cambiar:

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:

Siempre le pedirá que inicie sesión y muestre opciones para las diferentes cuentas de Google que pueda tener.

Dado que administro múltiples organizaciones y proyectos, este enfoque me permite simplemente cambiar entre ellos.


Prefiero los alias, y para cosas que pueden necesitar múltiples comandos, en función de las necesidades de su proyecto, prefiero las funciones ...

Ejemplo

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 config set project my-project

También puede establecer la variable de entorno $CLOUDSDK_CORE_PROJECT .