Questo documento spiega come impedire alle istanze Compute Engine di utilizzare le prenotazioni. Per saperne di più sulle prenotazioni, consulta Prenotazioni di risorse di zona di Compute Engine.
Le prenotazioni utilizzate automaticamente consentono alle istanze con proprietà corrispondenti alle prenotazioni di utilizzarle automaticamente. Per impedire alle istanze di utilizzare una prenotazione, esegui una delle seguenti operazioni:
Configura le istanze in modo che non utilizzino prenotazioni, come descritto in questo documento.
Crea o aggiorna istanze con proprietà che non corrispondono alla prenotazione.
Puoi evitare di utilizzare le prenotazioni quando vuoi utilizzare le istanze per attività come test, debug o deployment isolati.
Limitazioni
Puoi aggiornare un'istanza esistente in modo che non utilizzi le prenotazioni solo se l'istanza è configurata per utilizzare automaticamente le prenotazioni corrispondenti.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione è
il processo mediante il quale la tua identità viene verificata per l'accesso ai Google Cloud servizi e alle API.
Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
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.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
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.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
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.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
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.
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.
-
Per creare le prenotazioni:
compute.reservations.create
sul progetto -
Per creare istanze:
compute.instances.create
sul progetto- Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnly
sull'immagine - Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnly
sullo snapshot - Per utilizzare un template di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
sul template di istanza - Per assegnare una rete legacy alla VM:
compute.networks.use
sul progetto - Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
sul progetto - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete legacy:
compute.networks.useExternalIp
sul progetto - Per specificare una subnet per la VM:
compute.subnetworks.use
sul progetto o sulla subnet scelta - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete VPC:
compute.subnetworks.useExternalIp
sul progetto o sulla subnet scelta - Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadata
sul progetto - Per impostare i tag per la VM:
compute.instances.setTags
sulla VM - Per impostare le etichette per la VM:
compute.instances.setLabels
sulla VM - Per impostare un service account che la VM possa utilizzare:
compute.instances.setServiceAccount
sulla VM - Per creare un nuovo disco per la VM:
compute.disks.create
sul progetto - Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura:
compute.disks.use
sul disco - Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnly
sul disco
-
Per creare modelli di istanza:
compute.instanceTemplates.create
sul progetto Evitare il consumo durante la creazione collettiva di istanze
Impedisci il consumo durante la creazione di un modello di istanza
Crea un file YAML vuoto.
Per esportare le proprietà di un'istanza nel file YAML che hai appena creato, utilizza il comando
gcloud compute instances export
:gcloud compute instances export INSTANCE_NAME \ --destination=YAML_FILE \ --zone=ZONE
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanzaYAML_FILE
: il percorso del file YAML vuoto che hai creato nel passaggio precedente.ZONE
: la zona in cui esiste l'istanza.
Nel file di configurazione YAML, imposta
consumeReservationType
suNO_RESERVATION
:reservationAffinity: consumeReservationType: NO_RESERVATION
Per aggiornare l'istanza e riavviarla, utilizza il comando
gcloud compute instances update-from-file
con il flag--most-disruptive-allowed-action
impostato suRESTART
:gcloud compute instances update-from-file INSTANCE_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE
Sostituisci quanto segue:
INSTANCE_NAME
: il nome dell'istanzaYAML_FILE
: il percorso del file YAML con i dati di configurazione modificati nel passaggio precedente.ZONE
: la zona in cui esiste l'istanza.
Per visualizzare le proprietà di un'istanza esistente, effettua una richiesta
GET
al metodoinstances.get
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui hai creato l'istanza.ZONE
: la zona in cui esiste l'istanza.INSTANCE_NAME
: il nome dell'istanza
Memorizza l'output della richiesta
GET
in un file o in un editor di testo. Modifica l'output copiato per cambiare il campoconsumeReservationType
inNO_RESERVATION
:{ ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Per aggiornare l'istanza e riavviarla, effettua una richiesta
PUT
al metodoinstances.update
. Nella richiesta, segui questi passaggi:Nell'URL della richiesta, includi il parametro di query
mostDisruptiveAllowedAction
impostato suRESTART
.Per il corpo della richiesta, utilizza l'output della richiesta
GET
che hai modificato in un passaggio precedente.
La richiesta è simile al seguente esempio:
PUT https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central-1/instances/instance-01?mostDisruptiveAllowedAction=RESTART { ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Nella console Google Cloud , vai alla pagina Crea un'istanza.
Nel campo Nome, inserisci un nome per l'istanza.
Negli elenchi Regione e Zona, seleziona la regione e la zona in cui creare l'istanza.
Specifica il tipo di macchina da utilizzare per l'istanza.
Nel menu di navigazione, fai clic su Avanzato.
Nella sezione Prenotazioni, seleziona Non utilizzare una prenotazione.
Fai clic su Crea.
INSTANCE_NAME
: il nome dell'istanzaMACHINE_TYPE
: il tipo di macchina da usare per l'istanzaZONE
: la zona in cui creare l'istanzaPROJECT_ID
: l'ID del progetto in cui vuoi creare l'istanza.ZONE
: la zona in cui creare l'istanzaINSTANCE_NAME
: il nome dell'istanzaMACHINE_TYPE
: il tipo di macchina da usare per l'istanzaIMAGE_PROJECT
: il progetto di immagini che contiene l'immagine del sistema operativo, ad esempiodebian-cloud
. Per saperne di più sui progetti di immagini supportati, vedi Immagini pubbliche.IMAGE
: specifica una delle seguenti opzioni:Una versione specifica dell'immagine sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichifamily/debian-12
, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
COUNT
: il numero di istanze da creare.MACHINE_TYPE
: il tipo di macchina da utilizzare per le istanze.NAME_PATTERN
: il pattern del nome per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#
). Ad esempio, l'utilizzo diinstance-#
per il pattern del nome genera istanze con nomi che iniziano coninstance-1
,instance-2
e continuano fino al numero di istanze specificato daCOUNT
.ZONE
: la zona in cui creare le istanze in blocco.PROJECT_ID
: l'ID del progetto in cui creare le istanze in blocco.ZONE
: la zona in cui creare le istanze in blocco.COUNT
: il numero di istanze da creare.NAME_PATTERN
: il pattern del nome per le istanze. Per sostituire una sequenza di numeri in un nome dell'istanza, utilizza una sequenza di caratteri hash (#
). Ad esempio, l'utilizzo diinstance-#
per il pattern del nome genera istanze con nomi che iniziano coninstance-1
,instance-2
e continuano fino al numero di istanze specificato daCOUNT
.MACHINE_TYPE
: il tipo di macchina da utilizzare per le istanze.IMAGE_PROJECT
: il progetto di immagini che contiene l'immagine del sistema operativo, ad esempiodebian-cloud
. Per saperne di più sui progetti di immagini supportati, vedi Immagini pubbliche.IMAGE
: specifica una delle seguenti opzioni:Una versione specifica dell'immagine sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichifamily/debian-12
, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
Impedisci alle istanze di Compute in un gruppo di istanze gestite (MIG) di utilizzare le prenotazioni quando esegui le seguenti operazioni:
Nella console Google Cloud , vai alla pagina Crea un modello di istanza.
Nel campo Nome, inserisci un nome per il template di istanza.
Nella sezione Località, specifica se vuoi creare un modello di istanza regionale (impostazione predefinita) o globale.
Nella sezione Configurazione macchina, specifica il tipo di macchina da utilizzare per le istanze create utilizzando il modello.
Espandi la sezione Opzioni avanzate e segui questi passaggi:
Espandi la sezione Gestione.
Nella sezione Prenotazioni, seleziona Non utilizzare una prenotazione.
Fai clic su Crea.
INSTANCE_TEMPLATE_NAME
: il nome del template di istanzaREGION
: la regione in cui creare il template di istanzaMACHINE_TYPE
: il tipo di macchina da utilizzare per le istanze create utilizzando il modello di istanza.Per creare un modello di istanza globale: metodo
instanceTemplates.insert
.Per creare un modello di istanza regionale: metodo
regionInstanceTemplates.insert
.PROJECT_ID
: l'ID del progetto in cui creare il modello di istanza.INSTANCE_TEMPLATE_NAME
: il nome del modello di istanza.MACHINE_TYPE
: il tipo di macchina da utilizzare per le istanze create utilizzando il modello di istanza.IMAGE_PROJECT
: il progetto di immagini che contiene l'immagine del sistema operativo, ad esempiodebian-cloud
. Per saperne di più sui progetti di immagini supportati, vedi Immagini pubbliche.IMAGE
: specifica una delle seguenti opzioni:Una versione specifica dell'immagine sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Specifica l'immagine sistema operativo più recente e non deprecata. Ad esempio, se specifichifamily/debian-12
, viene utilizzata l'ultima versione della famiglia di immagini Debian 12. Per saperne di più sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
Vai
Per utilizzare gli esempi di Go questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, vedi Set up authentication for a local development environment.
Java
Per utilizzare gli esempi di Java questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, vedi Set up authentication for a local development environment.
Node.js
Per utilizzare gli esempi di Node.js questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, vedi Set up authentication for a local development environment.
Python
Per utilizzare gli esempi di Python questa pagina in un ambiente di sviluppo locale, installa e inizializza gcloud CLI, quindi configura le Credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, vedi Set up authentication for a local development environment.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Per saperne di più, consulta la sezione Autenticarsi per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud .
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per impedire a un'istanza di computing di utilizzare le prenotazioni, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per impedire a un'istanza di computing di utilizzare le prenotazioni. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per impedire a un'istanza di computing di utilizzare le prenotazioni, sono necessarie le seguenti autorizzazioni:
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Impedisci il consumo delle prenotazioni
Per impedire a un'istanza di calcolo di utilizzare le prenotazioni, imposta la proprietà di affinità di prenotazione (
reservationAffinity
) in modo che non utilizzi le prenotazioni. Questa proprietà controlla se un'istanza può utilizzare prenotazioni corrispondenti, una prenotazione specifica o nessuna prenotazione.Per impedire a una o più istanze di consumare le prenotazioni, utilizza uno dei seguenti metodi:
Impedire il consumo in un'istanza esistente
Puoi aggiornare un'istanza in esecuzione in modo che non utilizzi più automaticamente le prenotazioni. Per rendere effettive le modifiche, devi riavviare l'istanza come descritto in questa sezione.
Per impedire a un'istanza esistente di utilizzare le prenotazioni, seleziona una delle seguenti opzioni:
gcloud
REST
Per ulteriori informazioni sull'aggiornamento di un'istanza, consulta Aggiorna le proprietà delle istanze.
Evitare il consumo durante la creazione di un'istanza
Per creare un'istanza di calcolo che non può utilizzare le prenotazioni, seleziona una delle seguenti opzioni:
Console
gcloud
Per creare un'istanza che non può utilizzare le prenotazioni, utilizza il comando
gcloud compute instances create
con il flag--reservation-affinity
impostato sunone
:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none \ --zone=ZONE
Sostituisci quanto segue:
Vai
Per creare un'istanza che non può utilizzare le prenotazioni, utilizza il seguente esempio di codice:
Java
Per creare un'istanza che non può utilizzare le prenotazioni, utilizza il seguente esempio di codice:
Node.js
Per creare un'istanza che non può utilizzare le prenotazioni, utilizza il seguente esempio di codice:
Python
Per creare un'istanza che non può utilizzare le prenotazioni, utilizza il seguente esempio di codice:
REST
Per creare un'istanza che non può utilizzare le prenotazioni, invia una richiesta
POST
al metodoinstances.insert
. Nel corpo della richiesta, includi il campoconsumeReservationType
impostato suNO_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" } }
Sostituisci quanto segue:
Per ulteriori informazioni sulla creazione di un'istanza, consulta Crea e avvia un'istanza Compute Engine.
Evitare il consumo durante la creazione collettiva di istanze
Per creare in blocco istanze di Compute che non possono utilizzare le prenotazioni, seleziona una delle seguenti opzioni:
gcloud
Per creare in blocco istanze che non possono utilizzare le prenotazioni, utilizza il comando
gcloud compute instances bulk create
con il flag--reservation-affinity
impostato sunone
.Ad esempio, per creare in blocco più istanze in un'unica zona e specificare un pattern di nomi, esegui questo comando:
gcloud compute instances bulk create \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --reservation-affinity=none \ --zone=ZONE
Sostituisci quanto segue:
REST
Per creare in blocco istanze che non possono utilizzare le prenotazioni, invia una richiesta
POST
al metodoinstances.bulkInsert
. Nel corpo della richiesta, includi il campoconsumeReservationType
impostato suNO_RESERVATION
.Ad esempio, per creare in blocco più istanze in un'unica zona e specificare un pattern di nomi, invia una richiesta come segue:
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" } } }
Sostituisci quanto segue:
Per saperne di più sulla creazione di istanze in blocco, consulta Crea più VM in blocco.
Evitare il consumo durante la creazione di un modello di istanza
Dopo aver creato un modello di istanza che configura le istanze in modo che non utilizzino le prenotazioni, puoi utilizzare il modello per:
Per creare un modello di istanza che configuri le istanze in modo che non utilizzino le prenotazioni, seleziona una delle seguenti opzioni:
Console
gcloud
Per creare un modello di istanza che configuri le istanze in modo che non utilizzino le prenotazioni, utilizza il comando
gcloud compute instances-templates create
con il flag--reservation-affinity
impostato sunone
.Per creare un modello di istanza regionale che configuri le istanze in modo che non utilizzino le prenotazioni, esegui questo comando. Se vuoi creare un template di istanza globale, utilizza lo stesso comando senza il flag
--instance-template-region
.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none
Sostituisci quanto segue:
Vai
Per creare un modello di istanza che configuri le istanze in modo che non utilizzino le prenotazioni, utilizza il seguenteesempio di codicee:
Java
Per creare un modello di istanza che configuri le istanze in modo che non utilizzino le prenotazioni, utilizza il seguenteesempio di codicee:
Node.js
Per creare un modello di istanza che configuri le istanze in modo che non utilizzino le prenotazioni, utilizza il seguenteesempio di codicee:
Python
Per creare un modello di istanza che configuri le istanze in modo che non utilizzino le prenotazioni, utilizza il seguenteesempio di codicee:
REST
Per creare un modello di istanza che configuri le istanze in modo che non utilizzino le prenotazioni, invia una richiesta
POST
con uno dei seguenti metodi:Nel corpo della richiesta, includi il campo
consumeReservationType
e impostalo suNO_RESERVATION
.Ad esempio, per creare un modello di istanza regionale e specificare di non utilizzare le prenotazioni, invia la seguente richiesta:
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" } } }
Sostituisci quanto segue:
Per ulteriori informazioni sulla creazione di modelli di istanza, consulta Creare modelli di istanza.
Passaggi successivi
Salvo quando diversamente specificato, i contenuti di questa pagina sono concessi in base alla licenza Creative Commons Attribution 4.0, mentre gli esempi di codice sono concessi in base alla licenza Apache 2.0. Per ulteriori dettagli, consulta le norme del sito di Google Developers. Java è un marchio registrato di Oracle e/o delle sue consociate.
Ultimo aggiornamento 2025-07-14 UTC.
-