Définir la version d'image dans une famille d'images


Utilisez des familles d'images pour simplifier la gestion des versions d'images. Ajoutez une image à une famille d'images pour la définir comme la version d'image la plus récente. Si vous pensez que vous devez restaurer une version précédente de la famille d'images, abandonnez l'image la plus récente de la famille.

Consultez la page Bonnes pratiques concernant les familles d'images pour obtenir des conseils sur leur utilisation.

Vous pouvez éventuellement spécifier l'emplacement de stockage de l'image à l'aide de Google Cloud Console, de la commande gcloud compute images create avec l'option --storage-location, ou de la méthode images().insert.

Avant de commencer

  • Consultez l'article Images.
  • 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 en sélectionnant l'une des options suivantes:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Définir la version d'image dans une famille d'images

Console

  1. Dans Google Cloud Console, accédez à la page Créer une image.

    Accéder à la page "Créer une image"

  2. Indiquez le Nom de votre image. Exemple :image-v1

  3. Spécifiez la Source à partir de laquelle vous souhaitez créer une image. Il peut s'agir d'un disque persistant, d'un instantané, d'une autre image ou d'un fichier au format disk.raw dans Cloud Storage.

  4. Si vous créez une image à partir d'un disque associé à une VM en cours d'exécution, cochez l'option Conserver l'instance en cours d'exécution pour confirmer que vous souhaitez créer l'image pendant l'exécution de la VM. Vous pouvez préparer votre VM avant de créer l'image.

  5. Dans la liste déroulante Basée sur l'emplacement du disque source (par défaut), spécifiez l'emplacement de stockage de l'image. Par exemple, spécifiez us pour stocker l'image dans l'emplacement multirégional us, ou us-central1 pour la stocker dans la région us-central1. Si vous ne sélectionnez pas d'emplacement, Compute Engine stocke l'image dans l'emplacement multirégional le plus proche de la source de l'image.

  6. Spécifiez la Famille d'images pour la nouvelle image. Par exemple, ajoutez my-image-family pour organiser l'image dans une famille d'images.

  7. Facultatif : spécifiez d'autres propriétés de l'image :

    • Description : description de votre image personnalisée.
    • Libellé : libellé permettant de regrouper les ressources.
  8. Spécifiez la clé de chiffrement. Vous pouvez choisir entre une clé appartenant à Google et gérée par Google, une clé Cloud Key Management Service (Cloud KMS) ou une clé de chiffrement fournie par le client (CSEK). Si aucune clé de chiffrement n'est spécifiée, les images sont chiffrées à l'aide d'une clé appartenant à Google et gérée par Google.

  9. Cliquez sur Créer pour créer l'image.

gcloud

gcloud compute images create image-v1 \
    --source-disk disk-1 \
    --source-disk-zone us-central1-f \
    --family my-image-family

La famille d'images pointe vers image-v1. Ajoutez une deuxième image à la famille :

gcloud compute images create image-v2 \
    --source-disk disk-2 \
    --source-disk-zone us-central1-f \
    --family my-image-family

REST

Envoyez une requête POST à la méthode images().insert. Spécifiez la famille d'images dans le corps de la requête.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images

{
  "name": "image-v2",
  "sourceDisk": "/zones/us-central1-f/disks/disk-2",
  "family":"my-image-family",

}

La famille d'images pointe vers image-v2, car il s'agit de l'image la plus récente que vous lui avez ajoutée.

gcloud

Vous pouvez voir vers quelle image pointe une famille en exécutant la commande gcloud compute images describe-from-family.

Exemple :

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '8904691942610171306'
kind: compute#image
name: image-v2
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v2
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v2
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY

REST

Envoyez une requête GET à la méthode images().getFromFamily. Spécifiez la famille d'images dans le corps de la requête.

GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images/family

{
  "resourceId":"my-image-family",

}

Si vous souhaitez effectuer un rollback de la famille d'images pour qu'elle ne pointe plus vers image-v2, abandonnez image-v2 pour que la famille pointe de nouveau vers image-v1.

gcloud compute images deprecate image-v2 \
    --state DEPRECATED \
    --replacement image-v1

Assurez-vous que la famille d'images pointe bien vers image-v1.

gcloud compute images describe-from-family my-image-family

family: my-image-family
id: '2741732787056801255'
kind: compute#image
name: image-v1
selfLink: https://compute.googleapis.com/compute/v1/projects/my-project/global/images/image-v1
sourceDisk: https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/disks/disk-v1
sourceDiskId: '1677449456001963379'
sourceType: RAW
status: READY