Comment changer le projet dans GCP à l'aide des commandes CLI

224

Comment puis-je changer le projet en cours d'exécution en un autre projet dans le compte GCP ( Google Cloud Platform ) en utilisant des commandes cli autres que l'utilisation gcloud initmanuelle.

$gcloud projects listlistera les projets en cours sur mon compte. Je veux changer le projet actuel en n'importe quel autre projet de la liste en utilisant une commande cli.

Ebin Davis
la source

Réponses:

447
gcloud config set project my-project

Vous pouvez également définir la variable d'environnement $CLOUDSDK_CORE_PROJECT.

Zachary Newman
la source
58
Il est utile d'obtenir les noms des projets avec:gcloud projects list
sww314
16
Et pour vérifier quel projet est actuellement actif, utilisezgcloud config get-value project
Chris Halcrow
4
Le plus drôle, c'est que je ne change mes projets qu'une ou deux fois par mois. Donc, chaque fois que je dois le rechercher sur Google, je me retrouve à nouveau avec cette réponse et j'essaie de lui donner un autre vote positif :-D
L.Butz
81

Assurez-vous que vous êtes authentifié avec le bon compte:

gcloud auth list
* account 1
  account 2

Passez au compte du projet sinon:

gcloud config set account `ACCOUNT`

Selon le compte, la liste des projets sera différente:

gcloud projects list

- project 1
- project 2...

Passer au projet prévu:

gcloud config set project `PROJECT ID`
Lukas Lukac
la source
24

Vous devez réellement utiliser l'ID du projet et non le nom comme le suggèrent les autres réponses.

Exemple:

gcloud projects list

PROJECT_ID              NAME                  PROJECT_NUMBER
something-staging-2587  something-staging     804012817122
something-production-24 something-production  392181605736

Ensuite:

gcloud config set project something-staging-2587

C'est également la même chose lorsque vous utilisez uniquement le --projectdrapeau avec l'une des commandes:

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

Si vous utilisez le nom, il l'acceptera en silence, mais vous obtiendrez toujours des problèmes de connexion ou d'autorisation lorsque vous tenterez de déployer quelque chose dans le projet.

devius
la source
10

La réponse sélectionnée n'aide pas si vous ne connaissez pas déjà le nom des projets auxquels vous avez ajouté gcloud. Mon flux consiste à répertorier les projets actifs, puis à passer à celui que je souhaite.

gcloud config configurations list

gcloud config configurations activate [NAME]
où [NOM] est répertorié à partir de la commande précédente.

Scott
la source
6

En outre, si vous utilisez plusieurs projets et que vous ne souhaitez pas définir de projet global à chaque fois, vous pouvez utiliser l' indicateur de sélection de projet .

Par exemple: pour connecter une machine virtuelle, nommée my_vmsous un projet nommé my_projectdans Google Cloud Platform:

gcloud --project my_project compute ssh my_vm

De cette façon, vous pouvez travailler avec plusieurs projets et passer facilement de l'un à l'autre en plaçant simplement l' indicateur de projet . Vous pouvez trouver beaucoup plus d'informations sur les autres drapeaux GCP ici .

alpay
la source
4

Pour ce que ça vaut si vous avez plus d'une poignée de projets, ce que je fais, utilisez:

gcloud init

Cela répertoriera tous vos projets et vous donnera la possibilité de modifier les paramètres actuels du projet, d'ajouter une nouvelle configuration de projet ou de basculer:

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:

Il vous demandera toujours de vous connecter et d'afficher les options pour les différents comptes Google que vous pourriez avoir.

Étant donné que je gère plusieurs organisations et projets, cette approche me permet de basculer simplement entre eux.

hoos
la source
3

Je préfère les alias, et pour les choses qui pourraient nécessiter plusieurs commandes, en fonction des besoins de votre projet, je préfère les fonctions ...

Exemple

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
}
mamdouh alramadan
la source
1

Vérifiez les projets disponibles en exécutant: gcloud projects list. Cela vous donnera une liste de projets auxquels vous pouvez accéder. Pour basculer entre les projets: gcloud config set project <project-id>.

De plus, je recommande de vérifier la configuration active avant d'apporter toute modification à la configuration de gcloud. Vous pouvez le faire en exécutant:gcloud config list

PanwarS87
la source
1

Il se peut que je sois en retard pour répondre, mais cette commande m'a fait apprendre beaucoup de choses sur le SDK gcloud

gcloud alpha interactive

Vous découvrirez plus facilement ce dont vous aurez besoin gcloud config set project my-project.

Ce qui est le mieux, c'est la complication des onglets, vous voyez donc la liste des projets en appuyant deux fois sur tab.

confiq
la source
1

Je publie cette réponse pour vous donner un aperçu des différentes façons dont vous pouvez modifier le projet sur GCP. Je vais également expliquer quand utiliser chacune des options suivantes.


Option 1: Cloud CLI - Définir la propriété du projet sur Cloud SDK sur CLI

Utilisez cette option si vous souhaitez exécuter toutes les commandes Cloud CLI sur un projet spécifique.

gcloud config set project <Project-ID>

Avec cela, le projet sélectionné Cloud CLIsera modifié et le projet actuellement sélectionné est surligné en jaune.

entrez la description de l'image ici


Option 2: Cloud CLI - Définir l'indicateur d'ID de projet avec la plupart des commandes

Utilisez cette commande si vous souhaitez exécuter des commandes sur plusieurs projets. Par exemple: créer des clusters dans un projet et utiliser les mêmes configurations pour créer sur un autre projet. Utilisez l'indicateur suivant pour chaque commande.

--project <Project-ID>

Option 3: Cloud CLI - Initialiser les configurations dans CLI

Cette option peut être utilisée si vous avez besoin de configurations distinctes pour différents projets / comptes. Avec cela, vous pouvez facilement basculer entre les configurations à l'aide de la activatecommande. Par exemple: gcloud config configurations activate <congif-name>.

gcloud init

Option 4: Ouvrez un nouveau Cloud Shell avec votre projet préféré

Ceci est préférable si vous n'aimez pas travailler avec des commandes CLI. Appuyez sur le PLUS +bouton pour un nouvel onglet. entrez la description de l'image ici

Ensuite, sélectionnez votre projet préféré.

entrez la description de l'image ici

Keet Sugathadasa
la source
0

J'ajoute des alias aux .bash_alaises pour passer à un autre projet.

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

Voici un script pour générer des alias :) pour tous les projets répertoriés. Veuillez mettre à jour le switch_proj avec des alias de projet uniques dont vous vous souviendrez.

gcloud projects list | awk '{print "alias switch_proj=\"gcloud config set project " $1 "\""}'
Ravishankar Sivasubramaniam
la source
0

Pour mettre à jour votre projet existant vers un autre projet, vous pouvez utiliser cette ligne de commande:

Mise à jour des projets gcloud PROJECT_ID --name = NAME

NOM: sera le nouveau nom de votre projet.

BackToReal
la source
3
La question est de savoir comment changer le projet de travail en cours en un autre, et non pas comment changer le nom du projet. Informations précieuses mais sans rapport avec la question.
P.hunter
0

Vérifiez votre projet en exécutant gcloud config list Puis gcloud config set "project name"

Amir ElGammal
la source
0

Vous pouvez essayer: gcloud config set project [project_id]

Fabián García
la source