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 automatiquement consommées permettent aux instances dont les propriétés correspondent aux réservations de les utiliser automatiquement. Pour empêcher les instances de consommer une réservation, effectuez l'une des opérations suivantes :
Configurez les instances pour qu'elles n'utilisent 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 mettre à jour 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 permet 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
-
Installez la Google Cloud CLI. Une fois l'installation terminée, initialisez la Google Cloud CLI en exécutant la commande suivante :
gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
- Set a default region and zone.
Go
Pour utiliser les exemples Go de cette page dans un environnement de développement local, installez et initialisez la gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Pour en savoir plus, consultez la section 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 la gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Pour en savoir plus, consultez la section 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 la gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Pour en savoir plus, consultez la section 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 la gcloud CLI, puis configurez le service Identifiants par défaut de l'application à l'aide de vos identifiants utilisateur.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
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.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Pour en savoir plus, consultez la section Set up authentication for a local development environment.
REST
Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.
Installez la Google Cloud CLI.
Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.
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 de calcul d'utiliser des réservations, demandez à votre administrateur de vous attribuer 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 de calcul d'utiliser des réservations :
-
Pour créer des réservations :
compute.reservations.createsur le projet -
Pour créer des instances :
compute.instances.createsur le projet- Pour créer la VM à l'aide d'une image personnalisée :
compute.images.useReadOnlysur l'image - Pour créer la VM à l'aide d'un instantané :
compute.snapshots.useReadOnlysur l'instantané - Pour créer la VM à l'aide d'un modèle d'instance :
compute.instanceTemplates.useReadOnlysur le modèle d'instance - Pour attribuer un ancien réseau à la VM :
compute.networks.usesur le projet - Pour spécifier une adresse IP statique pour la VM :
compute.addresses.usesur le projet - Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau :
compute.networks.useExternalIpsur le projet - Pour spécifier un sous-réseau pour la VM :
compute.subnetworks.usesur 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.useExternalIpsur 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.setMetadatasur le projet - Pour définir des tags pour la VM :
compute.instances.setTagssur la VM - Pour définir des libellés pour la VM :
compute.instances.setLabelssur la VM - Pour définir un compte de service à utiliser avec la VM :
compute.instances.setServiceAccountsur la VM - Pour créer un disque pour la VM :
compute.disks.createsur le projet - Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture :
compute.disks.usesur le disque - Pour associer un disque existant en mode lecture seule :
compute.disks.useReadOnlysur le disque
-
Pour créer des modèles d'instance :
compute.instanceTemplates.createsur le projet
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Empêcher la consommation de 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) de manière à ne pas consommer de réservations. Cette propriété permet de déterminer 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 lors de la création d'instances de manière groupée
Empêcher la consommation lors de la création d'un modèle d'instance
Empêcher la consommation dans une instance existante
Vous pouvez mettre à jour une instance en cours d'exécution pour qu'elle ne consomme plus automatiquement les 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
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=ZONERemplacez 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
consumeReservationTypesurNO_RESERVATION:reservationAffinity: consumeReservationType: NO_RESERVATIONPour mettre à jour l'instance et la redémarrer, utilisez la commande
gcloud compute instances update-from-fileavec l'option--most-disruptive-allowed-actiondéfinie surRESTART:gcloud compute instances update-from-file INSTANCE_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONERemplacez 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.
REST
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_NAMERemplacez 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 le résultat de la requête
GETdans un fichier ou un éditeur de texte. Modifiez la sortie copiée pour remplacer le champconsumeReservationTypeparNO_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
mostDisruptiveAllowedActiondéfini surRESTART.Pour le corps de la requête, utilisez le résultat de la requête
GETque vous avez modifiée lors d'une étape précédente.
La requête ressemble à l'exemple suivant :
PUT https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central-1/instances/instance-01?mostDisruptiveAllowedAction=RESTART { ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Pour en savoir plus sur la mise à jour d'une instance, consultez 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
Dans la console Google Cloud , accédez à la page Créer une instance.
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.
gcloud
Pour créer une instance qui ne peut pas utiliser de réservations, exécutez la commande
gcloud compute instances createavec l'option--reservation-affinitydéfinie surnone:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none \ --zone=ZONERemplacez les éléments suivants :
INSTANCE_NAME: nom de l'instance.MACHINE_TYPE: type de machine à utiliser pour l'instance.ZONE: zone dans laquelle créer l'instance.
Go
Pour créer une instance qui ne peut pas utiliser de réservations, utilisez l'exemple de code suivant :
Java
Pour créer une instance qui ne peut pas utiliser de réservations, utilisez l'exemple de code suivant :
Node.js
Pour créer une instance qui ne peut pas utiliser de réservations, utilisez l'exemple de code suivant :
Python
Pour créer une instance qui ne peut pas utiliser 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 champconsumeReservationTypedé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 :
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-v20240617Une 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.
Pour en savoir plus sur la création d'une instance, consultez 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 de manière groupée qui ne peuvent pas utiliser de réservations, exécutez la commande
gcloud compute instances bulk createavec l'option--reservation-affinitydé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=ZONERemplacez les éléments suivants :
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 portant les nomsinstance-1,instance-2, etc., jusqu'à ce qu'il atteigne le nombre d'instances spécifié parCOUNT.ZONE: zone dans laquelle créer les instances de manière groupée.
REST
Pour créer des instances de manière groupée 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 champconsumeReservationTypedé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 :
PROJECT_ID: ID du projet dans lequel créer des instances de manière groupée.ZONE: zone dans laquelle créer les 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 portant les nomsinstance-1,instance-2, etc., jusqu'à ce qu'il atteigne le 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-v20240617Une 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.
Pour en savoir plus sur la création d'instances de manière groupée, consultez 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 :
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 :
Pour créer un modèle d'instance qui configure les instances afin qu'elles ne consomment pas de réservations, sélectionnez l'une des options suivantes :
Console
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.
gcloud
Pour créer un modèle d'instance qui configure les instances afin qu'elles ne consomment pas de réservations, utilisez la commande
gcloud compute instances-templates createavec l'option--reservation-affinitydéfinie 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=noneRemplacez les éléments suivants :
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.
Go
Pour créer un modèle d'instance qui configure les instances afin 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 afin 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 afin 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 afin 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 afin qu'elles ne consomment pas de réservations, envoyez une requête
POSTà l'une des méthodes suivantes :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.
Dans le corps de la requête, incluez le champ
consumeReservationTypeet définissez-le surNO_RESERVATION.Par exemple, pour créer un modèle d'instance régional et spécifier de ne pas utiliser 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 :
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-v20240617Une 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.
Pour en savoir plus sur la création de modèles d'instances, consultez la section Création de modèles d'instances.
Étapes suivantes
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/10/19 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Difficile à comprendre","hardToUnderstand","thumb-down"],["Informations ou exemple de code incorrects","incorrectInformationOrSampleCode","thumb-down"],["Il n'y a pas l'information/les exemples dont j'ai besoin","missingTheInformationSamplesINeed","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/10/19 (UTC)."],[],[]] -