Après avoir créé une image système, vous pouvez l'utiliser pour créer des copies de l'instance de calcul source. Pour en savoir plus sur l'utilisation des images système, consultez la section Quand utiliser une image système.
Les images système contiennent la plupart des informations et des données nécessaires au clonage d'une instance.
Elles ne sont pas modifiables. Cependant, lors de la création d'une instance basée sur une image système, vous pouvez remplacer presque toutes les propriétés de l'image système.
Vous pouvez créer des instances à partir d'images système à l'aide de l'une des méthodes suivantes :console Google Cloud,Google Cloud CLI ou REST.
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 Google Cloud services et aux API.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Vous pouvez créer au maximum six instances à partir d'une image système source en 60 minutes. Si vous dépassez cette limite, l'opération de création d'instance échoue et renvoie une erreur semblable à celle-ci:
Operation rate exceeded for resource 'projects/test/global/machineImages/machine-image-1'. Too frequent operations from the source resource.
Pour créer plus d'instances que la limite définie (six instances en 60 minutes), créez des images système supplémentaires à partir de l'instance source ou créez des images système de courte durée à partir des nouvelles instances. Vous pouvez ensuite créer le nombre d'instances requis à partir des nouvelles images système.
Vous ne pouvez pas créer d'instances à partir d'images système auxquelles des disques régionaux sont associés à l'aide de la console Google Cloud. Utilisez la Google Cloud CLI ou REST, puis spécifiez les paramètres
replicaZones
etdeviceName
pour chaque disque régional associé. Pour en savoir plus, consultez la section Créer une instance à partir d'une image système avec des remplacements de propriété.Accédez à la page Créer une instance dans Google Cloud Console.
Dans le menu
Créer une VM à partir de, sélectionnez Images système.Dans la fenêtre Créer une VM à partir d'une image système qui s'affiche, procédez comme suit:
Sélectionnez une image système.
Pour créer et démarrer l'instance, cliquez sur Créer.
INSTANCE_NAME
: nom de l'instanceZONE
: zone de l'instanceSOURCE_MACHINE_IMAGE_NAME
: image système à partir de laquelle créer l'instancePROJECT_ID
: ID de votre projetZONE
: zone de l'instance.INSTANCE_NAME
: nom de l'instance.SOURCE_MACHINE_IMAGE_URL
: URL complète ou partielle de l'image système que vous souhaitez utiliser pour créer l'instance. Par exemple, si vous disposez d'une image système appeléemy-machine-image
dans un projet appelémyProject
, les URL suivantes sont valides :https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-image
projects/myProject/global/machineImages/my-machine-image
global/machineImages/my-machine-image
- Lors de la création d'une instance à partir de l'image système, vous ne pouvez pas remplacer de propriétés du disque associé autres que le nom du disque.
Vous devez spécifier le paramètre
replicaZones
pour chaque disque régional associé, avec le paramètredeviceName
du disque régional à partir de l'image système.Si l'instance source (utilisée pour générer l'image système) et la nouvelle instance appartiennent au même projet et à la même région, les remarques suivantes s'appliquent:
- La plupart des propriétés de l'instance source et de la nouvelle instance sont identiques. Certaines propriétés diffèrent, comme les adresses IP éphémères attribuées automatiquement.
- Si l'instance source existe toujours lorsque vous créez une instance, cette nouvelle instance ne peut pas utiliser le même nom et la même zone que l'instance source.
Si l'instance source utilisée pour générer l'image système et la nouvelle instance appartiennent au même projet, mais à des régions différentes, les remarques suivantes s'appliquent:
- Vous devez remplacer toutes les ressources zonales et régionales de la nouvelle instance. Par exemple, si vous créez une instance à partir d'une image système dont l'instance source appartenait à une autre région, vous devez remplacer les ressources régionales, telles que le sous-réseau et les règles de pare-feu régionales. Toutefois, le remplacement des ressources globales (telles que les équilibreurs de charge et les comptes de service) n'est pas nécessaire, sauf si vous souhaitez les modifier.
Accédez à la page Créer une instance dans Google Cloud Console.
Dans le menu
Créer une VM à partir de, sélectionnez Images système.Dans la fenêtre Créer une VM à partir d'une image système qui s'affiche, sélectionnez un modèle, puis cliquez sur
Personnaliser.Facultatif: spécifiez d'autres options de configuration. Pour en savoir plus, consultez la section Options de configuration lors de la création d'une instance.
Pour créer et démarrer l'instance, cliquez sur Créer.
PROJECT_ID
: ID du projetZONE
: zone de l'instance.INSTANCE_NAME
: nom de l'instance.NEW_MACHINE_TYPE
: type de machine que vous souhaitez utiliser pour l'instance.SOURCE_MACHINE_IMAGE_URL
: URL complète ou partielle de l'image système que vous souhaitez utiliser pour créer l'instance. Par exemple, si vous disposez d'une image système appeléemy-machine-image
dans un projet appelémyProject
, les URL suivantes sont valides :https://www.googleapis.com/compute/v1/projects/myProject/global/machineImages/my-machine-image
projects/myProject/global/machineImages/my-machine-image
global/machineImages/my-machine-image
- Si vous remplacez un champ de base, le champ de base correspondant dans l'image système est remplacé par la valeur du champ de base dans la requête. Les champs de base incluent des paramètres tels que
machineType
etname
. - Si vous remplacez un champ répété, toutes les valeurs répétées pour cette propriété sont remplacées par les valeurs correspondantes fournies dans la requête.
Les champs répétés sont généralement des propriétés de type
list
. Par exemple,disks
etnetworkInterfaces
sont des champs répétés. - Si vous remplacez un objet imbriqué
nested object
, l'objet de l'image système est fusionné avec la spécification d'objet correspondante de la requête. Notez que si un objet imbriqué se situe dans un champ répété, le champ est traité conformément aux règles s'appliquant aux champs répétés. Les étiquettes font exception à cette règle et sont traitées en tant que champ répété, même si elles sont de typeobject
. Accordez l'accès à l'image système stockée dans un autre projet.
Les autorisations peuvent être accordées sur le projet source ou sur l'image système. Exécutez la commande
gcloud compute machine-images add-iam-policy-binding
pour accorder les autorisations sur l'image système.gcloud compute machine-images add-iam-policy-binding MACHINE_IMAGE_NAME \ --project=MACHINE_IMAGE_PROJECT \ --member='ACCOUNT_EMAIL' \ --role='roles/compute.admin'
Remplacez les éléments suivants :
MACHINE_IMAGE_PROJECT
: ID du projet contenant l'image système source.MACHINE_IMAGE_NAME
: nom de l'image système à laquelle vous souhaitez ajouter une liaison d'autorisation.ACCOUNT_EMAIL
: adresse e-mail du compte de service (serviceAccount
) ou de l'utilisateur (user
) qui crée l'instance. Assurez-vous que le format de l'adresse e-mail inclut le préfixe requis. Le préfixe doit correspondre à l'un des éléments suivants:user:
: choisissez cette option si l'adresse e-mail est associée à un compte utilisateur. Exemple :user:user@example.com
serviceAccount:
: choisissez cette option si l'adresse e-mail est associée à un compte de service. Exemple :serviceAccount:123456789000-compute@developer.gserviceaccount.com
.
Exemple
Par exemple, pour ajouter une liaison
compute.admin
à l'image système appeléemy-machine-image
à l'adresse e-mail du compte de service123456789000-compute@developer.gserviceaccount.com
, utilisez la commandegcloud CLI
suivante :gcloud compute machine-images add-iam-policy-binding my-machine-image \ --project=machine-image-project \ --member='serviceAccount:123456789000-compute@developer.gserviceaccount.com' \ --role='roles/compute.admin'
Accordez à l'utilisateur qui exécute la commande
gcloud compute instances create
le rôle Utilisateur du compte de service (roles/iam.serviceAccountUser
) sur le compte de service associé à l'image système.Créez une instance à partir d'une image système à l'aide de la commande
gcloud compute instances create
.gcloud compute instances create INSTANCE_NAME \ --project=INSTANCE_PROJECT_ID \ --zone=ZONE \ --source-machine-image=projects/MACHINE_IMAGE_PROJECT/global/machineImages/MACHINE_IMAGE_NAME \ --service-account=SERVICE_ACCOUNT_EMAIL \ --subnet=SUBNET
Remplacez les éléments suivants :
INSTANCE_PROJECT_ID
: ID du projet dans lequel vous souhaitez créer l'instanceINSTANCE_NAME
: nom de l'instanceZONE
: zone de l'instanceMACHINE_IMAGE_PROJECT
: ID du projet dans lequel se trouve l'image système.MACHINE_IMAGE_NAME
: image système à partir de laquelle créer l'instanceSERVICE_ACCOUNT_EMAIL
: adresse e-mail du compte de service que vous souhaitez associer à votre instanceSUBNET
: si le sous-réseau et l'instance se trouvent dans le même projet, remplacez SUBNET par le nom d'un sous-réseau situé dans la même région que l'instance.Pour spécifier un sous-réseau dans un réseau VPC partagé, remplacez
SUBNET
par une chaîne au format suivant:projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
Remplacez l'élément suivant :
HOST_PROJECT_ID
: ID de projet du projet hôte de VPC partagéREGION
: la région du sous-réseau.SUBNET_NAME
: nom du sous-réseau
Exemple
Par exemple, la commande suivante crée une VM nommée
my-instance
dansvm-project
, dans la zoneus-east1-b
, à partir d'une image système nomméemy-machine-image
.L'option
--service-account
spécifie le compte de service que vous souhaitez associer à la VM que vous venez de créer. Si vous ne spécifiez pas cette option, le compte de service source ne peut pas être partagé entre les deux projets et l'opération échoue.gcloud compute instances create my-instance \ --project=vm-project \ --zone=us-east1-b \ --source-machine-image=projects/machine-image-project/global/machineImages/my-machine-image \ --service-account=000123456789-compute@developer.gserviceaccount.com
Une fois la VM créée, le résultat se présente comme suit :
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
- En savoir plus sur les images système
- En savoir plus sur la création d'instances Compute Engine
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.
Rôles requis
Pour obtenir les autorisations nécessaires à la création d'instances Compute Engine à partir d'images système, demandez à votre administrateur de vous accorder le rôle IAM Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1
) sur l'instance Compute ou le projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Restrictions
Les restrictions suivantes s'appliquent lorsque vous créez des instances à partir d'images système:
Créer une instance à partir d'une image système (sans remplacement)
Si vous souhaitez créer une instance entièrement basée sur l'image système sans modifier ses propriétés, utilisez cette méthode.
Console
gcloud
Créez une instance à partir d'une image système à l'aide de la commande
gcloud compute instances create
.gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --source-machine-image=SOURCE_MACHINE_IMAGE_NAME
Remplacez les éléments suivants :
Exemple
Par exemple, vous pouvez utiliser la commande
gcloud
suivante pour créer une instance nomméemy-instance
dans la zoneus-east1-b
, à partir d'une image système appeléemy-machine-image
.gcloud compute instances create my-instance \ --zone=us-east1-b \ --source-machine-image=my-machine-image
Une fois l'instance créée, le résultat se présente comme suit:
Created [https://www.googleapis.com/compute/v1/projects/project-12345/zones/us-east1-b/instances/my-instance]. NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS my-instance us-east1-b e2-standard-2 192.0.2.1 203.224.0.113 RUNNING
REST
Dans l'API, envoyez une requête
POST
à la méthodeinstances.insert
. Dans le corps de la requête, incluez les paramètres suivants :POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL" }
Remplacez les éléments suivants :
Créer une instance à partir d'une image système avec des remplacements de propriété
Si vous souhaitez créer une instance principalement basée sur l'image système, mais lui apporter quelques modifications, vous pouvez utiliser le comportement de remplacement. Le comportement de remplacement consiste à transmettre des attributs afin de remplacer les propriétés d'image système existantes lors de la création de l'instance.
Lorsque vous utilisez la fonctionnalité de remplacement, tenez compte de ce qui suit :
Console
gcloud
À l'aide de la commande
gcloud compute instances create
, créez une instance à partir d'une image système et ajoutez les propriétés que vous souhaitez remplacer.Par exemple, vous pouvez utiliser la commande
gcloud
suivante pour créer une VM nomméemy-instance
dans la zoneus-east1-b
à partir d'une image système nomméemy-machine-image
. Dans cet exemple, des remplacements sont appliqués pour modifier le type de machine, arrêter la stratégie de maintenance de l'hôte et configurer un disque persistant régional nomméregional-disk-0
.gcloud compute instances create my-instance \ --zone=us-east1-b \ --source-machine-image=my-machine-image \ --machine-type=e2-standard-2 \ --maintenance-policy=TERMINATE \ --create-disk=device-name=boot-device-0,boot=true,auto-delete=true \ --create-disk=device-name=regional-disk-0,\ replica-zones=^:^us-east1-b:us-east1-c,boot=false
REST
Pour remplacer les propriétés de l'image système lors de la création de l'instance, envoyez une requête
POST
à la méthodeinstances.insert
. Dans le corps de la requête, incluez le paramètresourceMachineImage
et tous les remplacements nécessaires. Vous pouvez ajouter n'importe quelle propriété que vous auriez normalement définie lors de la création de l'instance. Par exemple, pour remplacer le type de machine, votre appel d'API doit inclure le paramètremachineType
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/NEW_MACHINE_TYPE", "sourceMachineImage": "SOURCE_MACHINE_IMAGE_URL" }
Remplacez les éléments suivants :
Remplacer le comportement
Le comportement de remplacement dans l'API Compute Engine suit les règles des correctifs de fusion JSON, décrites dans le document RFC 7396. En résumé, les règles suivantes s'appliquent :
Par exemple, si vous souhaitez créer une VM à partir d'une image système et créer des disques régionaux avec la VM, utilisez une valeur de remplacement pour les disques afin de pouvoir spécifier l'option
replicaZones
. Comme le champdisks
est un champ répété, vous devez spécifier la configuration du disque pour tous les disques associés et le disque de démarrage, et pas uniquement pour les disques régionaux.POST https://compute.googleapis.com/compute/v1/projects/my-proj/zones/us-west1-a/instances { "name": "vm-from-image", "sourceMachineImage": "global/machineImages/my-machine-image", "disks": [ { "kind": "compute#attachedDisks", "boot": true, "autoDelete": true, "deviceName": "boot-device", "initializeParams": { "sourceImage": "projects/my-proj/global/images/my-image", "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard", } }, { "kind": "compute#attachedDisk", "boot": false, "autoDelete": true, "deviceName": "regional-device-0", "initializeParams": { "diskType": "projects/my-proj/zones/us-west1-a/diskTypes/pd-standard", "replicaZones": [ "projects/my-proj/zones/us-west1-a", "projects/my-proj/zones/us-west1-c" ] } } ] }
Créer une instance à l'aide d'une image système située dans un autre projet
Lorsque vous créez une instance à partir d'une image système située dans un autre projet, il est possible que vous n'ayez pas accès au compte de service associé à ce projet source. Si vous souhaitez créer une instance à partir d'une image système située dans un autre projet, vous devez vous assurer que vous avez accès à l'image système et remplacer la propriété du compte de service de la nouvelle instance.
Si vous partagez une image système entre des projets utilisant un réseau VPC partagé, vous devez spécifier explicitement les détails du VPC partagé lorsque vous créez une instance à partir de cette image. Par exemple, lorsque vous créez une instance dans un projet non hôte, fournissez les informations sur le VPC partagé du projet hôte à l'aide des indicateurs
--network
,--subnet
ou--network-interface
.Les sections suivantes expliquent comment créer une instance à partir d'une image système située dans un autre projet à l'aide de Google Cloud CLI.
Étape suivante
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/02/06 (UTC).
-