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 evitare che le istanze utilizzino 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 tue istanze per attività come test, debug o implementazioni isolate.
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 servizi e alle API Google Cloud .
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
-
Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI 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.
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.
-
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.
-
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 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.
-
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.
-
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 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.
-
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.
-
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 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.
-
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.
-
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 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, devi utilizzare le credenziali che fornisci a gcloud CLI.
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.
Per saperne di più, consulta 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 ulteriori informazioni 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:
-
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 template di istanze:
compute.instanceTemplates.create
sul progetto
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Previeni l'utilizzo delle prenotazioni
Per impedire a un'istanza di computing di utilizzare le prenotazioni, imposta la proprietà di affinità di prenotazione (
reservationAffinity
) in modo che non le utilizzi. Questa proprietà controlla se un'istanza può consumare prenotazioni corrispondenti, una prenotazione specifica o nessuna prenotazione.Per impedire a una o più istanze di utilizzare le prenotazioni, utilizza uno dei seguenti metodi:
Previeni il consumo durante la creazione in blocco di istanze
Previeni il consumo durante la creazione di un template di istanza
Previeni il consumo in un'istanza esistente
Puoi aggiornare un'istanza in esecuzione in modo che non utilizzi più automaticamente le prenotazioni. Per applicare 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
Crea un file YAML vuoto.
Per esportare le proprietà di un'istanza nel file YAML 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 precedenteZONE
: 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 precedenteZONE
: la zona in cui esiste l'istanza
REST
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'istanzaZONE
: la zona in cui esiste l'istanzaINSTANCE_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, invia 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" }, ... }
Per ulteriori informazioni sull'aggiornamento di un'istanza, consulta Aggiorna le proprietà delle istanze.
Previeni il consumo durante la creazione di un'istanza
Per creare un'istanza di computing che non può utilizzare le prenotazioni, seleziona una delle seguenti opzioni:
Console
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 usare per l'istanza.
Nel menu di navigazione, fai clic su Avanzate.
Nella sezione Prenotazioni, seleziona Non utilizzare una prenotazione.
Fai clic su Crea.
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:
INSTANCE_NAME
: il nome dell'istanzaMACHINE_TYPE
: il tipo di macchina da usare per l'istanzaZONE
: la zona in cui creare l'istanza
Go
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, effettua 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:
PROJECT_ID
: l'ID del progetto in cui vuoi creare l'istanza.ZONE
: la zona in cui creare l'istanza.INSTANCE_NAME
: il nome dell'istanza.MACHINE_TYPE
: il tipo di macchina da usare per l'istanza.IMAGE_PROJECT
: il progetto immagine che contiene l'immagine sistema operativo, ad esempiodebian-cloud
. Per ulteriori informazioni sui progetti di immagini supportati, consulta 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
. In questo modo, viene specificata 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 ulteriori informazioni sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
Per ulteriori informazioni sulla creazione di un'istanza, consulta Crea e avvia un'istanza Compute Engine.
Previeni il consumo durante la creazione in blocco di istanze
Per creare in blocco istanze di computing 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 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:
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 via di seguito fino al numero di VM specificato daCOUNT
.ZONE
: la zona in cui creare le istanze in blocco.
REST
Per creare istanze in blocco che non possono utilizzare le prenotazioni, invia una
POST
richiesta al metodoinstances.bulkInsert
. Nel corpo della richiesta, includi il campoconsumeReservationType
impostato suNO_RESERVATION
.Ad esempio, per creare in blocco istanze in un'unica zona e specificare un pattern di nomi, invia una richiesta nel modo seguente:
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:
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 via di seguito fino al numero di VM specificato daCOUNT
.MACHINE_TYPE
: il tipo di macchina da utilizzare per le istanze.IMAGE_PROJECT
: il progetto immagine che contiene l'immagine sistema operativo, ad esempiodebian-cloud
. Per ulteriori informazioni sui progetti di immagini supportati, consulta 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
. In questo modo, viene specificata 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 ulteriori informazioni sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
Per ulteriori informazioni sulla creazione di istanze in blocco, consulta Crea VM in blocco.
Previeni il consumo durante la creazione di un template di istanza
Dopo aver creato un template di istanza che configura le istanze in modo che non utilizzino prenotazioni, puoi utilizzarlo per:
Impedisci alle istanze di computing in un gruppo di istanze gestite (MIG) di utilizzare prenotazioni eseguendo le seguenti operazioni:
Per creare un template di istanza che configuri le istanze in modo che non utilizzino prenotazioni, seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud , vai alla pagina Crea template di istanza.
Nel campo Nome, inserisci un nome per il template di istanza.
Nella sezione Località, specifica se vuoi creare un template di istanze regionale (valore predefinito) o globale.
Nella sezione Configurazione macchina, specifica il tipo di macchina da utilizzare per le istanze create utilizzando il template.
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.
gcloud
Per creare un template di istanza che configuri le istanze in modo che non utilizzino prenotazioni, utilizza il comando
gcloud compute instances-templates create
con il flag--reservation-affinity
impostato sunone
.Per creare un template di istanza regionale che configuri le istanze in modo che non utilizzino prenotazioni, esegui il seguente 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:
INSTANCE_TEMPLATE_NAME
: il nome del template di istanza.REGION
: la regione in cui creare il template di istanzaMACHINE_TYPE
: il tipo di macchina da utilizzare per le istanze create utilizzando il template di istanza
Go
Per creare un template di istanza che configuri le istanze in modo che non utilizzino prenotazioni, utilizza il seguente esempio di codice:
Java
Per creare un template di istanza che configuri le istanze in modo che non utilizzino prenotazioni, utilizza il seguente esempio di codice:
Node.js
Per creare un template di istanza che configuri le istanze in modo che non utilizzino prenotazioni, utilizza il seguente esempio di codice:
Python
Per creare un template di istanza che configuri le istanze in modo che non utilizzino prenotazioni, utilizza il seguente esempio di codice:
REST
Per creare un template di istanza che configuri le istanze in modo che non utilizzino prenotazioni, effettua una richiesta
POST
con uno dei seguenti metodi:Per creare un template di istanza globale: metodo
instanceTemplates.insert
.Per creare un template di istanza regionale: metodo
regionInstanceTemplates.insert
.
Nel corpo della richiesta, includi il campo
consumeReservationType
e impostalo suNO_RESERVATION
.Ad esempio, per creare un template di istanza regionale e specificare di non utilizzare le prenotazioni, effettua una richiesta come segue:
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:
PROJECT_ID
: l'ID del progetto in cui creare il template di istanza.INSTANCE_TEMPLATE_NAME
: il nome del template di istanza.MACHINE_TYPE
: il tipo di macchina da utilizzare per le istanze create utilizzando il template di istanza.IMAGE_PROJECT
: il progetto immagine che contiene l'immagine sistema operativo, ad esempiodebian-cloud
. Per ulteriori informazioni sui progetti di immagini supportati, consulta 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
. In questo modo, viene specificata 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 ulteriori informazioni sull'utilizzo delle famiglie di immagini, consulta le best practice per le famiglie di immagini.
Per ulteriori informazioni sulla creazione di template di istanze, consulta Crea template di istanze.
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-08-08 UTC.
-