Questo documento spiega come impedire alle istanze Compute Engine di utilizzare le prenotazioni. Per scoprire di più sulle prenotazioni, consulta la pagina relativa alle prenotazioni di risorse di zona di Compute Engine.
Le prenotazioni consumate automaticamente consentono alle istanze con proprietà corrispondenti alle prenotazioni di consumarle automaticamente. Per evitare che le istanze utilizzino una prenotazione, esegui una delle seguenti operazioni:
Configura le istanze in modo che non consumino 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 consumi prenotazioni solo se l'istanza è configurata per consumare 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 a servizi e 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, 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.
-
Per creare le prenotazioni:
compute.reservations.create
nel 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 modello di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
nel modello di istanza - Per assegnare una rete legacy alla VM:
compute.networks.use
nel progetto - Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
nel progetto - Per assegnare un indirizzo IP esterno alla VM quando nel progetto viene utilizzata una rete precedente:
compute.networks.useExternalIp
- Per specificare una subnet per la VM:
compute.subnetworks.use
nel progetto o nella subnet scelta - Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC:
compute.subnetworks.useExternalIp
nel progetto o nella subnet scelta - Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadata
nel 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 account di servizio per consentire alla VM di utilizzare:
compute.instances.setServiceAccount
sulla VM - Per creare un nuovo disco per la VM:
compute.disks.create
nel progetto - Per collegare un disco esistente in modalità di sola lettura o di lettura e 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 istanze:
compute.instanceTemplates.create
sul progetto Evitare il consumo durante la creazione collettiva di istanze
Impedire 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 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'istanza.YAML_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'istanza.YAML_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, invia 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, invia una richiesta
PUT
al metodoinstances.update
. Nella richiesta: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 Avanzate.
Nella sezione Prenotazioni, seleziona Non utilizzare una prenotazione.
Fai clic su Crea.
INSTANCE_NAME
: il nome dell'istanza.MACHINE_TYPE
: il tipo di macchina da utilizzare per l'istanza.ZONE
: la zona in cui creare l'istanza.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 utilizzare per l'istanza.IMAGE_PROJECT
: il progetto immagine che contiene l'immagine del 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 del sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichifamily/debian-12
, viene utilizzata la versione più recente 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 istanza, utilizza una sequenza di caratteri hash (#
). Ad esempio, l'utilizzo diinstance-#
per il pattern di nomi genera istanze con nomi che iniziano coninstance-1
,instance-2
e così via fino al numero di istanze specificato daCOUNT
.ZONE
: la zona in cui creare le istanze collettivamente.PROJECT_ID
: l'ID del progetto in cui creare le istanze collettivamente.ZONE
: la zona in cui creare le istanze collettivamente.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 istanza, utilizza una sequenza di caratteri hash (#
). Ad esempio, l'utilizzo diinstance-#
per il pattern di nomi genera istanze con nomi che iniziano coninstance-1
,instance-2
e così via fino al numero di istanze specificato daCOUNT
.MACHINE_TYPE
: il tipo di macchina da utilizzare per le istanze.IMAGE_PROJECT
: il progetto immagine che contiene l'immagine del 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 del sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichifamily/debian-12
, viene utilizzata la versione più recente 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.
Per impedire alle istanze di calcolo in un gruppo di istanze gestite (MIG) di consumare prenotazioni, esegui le seguenti operazioni:
Nella console Google Cloud, vai alla pagina Crea un modello di istanza.
Nel campo Nome, inserisci un nome per il modello di istanza.
Nella sezione Località, specifica se vuoi creare un modello di istanza regionale (predefinito) 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 modello di istanza.REGION
: la regione in cui creare il modello di istanza.MACHINE_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 immagine che contiene l'immagine del 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 del sistema operativo, ad esempio
debian-12-bookworm-v20240617
.Una famiglia di immagini, che deve essere formattata come
family/IMAGE_FAMILY
. Questo specifica l'immagine del sistema operativo più recente e non ritirata. Ad esempio, se specifichifamily/debian-12
, viene utilizzata la versione più recente 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 Go esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Java
Per utilizzare gli Java esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Node.js
Per utilizzare gli Node.js esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
Python
Per utilizzare gli Python esempi in questa pagina in un ambiente di sviluppo locale, installa e inizializza l'interfaccia a riga di comando gcloud, quindi configura le credenziali predefinite dell'applicazione con le tue credenziali utente.
Per ulteriori informazioni, consulta Set up authentication for a local development environment.
REST
Per utilizzare gli esempi dell'API REST in questa pagina in un ambiente di sviluppo locale, utilizza le credenziali fornite a gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Per ulteriori informazioni, consulta Eseguire l'autenticazione per l'utilizzo di REST nella documentazione Google Cloud sull'autenticazione.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per impedire a un'istanza Compute di utilizzare le prenotazioni, chiedi all'amministratore di concederti il ruolo IAM Amministratore istanze Compute (v1) (
roles/compute.instanceAdmin.v1
) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.Questo ruolo predefinito contiene le autorizzazioni necessarie per impedire a un'istanza di calcolo di utilizzare le prenotazioni. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per impedire a un'istanza di calcolo di utilizzare le prenotazioni, sono necessarie le seguenti autorizzazioni:
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Evitare il consumo delle prenotazioni
Per impedire a un'istanza di calcolo di utilizzare le prenotazioni, imposta la proprietà affinità prenotazione (
reservationAffinity
) in modo che non le utilizzi. Questa proprietà controlla se un'istanza può utilizzare prenotazioni corrispondenti, una prenotazione specifica o nessuna prenotazione.Per impedire a una o più istanze di utilizzare le prenotazioni, utilizza uno dei seguenti metodi:
Evitare il consumo in un'istanza esistente
Puoi aggiornare un'istanza in esecuzione in modo che non consumi 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
REST
Per ulteriori informazioni sull'aggiornamento di un'istanza, consulta Aggiornare le proprietà delle istanze.
Impedire 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 codice campione:
Java
Per creare un'istanza che non può utilizzare le prenotazioni, utilizza il seguente codice campione:
Node.js
Per creare un'istanza che non può utilizzare le prenotazioni, utilizza il seguente codice campione:
Python
Per creare un'istanza che non può utilizzare le prenotazioni, utilizza il seguente codice campione:
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 Creare e avviare un'istanza Compute Engine.
Evitare il consumo durante la creazione collettiva di istanze
Per creare collettivamente istanze di calcolo 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 più istanze in un'unica zona e specificare un pattern di nomi, esegui il seguente 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 collettivamente istanze 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 istanze collettivamente in un'unica zona e specificare un pattern di nomi, effettua 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 ulteriori informazioni sulla creazione collettiva di istanze, consulta Creare VM collettivamente.
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 consumino prenotazioni, puoi utilizzarlo per:
Per creare un modello di istanza che configuri le istanze in modo che non consumino prenotazioni, seleziona una delle seguenti opzioni:
Console
gcloud
Per creare un modello di istanza che configuri le istanze in modo che non consumino 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 consumino prenotazioni, esegui il seguente comando. Se vuoi creare un modello 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 consumino prenotazioni, utilizza il seguente esempio di codice:
Java
Per creare un modello di istanza che configuri le istanze in modo che non consumino prenotazioni, utilizza il seguente esempio di codice:
Node.js
Per creare un modello di istanza che configuri le istanze in modo che non consumino prenotazioni, utilizza il seguente esempio di codice:
Python
Per creare un modello di istanza che configuri le istanze in modo che non consumino prenotazioni, utilizza il seguente esempio di codice:
REST
Per creare un modello di istanza che configuri le istanze in modo che non consumino prenotazioni, effettua 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 consumare 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:
Per saperne di più sulla creazione di modelli di istanze, consulta Creare modelli 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-03-04 UTC.
-