Conseils d'utilisation pour gcloud compute


Cette page contient des conseils qui peuvent vous être utiles lorsque vous utilisez l'outil de ligne de commande gcloud pour gérer vos ressources Compute Engine. Pour obtenir la liste complète de tous les indicateurs et commandes gcloud compute disponibles, vous pouvez utiliser l'aide intégrée de la commande (--help) ou la documentation de référence ou la documentation principale de gcloud.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

Récupérer des informations sur les ressources

Vous pouvez récupérer des informations sur les ressources Compute Engine de deux manières : en obtenant la liste des ressources à l'aide de la commande list ou en obtenant des détails sur une ressource spécifique avec la commande describe.

Récupérer des ressources à l'aide de commandes list

Les commandes list sont conçues pour renvoyer un tableau facilement lisible contenant les données les plus pertinentes pour les ressources demandées. Vous pouvez éventuellement filtrer vos résultats pour obtenir une liste plus courte et plus pertinente.

Filtrage par nom via des expressions régulières
Vous pouvez utiliser la syntaxe RE2 pour faire correspondre des noms de ressources (par exemple, des noms d'instance ou de disque). Reportez-vous à page de description de la commande gcloud compute instances list.
Indicateurs de commande
--limit

Nombre maximal de résultats à renvoyer. Cette option est particulièrement utile lorsqu'elle est utilisée avec l'option --sort-by décrite dans la section Récupérer des ressources à l'aide de commandes describe.

--sort-by SORT_BY

Méthode de tri sur un champ, le cas échéant. Pour effectuer un tri par ordre décroissant, ajoutez un tilde ("~")en préfixe de la valeur. Cette option interagit avec d'autres options, qui sont appliquées dans l'ordre suivant : --flatten,--sort-by, --filter, --limit.

Récupérer des ressources à l'aide de commandes describe

Les commandes describe sont conçues pour afficher des données sur une ressource spécifique. Vous devez indiquer le nom de la ressource dans la commande describe. Si vous avez oublié le nom de la ressource, vous pouvez exécuter une commande list pour obtenir la liste des ressources. Par exemple, les deux commandes ci-dessous illustrent un scénario dans lequel vous répertoriez des images pour obtenir un nom d'image et son projet associé, afin de pouvoir les fournir en tant qu'entrées d'une commande describe :

gcloud compute images list
NAME                                PROJECT        FAMILY     DEPRECATED STATUS
...
centos-7-v20170620                  centos-cloud   centos-7              READY
...
debian-9-stretch-v20170619          debian-cloud   debian-9              READY
...
gcloud compute images describe debian-9-stretch-v20170619 --project debian-cloud

Le format de sortie par défaut des commandes describe est YAML, mais vous pouvez utiliser l'indicateur --format pour choisir entre les formats de sortie JSON, YAML et texte. Le format JSON peut se révéler utile si vous comptez analyser les résultats, tandis que le format texte place chaque propriété sur une ligne distincte.

gcloud compute regions describe us-central1 --format json
{
  "creationTimestamp": "2013-09-06T10:36:54.847-07:00",
  "description": "us-central1",
  "id": "6837843067389011605",
  "kind": "compute#region",
  "name": "us-central1",
  ...
  "status": "UP",
  "zones": [
    "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a",
    "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-b",
    "https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f"
  ]
}

Exemples

Exemples de commandes list

Lorsque vous faites une requête pour lister vos ressources, vous obtenez un tableau des données récapitulatives facile à lire. Par exemple, pour obtenir des données récapitulatives sur les instances de votre projet, utilisez la commande instances list :

gcloud compute instances list
NAME               ZONE          MACHINE_TYPE  INTERNAL_IP    EXTERNAL_IP     STATUS
example-instance   asia-east1-b  e2-standard-2 10.240.95.199  107.167.182.44  RUNNING
example-instance2  us-central1-a e2-standard-2 10.240.173.254 23.251.148.121  RUNNING
test-instance      us-central1-a e2-standard-2 10.240.118.207 23.251.153.172  RUNNING

Vous pouvez filtrer les résultats des commandes list avec des expressions régulières en incluant l'indicateur --filter avec un opérateur key ~ value. Par exemple, filtrez la liste des instances pour n'inclure que les instances dont le nom contient la chaîne "test" :

gcloud compute instances list --filter="name ~ .*test.*"
NAME           ZONE          MACHINE_TYPE  INTERNAL_IP    EXTERNAL_IP     STATUS
test-instance  us-central1-a e2-standard-2 10.240.118.207 23.251.153.172  RUNNING

Pour obtenir la liste des opérations de zone dont la propriété status est définie sur DONE et qui sont dénuées de propriété httpStatus définie sur 200, appliquez un filtre zone sur une commande operations list, puis filtrez les résultats avec la commande grep :

gcloud compute operations list --filter="zone:(us-central1-a)" | grep DONE | grep -v 200
NAME                                                    HTTP_STATUS TYPE   TARGET                               STATUS
operation-1397752585735-4f73fa25b4b58-f0920fd5-254d709f 400         delete us-central1-a/disks/example-instance DONE
operation-1398357613036-4f7cc80cb41e0-765bcba6-34bbd040 409         insert us-central1-a/instances/i-1          DONE
operation-1398615481237-4f8088aefbe08-cc300dfa-2ce113cf 409         insert us-central1-a/instances/i-2          DONE

Pour obtenir la liste des disques de la zone us-central1-a, triés par nom par ordre alphabétique décroissant (--sort-by ~NAME), utilisez la commande disks list :

gcloud compute disks list --sort-by ~NAME --filter="zone:(us-central1-a)"

Dans certains scénarios, vous souhaiterez peut-être disposer du lien URI complet vers la ressource. Par exemple, lors de requêtes où vous utiliserez le résultat d'une commande list pour une autre commande ou application nécessitant une liste de liens de ressources. Pour afficher des liens de ressource URI complets, utilisez l'indicateur --uri avec une commande list.

gcloud compute instances list --uri --filter="name~'^example-.*'"
https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance1
https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances/example-instance2

Pour utiliser le résultat de la commande list précédente dans une commande qui supprime des instances, exécutez ce qui suit :

gcloud compute instances delete $(gcloud compute instances list --uri --filter="name~'^example-.*'")

Exemples de commandes describe

Pour obtenir des détails sur une seule instance, vous devez la spécifier en fournissant des informations telles que sa zone. Par exemple, pour obtenir des informations sur l'instance "example-instance" située dans la zone "asia-east1-b", vous pouvez utiliser la commande instances describe :

gcloud compute instances describe example-instance --zone asia-east1-b

Par défaut, les résultats sont au format YAML. Pour modifier le format de sortie en JSON ou en texte (une propriété par ligne), utilisez l'indicateur --format. Par exemple, si vous souhaitez des résultats au format texte pour cette même instance, utilisez :

gcloud compute instances describe example-instance --zone asia-east1-b --format text
---
canIpForward:                                False
creationTimestamp:                           2014-04-19T06:43:04.087-07:00
disks[0].autoDelete:                         False
disks[0].boot:                               True
disks[0].deviceName:                         example-instance
...

Pour obtenir plus d'informations sur une opération spécifique, utilisez la commande operations list pour rechercher l'URI complet de l'opération :

gcloud compute operations list --filter="zone:(us-central1-a)"
NAME                                                    TYPE   TARGET                                      HTTP_STATUS STATUS
operation-1406155165815-4fee4032850d9-7b78077c-a170c5c0 delete us-central1-a/instances/example-instance    200         DONE
operation-1406155180632-4fee4040a67c1-bf581ed8-ab5af2b8 delete us-central1-a/instances/example-instance-2  200         DONE
...

Utilisez ensuite l'URI dans une commande operations describe :

gcloud compute operations describe \
operation-1406155165815-4fee4032850d9-7b78077c-a170c5c0 --zone us-central1-a
endTime: '2014-07-23T15:40:02.463-07:00'
id: '31755455923038965'
insertTime: '2014-07-23T15:39:25.910-07:00'
kind: compute#operation
name: operation-1406155165815-4fee4032850d9-7b78077c-a170c5c0
operationType: delete
progress: 100
...

La commande suivante permet d'obtenir les paramètres d'instance au format JSON (--format json).

gcloud compute instances describe example-instance \
    --zone us-central1-a
    --format json
{
   ...
   "name": "example-instance",
   "networkInterfaces": [
    {
      "accessConfigs": [
        {
          "kind": "compute#accessConfig",
          "name": "external-nat",
          "natIP": "107.167.187.66",
          "type": "ONE_TO_ONE_NAT"
        }
      ],
      "name": "nic0",
      "network": "https://www.googleapis.com/compute/v1/projects/myproject/global/networks/default",
      "networkIP": "10.240.111.51"
    }
   ],
   ...
   "status": "RUNNING"
   ...
}

Vérifier quelles sont vos autorisations en tant qu'utilisateur

Exécutez la commande suivante pour savoir quelles sont vos autorisations en tant qu'utilisateur :

gcloud auth list

Révoquer un jeton d'actualisation

Pour révoquer les identifiants d'un compte sur la machine sur laquelle vous utilisez Google Cloud CLI, utilisez :

gcloud auth revoke

Cela vous obligera à vous authentifier à nouveau en utilisant gcloud init.

Vous pouvez également révoquer l'autorisation de gcloud CLI à accéder à vos ressources. Cela peut être indiqué au cas où vos jetons d'actualisation sont compromis. Pour révoquer l'autorisation d'accès gcloud CLI, procédez comme suit :

  1. Connectez-vous à la page de votre compte Google.
  2. Cliquez sur Sécurité puis sur Tout afficher dans la section Autorisations au niveau du compte.
  3. Sélectionnez SDK Google Cloud, puis cliquez sur Révoquer l'accès.

Redémarrer une instance

Pour réinitialiser une instance nommée "example-instance" dans la zone "us-central1-a", utilisez la commande instances reset :

gcloud compute instances reset example-instance --zone us-central1-a

Pour connaître les implications d'une réinitialisation, consultez la documentation Réinitialiser une instance.