Ce document explique comment empêcher les instances Compute Engine de consommer des réservations. Pour en savoir plus, consultez la section Réservations de ressources zonales Compute Engine.
Les réservations consommées automatiquement permettent aux instances dont les propriétés correspondent aux réservations de les consommer automatiquement. Pour empêcher les instances de consommer une réservation, effectuez l'une des opérations suivantes:
Configurez les instances pour qu'elles ne consomment pas de réservations, comme décrit dans ce document.
Créez ou mettez à jour des instances dont les propriétés ne correspondent pas à la réservation.
Vous pouvez éviter de consommer des réservations lorsque vous souhaitez utiliser vos instances pour des tâches telles que les tests, le débogage ou les déploiements isolés.
Limites
Vous ne pouvez modifier une instance existante pour qu'elle ne consomme pas de réservations que si elle est configurée pour consommer automatiquement les réservations correspondantes.
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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
-
Pour créer des réservations :
compute.reservations.create
sur le projet -
Pour créer des instances :
compute.instances.create
sur le projet- Pour créer la VM à l'aide d'une image personnalisée :
compute.images.useReadOnly
sur l'image - Pour créer la VM à l'aide d'un instantané :
compute.snapshots.useReadOnly
sur l'instantané - Pour créer la VM à l'aide d'un modèle d'instance :
compute.instanceTemplates.useReadOnly
sur le modèle d'instance - Pour attribuer un ancien réseau à la VM :
compute.networks.use
sur le projet - Pour spécifier une adresse IP statique pour la VM :
compute.addresses.use
sur le projet - Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau :
compute.networks.useExternalIp
sur le projet - Pour spécifier un sous-réseau pour la VM :
compute.subnetworks.use
sur le projet ou sur le sous-réseau choisi - Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un réseau VPC :
compute.subnetworks.useExternalIp
sur le projet ou sur le sous-réseau choisi - Pour définir les métadonnées d'instance de VM pour la VM :
compute.instances.setMetadata
sur le projet - Pour définir des tags pour la VM :
compute.instances.setTags
sur la VM - Pour définir des libellés pour la VM :
compute.instances.setLabels
sur la VM - Pour définir un compte de service à utiliser avec la VM :
compute.instances.setServiceAccount
sur la VM - Pour créer un disque pour la VM :
compute.disks.create
sur le projet - Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture :
compute.disks.use
sur le disque - Pour associer un disque existant en mode lecture seule :
compute.disks.useReadOnly
sur le disque
-
Pour créer des modèles d'instance :
compute.instanceTemplates.create
sur le projet Empêcher la consommation lors de la création d'instances groupées
Empêcher la consommation lors de la création d'un modèle d'instance
Créez un fichier YAML vide.
Pour exporter les propriétés d'une instance dans le fichier YAML que vous venez de créer, utilisez la commande
gcloud compute instances export
:gcloud compute instances export INSTANCE_NAME \ --destination=YAML_FILE \ --zone=ZONE
Remplacez les éléments suivants :
INSTANCE_NAME
: nom de l'instance.YAML_FILE
: chemin d'accès au fichier YAML vide que vous avez créé à l'étape précédente.ZONE
: zone où se trouve l'instance.
Dans le fichier de configuration YAML, définissez
consumeReservationType
surNO_RESERVATION
:reservationAffinity: consumeReservationType: NO_RESERVATION
Pour mettre à jour l'instance et la redémarrer, utilisez la commande
gcloud compute instances update-from-file
avec l'option--most-disruptive-allowed-action
définie surRESTART
:gcloud compute instances update-from-file INSTANCE_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE
Remplacez les éléments suivants :
INSTANCE_NAME
: nom de l'instance.YAML_FILE
: chemin d'accès au fichier YAML contenant les données de configuration que vous avez modifiées à l'étape précédente.ZONE
: zone où se trouve l'instance.
Pour afficher les propriétés d'une instance existante, envoyez une requête
GET
à la méthodeinstances.get
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel vous avez créé l'instance.ZONE
: zone où se trouve l'instance.INSTANCE_NAME
: nom de l'instance.
Stockez la sortie de la requête
GET
dans un fichier ou un éditeur de texte. Modifiez la sortie copiée pour remplacer le champconsumeReservationType
parNO_RESERVATION
:{ ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Pour mettre à jour l'instance et la redémarrer, envoyez une requête
PUT
à la méthodeinstances.update
. Dans la requête, procédez comme suit :Dans l'URL de la requête, incluez le paramètre de requête
mostDisruptiveAllowedAction
défini surRESTART
.Pour le corps de la requête, utilisez la sortie de la requête
GET
que vous avez modifiée à une étape précédente.
La requête se présente comme suit:
PUT https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central-1/instances/instance-01?mostDisruptiveAllowedAction=RESTART { ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Accédez à la page Créer une instance dans Google Cloud Console.
Dans le champ Nom, saisissez un nom pour l'instance.
Dans les listes Région et Zone, sélectionnez la région et la zone dans lesquelles créer l'instance.
Spécifiez le type de machine à utiliser pour l'instance.
Dans le menu de navigation, cliquez sur Avancé.
Dans la section Réservations, sélectionnez Ne pas utiliser de réservation.
Cliquez sur Créer.
INSTANCE_NAME
: nom de l'instance.MACHINE_TYPE
: type de machine à utiliser pour l'instance.ZONE
: zone dans laquelle créer l'instance.PROJECT_ID
: ID du projet dans lequel vous souhaitez créer l'instance.ZONE
: zone dans laquelle créer l'instance.INSTANCE_NAME
: nom de l'instance.MACHINE_TYPE
: type de machine à utiliser pour l'instance.IMAGE_PROJECT
: projet d'image contenant l'image d'OS ; par exemple,debian-cloud
. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.IMAGE
: spécifiez l'une des options suivantes :Version spécifique de l'image de l'OS. Exemple :
debian-12-bookworm-v20240617
.Une famille d'images, qui doit être au format
family/IMAGE_FAMILY
. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezfamily/debian-12
, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.
COUNT
: nombre d'instances à créer.MACHINE_TYPE
: type de machine à utiliser pour les instances.NAME_PATTERN
: modèle de nom des instances. Pour remplacer une séquence de nombres dans un nom d'instance, utilisez une séquence de caractères de hachage (#
). Par exemple, le modèle de nominstance-#
génère des instances dont les noms commencent parinstance-1
,instance-2
, etc., jusqu'au nombre d'instances spécifié parCOUNT
.ZONE
: zone dans laquelle créer des instances de manière groupée.PROJECT_ID
: ID du projet dans lequel créer des instances de manière groupée.ZONE
: zone dans laquelle créer des instances de manière groupée.COUNT
: nombre d'instances à créer.NAME_PATTERN
: modèle de nom des instances. Pour remplacer une séquence de nombres dans un nom d'instance, utilisez une séquence de caractères de hachage (#
). Par exemple, le modèle de nominstance-#
génère des instances dont les noms commencent parinstance-1
,instance-2
, etc., jusqu'au nombre d'instances spécifié parCOUNT
.MACHINE_TYPE
: type de machine à utiliser pour les instances.IMAGE_PROJECT
: projet d'image contenant l'image d'OS ; par exemple,debian-cloud
. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.IMAGE
: spécifiez l'une des options suivantes :Version spécifique de l'image de l'OS. Exemple :
debian-12-bookworm-v20240617
.Une famille d'images, qui doit être au format
family/IMAGE_FAMILY
. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezfamily/debian-12
, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.
Empêchez les instances de calcul d'un groupe d'instances géré (MIG) de consommer des réservations lorsque vous effectuez les opérations suivantes:
Dans la console Google Cloud, accédez à la page Créer un modèle d'instance.
Dans le champ Nom, saisissez un nom pour le modèle d'instance.
Dans la section Emplacement, indiquez si vous souhaitez créer un modèle d'instance régional (par défaut) ou global.
Dans la section Configuration de la machine, spécifiez le type de machine à utiliser pour les instances créées à l'aide du modèle.
Développez la section Options avancées et procédez comme suit :
Développez la section Gestion.
Dans la section Réservations, sélectionnez Ne pas utiliser de réservation.
Cliquez sur Créer.
INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance.REGION
: région dans laquelle créer le modèle d'instance.MACHINE_TYPE
: type de machine à utiliser pour les instances créées à l'aide du modèle d'instance.Pour créer un modèle d'instance global : méthode
instanceTemplates.insert
.Pour créer un modèle d'instance régional : méthode
regionInstanceTemplates.insert
.PROJECT_ID
: ID du projet dans lequel créer le modèle d'instance.INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance.MACHINE_TYPE
: type de machine à utiliser pour les instances créées à l'aide du modèle d'instance.IMAGE_PROJECT
: projet d'image contenant l'image d'OS ; par exemple,debian-cloud
. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.IMAGE
: spécifiez l'une des options suivantes :Version spécifique de l'image de l'OS. Exemple :
debian-12-bookworm-v20240617
.Une famille d'images, qui doit être au format
family/IMAGE_FAMILY
. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezfamily/debian-12
, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.
Go
Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Pour en savoir plus, consultez Set up authentication for a local development environment.
Java
Pour utiliser les exemples Java de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Pour en savoir plus, consultez Set up authentication for a local development environment.
Node.js
Pour utiliser les exemples Node.js de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Pour en savoir plus, consultez Set up authentication for a local development environment.
Python
Pour utiliser les exemples Python de cette page dans un environnement de développement local, installez et initialisez gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Pour en savoir plus, consultez Set up authentication for a local development environment.
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 pour empêcher une instance Compute d'utiliser des réservations, demandez à votre administrateur de vous accorder le rôle IAM Administrateur d'instances Compute (v1) (
roles/compute.instanceAdmin.v1
) sur 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.Ce rôle prédéfini contient les autorisations requises pour empêcher une instance de calcul d'utiliser des réservations. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour empêcher une instance Compute d'utiliser des réservations:
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Empêcher la consommation des réservations
Pour empêcher une instance de calcul de consommer des réservations, définissez sa propriété d'affinité de réservation (
reservationAffinity
) pour qu'elle ne consomme pas de réservations. Cette propriété contrôle si une instance peut utiliser des réservations correspondantes, une réservation spécifique ou aucune réservation.Pour empêcher une ou plusieurs instances de consommer des réservations, utilisez l'une des méthodes suivantes:
Empêcher la consommation dans une instance existante
Vous pouvez mettre à jour une instance en cours d'exécution afin qu'elle ne consomme plus automatiquement de réservations. Vous devez redémarrer l'instance pour que les modifications prennent effet, comme décrit dans cette section.
Pour empêcher une instance existante de consommer des réservations, sélectionnez l'une des options suivantes:
gcloud
REST
Pour en savoir plus sur la mise à jour d'une instance, consultez la section Mettre à jour les propriétés d'une instance.
Empêcher la consommation lors de la création d'une instance
Pour créer une instance de calcul qui ne peut pas consommer de réservations, sélectionnez l'une des options suivantes:
Console
gcloud
Pour créer une instance qui ne peut pas consommer de réservations, exécutez la commande
gcloud compute instances create
avec l'option--reservation-affinity
définie surnone
:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none \ --zone=ZONE
Remplacez les éléments suivants :
Go
Pour créer une instance qui ne peut pas consommer de réservations, utilisez l'exemple de code suivant:
Java
Pour créer une instance qui ne peut pas consommer de réservations, utilisez l'exemple de code suivant:
Node.js
Pour créer une instance qui ne peut pas consommer de réservations, utilisez l'exemple de code suivant:
Python
Pour créer une instance qui ne peut pas consommer de réservations, utilisez l'exemple de code suivant:
REST
Pour créer une instance qui ne peut pas consommer de réservations, envoyez une requête
POST
à la méthodeinstances.insert
. Dans le corps de la requête, incluez le champconsumeReservationType
défini surNO_RESERVATION
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } }
Remplacez les éléments suivants :
Pour en savoir plus sur la création d'une instance, consultez la section Créer et démarrer une instance Compute Engine.
Empêcher la consommation lors de la création groupée d'instances
Pour créer des instances de calcul de manière groupée qui ne peuvent pas consommer de réservations, sélectionnez l'une des options suivantes:
gcloud
Pour créer des instances groupées qui ne peuvent pas consommer de réservations, exécutez la commande
gcloud compute instances bulk create
avec l'option--reservation-affinity
définie surnone
.Par exemple, pour créer des instances de manière groupée dans une seule zone et spécifier un format de nom, exécutez la commande suivante:
gcloud compute instances bulk create \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --reservation-affinity=none \ --zone=ZONE
Remplacez les éléments suivants :
REST
Pour créer des instances groupées qui ne peuvent pas consommer de réservations, envoyez une requête
POST
à la méthodeinstances.bulkInsert
. Dans le corps de la requête, incluez le champconsumeReservationType
défini surNO_RESERVATION
.Par exemple, pour créer des instances de manière groupée dans une seule zone et spécifier un format de nom, envoyez une requête comme suit:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": COUNT, "namePattern": "NAME_PATTERN", "instanceProperties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } } }
Remplacez les éléments suivants :
Pour en savoir plus sur la création d'instances de manière groupée, consultez la section Créer des VM de manière groupée.
Empêcher la consommation lors de la création d'un modèle d'instance
Après avoir créé un modèle d'instance qui configure les instances pour qu'elles ne consomment pas de réservations, vous pouvez utiliser le modèle pour effectuer les opérations suivantes:
Pour créer un modèle d'instance qui configure les instances pour qu'elles ne consomment pas de réservations, sélectionnez l'une des options suivantes:
Console
gcloud
Pour créer un modèle d'instance qui configure les instances pour qu'elles ne consomment pas de réservations, exécutez la commande
gcloud compute instances-templates create
avec l'indicateur--reservation-affinity
défini surnone
.Pour créer un modèle d'instance régional qui configure les instances pour qu'elles ne consomment pas de réservations, exécutez la commande suivante. Si vous souhaitez créer un modèle d'instance global, utilisez la même commande sans l'option
--instance-template-region
.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none
Remplacez les éléments suivants :
Go
Pour créer un modèle d'instance qui configure les instances pour qu'elles ne consomment pas de réservations, utilisez l'exemple de code suivant:
Java
Pour créer un modèle d'instance qui configure les instances pour qu'elles ne consomment pas de réservations, utilisez l'exemple de code suivant:
Node.js
Pour créer un modèle d'instance qui configure les instances pour qu'elles ne consomment pas de réservations, utilisez l'exemple de code suivant:
Python
Pour créer un modèle d'instance qui configure les instances pour qu'elles ne consomment pas de réservations, utilisez l'exemple de code suivant:
REST
Pour créer un modèle d'instance qui configure les instances pour qu'elles ne consomment pas de réservations, envoyez une requête
POST
à l'une des méthodes suivantes:Dans le corps de la requête, incluez le champ
consumeReservationType
et définissez-le surNO_RESERVATION
.Par exemple, pour créer un modèle d'instance régional et spécifier de ne pas consommer de réservations, envoyez une requête comme suit:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/InstanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } } }
Remplacez les éléments suivants :
Pour en savoir plus sur la création de modèles d'instances, consultez la section Création de modèles d'instances.
É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/03/04 (UTC).
-