web-dev-qa-db-fra.com

Comment changer le projet dans gcp en utilisant les commandes cli

Comment puis-je modifier le projet en cours d'exécution en un autre projet dans le compte GCP ( Google Cloud Platform ) à l'aide de commandes cli autre que l'utilisation gcloud init manuellement.

$gcloud projects list listera les projets en cours d'exécution sur mon compte. Je souhaite remplacer le projet actuel par un autre projet de la liste à l'aide d'une commande cli.

122
Ebin Davis
gcloud config set project my-project

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

265
Zachary Newman

Assurez-vous d'être authentifié avec le bon compte:

gcloud auth list
* account 1
  account 2

Changer sur le compte du projet sinon:

gcloud config set account `ACCOUNT`

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

gcloud projects list

- project 1
- project 2...

Passer au projet prévu:

gcloud config set project `PROJECT ID`
40
BlocksByLukas

En réalité, vous devez utiliser l'ID de projet et non le nom, comme l'indiquent 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 drapeau --project avec l'une des commandes:

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

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

16
devius

De même, si vous utilisez plusieurs projets et que ne souhaitez pas définir un projet global à chaque fois, , vous pouvez utiliser sélectionner le projet drapeau.

Par exemple: pour connecter une machine virtuelle nommée my_vm sous un projet nommé my_project dans Google Cloud Platform:

gcloud - projet mon_projet calcule ssh mon_vm

De cette façon, vous pouvez travailler avec plusieurs projets et passer facilement d’un projet à l’autre en mettant simplement le drapeau project . Vous pouvez trouver beaucoup plus d’informations sur les autres drapeaux GCP de here .

6
alpay

La réponse sélectionnée n'aide pas si vous ne connaissez pas le nom des projets que vous avez déjà ajoutés à gcloud. Mon déroulement 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.

3
Scott

Je préfère les alias, et pour les choses qui peuvent 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
}
3
mamdouh alramadan

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

gcloud init

Ceci listera 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 changer:

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 des 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.

1
hoos

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 listés. Mettez à jour le paramètre switch_proj avec des alias de projet uniques que vous pouvez vous rappeler.

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