Questo documento spiega come creare prenotazioni condivise, ovvero prenotazioni condivise tra più progetti, e gestire i progetti della tua organizzazione che possono utilizzare le prenotazioni condivise.
Una prenotazione condivisa può essere utilizzata dal progetto che la ospita (progetto proprietario) e dai progetti con cui è condivisa (progetti consumer). Utilizza le prenotazioni condivise se la tua organizzazione ha più progetti che richiedono istanze di macchine virtuali (VM) con le stesse proprietà prenotate. Con le prenotazioni condivise puoi migliorare l'utilizzo delle tue prenotazioni e ridurre il numero di prenotazioni da creare e gestire. Per saperne di più sulle prenotazioni, consulta Prenotazioni di risorse di zona di Compute Engine.
Per altri metodi di creazione delle prenotazioni, consulta invece le seguenti pagine:
Per creare una prenotazione che può essere utilizzata solo da un singolo progetto, consulta Crea una prenotazione per un singolo progetto.
Per creare una prenotazione al momento dell'acquisto di un impegno basato sulle risorse, consulta Acquista impegni con prenotazioni collegate. Gli impegni offrono sconti, noti come sconti per impegno di utilizzo (CUD), sui costi delle risorse on demand in cambio dell'acquisto di un livello minimo di risorse o della spesa di un importo minimo.
Prima di iniziare
- Esamina i requisiti e le limitazioni per le prenotazioni.
- Esamina i requisiti relativi alle quote e le limitazioni per le prenotazioni condivise.
- Assicurati che il progetto che utilizzi per creare prenotazioni condivise sia stato aggiunto alla lista consentita per il vincolo della policy dell'organizzazione Progetti proprietari di prenotazioni condivise (
compute.sharedReservationsOwnerProjects
) da un amministratore delle policy dell'organizzazione. Questa lista consentita è vuota per impostazione predefinita, pertanto non puoi creare prenotazioni condivise finché la tua organizzazione non concede questa autorizzazione a uno o più progetti. Per maggiori dettagli sulla visualizzazione e sulla modifica del vincolo delle policy dell'organizzazione, consulta Consenti e limita la creazione e la modifica di prenotazioni condivise da parte dei progetti in questo documento. -
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 di 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
-
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.
-
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.
-
Compute Admin (
roles/compute.admin
) sul progetto -
Per visualizzare e modificare le policy dell'organizzazione:
Organization Policy Administrator (
roles/orgpolicy.policyAdmin
) sull'organizzazione -
compute.reservations.create
sul progetto -
Per visualizzare le policy dell'organizzazione:
orgpolicy.policy.get
sull'organizzazione -
Per modificare le policy dell'organizzazione:
orgpolicy.policy.set
sull'organizzazione -
Per specificare un modello di istanza:
compute.instanceTemplates.useReadOnly
sul modello di istanza -
Fai creare al progetto proprietario la prenotazione condivisa, ma senza utilizzarla.
- Per distribuire la spesa tra i progetti, è consigliabile che solo i progetti consumer utilizzino una prenotazione condivisa. Il progetto proprietario deve essere utilizzato solo per creare la prenotazione condivisa.
- Quando crei una prenotazione condivisa, il progetto proprietario deve avere una quota sufficiente per le risorse totali da prenotare. Dopo aver creato la prenotazione, il progetto proprietario deve avere la quota per le risorse prenotate che intende consumare. Per saperne di più, consulta Requisiti aggiuntivi delle quote per le prenotazioni condivise.
-
Riduci al minimo il numero di progetti nella tua organizzazione a cui consenti di creare prenotazioni condivise. Puoi controllare questo comportamento tramite il vincolo delle policy dell'organizzazione Progetti proprietari di prenotazioni condivise (
compute.sharedReservationsOwnerProjects
).- Puoi elencare solo le prenotazioni create da ciascun progetto. Ciò significa che le prenotazioni condivise sono elencate solo nel progetto proprietario: non puoi elencare le prenotazioni condivise con ogni progetto o elencare tutte le prenotazioni condivise in ogni organizzazione. Pertanto, mantenere un numero ridotto di progetti proprietari semplifica il monitoraggio e la gestione delle prenotazioni condivise.
- Limita la condivisione di una prenotazione condivisa solo ad alcuni progetti per gestire più facilmente la quota delle risorse prenotate.
- Per saperne di più, consulta Consenti e limita la creazione e la modifica di prenotazioni condivise da parte dei progetti.
-
Riduci al minimo il numero di prenotazioni condivise separate con proprietà delle VM identiche.
- Un'organizzazione può avere fino a 100 prenotazioni condivise per ogni combinazione unica di proprietà delle VM. Di conseguenza, riducendo al minimo il numero di prenotazioni condivise con proprietà delle VM identiche create contribuisci a mitigare questo limite.
- Un numero minore di prenotazioni condivise migliora la gestibilità.
-
Condividi le prenotazioni solo tra progetti con lo stesso account di fatturazione Cloud.
- Limita ogni prenotazione condivisa in modo che sia condivisa solo con i progetti consumer che hanno lo stesso account di fatturazione Cloud del progetto proprietario. In questo modo è più facile capire se una prenotazione è stata utilizzata e come è stata fatturata.
-
Per le richieste di prenotazioni future, esamina attentamente il numero totale di VM richieste.
- Se stai creando una
richiesta di prenotazione futura, assicurati di richiedere un numero totale di VM che tenga conto di quanto segue:
- Tutte le VM prenotate corrispondenti che saranno già esistenti alla data futura.
- Tutte le VM non prenotate corrispondenti che saranno già esistenti alla data futura.
- Eventuali prenotazioni on demand inutilizzate corrispondenti che saranno già esistenti alla data futura.
- L'aumento dell'utilizzo che vuoi prenotare per la data futura.
Ad esempio, supponi di avere bisogno di altre 10 VM per la data futura e che, alla data futura, avrai già le seguenti risorse:
- 40 VM prenotate corrispondenti
- 50 VM non prenotate corrispondenti
o
- 40 VM prenotate corrispondenti
- 50 prenotazioni on demand non utilizzate corrispondenti
Poiché il tuo utilizzo esistente alla data futura corrisponde già a 90 VM e prenotazioni corrispondenti e hai bisogno di altre dieci VM, devi specificare un numero totale di
100
nella richiesta di prenotazione futura.Per saperne di più, consulta Conteggia ed esegui il provisioning delle risorse prenotate.
- Se stai creando una
richiesta di prenotazione futura, assicurati di richiedere un numero totale di VM che tenga conto di quanto segue:
Scarica la policy per la tua organizzazione come file denominato
policy.yaml
utilizzando il comandogcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Sostituisci ORGANIZATION_ID con l'ID organizzazione della tua organizzazione.
Utilizza un editor di testo per aprire il file
policy.yaml
e visualizzare il vincolocompute.sharedReservationsOwnerProjects
. I progetti autorizzati a creare e modificare prenotazioni condivise sono elencati sottoallowedValues
:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
dove PROJECT_NUMBER_1, PROJECT_NUMBER_2 e PROJECT_NUMBER_3 sono i numeri di progetto degli unici progetti nella tua organizzazione autorizzati a creare prenotazioni condivise.
(Facoltativo) Elimina il file
policy.yaml
.Se utilizzi un terminale Linux o macOS, esegui questo comando:
rm policy.yaml
Se utilizzi un terminale Windows, esegui questo comando:
del policy.yaml
Per concedere a un singolo progetto l'autorizzazione per creare e modificare le prenotazioni condivise, utilizza il comando
gcloud resource-manager org-policies allow
. Puoi ripetere questo comando per ogni progetto a cui vuoi concedere questa autorizzazione.gcloud resource-manager org-policies allow compute.sharedReservationsOwnerProjects projects/PROJECT_NUMBER \ --organization=ORGANIZATION_ID
Sostituisci quanto segue:
- PROJECT_NUMBER: il numero di progetto (non l'ID progetto) di un progetto della tua organizzazione a cui vuoi consentire di creare e modificare prenotazioni condivise.
- ORGANIZATION_ID: l'ID organizzazione della tua organizzazione.
Per concedere o revocare a più progetti le autorizzazioni per creare e modificare prenotazioni condivise, sostituisci il vincolo delle policy dell'organizzazione:
Per scaricare la policy per la tua organizzazione come file denominato
policy.yaml
, utilizza il comandogcloud resource-manager org-policies describe
:gcloud resource-manager org-policies describe compute.sharedReservationsOwnerProjects --organization=ORGANIZATION_ID > policy.yaml
Sostituisci ORGANIZATION_ID con l'ID organizzazione della tua organizzazione.
Utilizza un editor di testo per modificare il file
policy.yaml
in modo che il vincolocompute.sharedReservationsOwnerProjects
elenchi tutti i progetti ai quali vuoi consentire di creare e modificare prenotazioni condivise sottoallowedValues
.- Per ogni progetto a cui vuoi concedere l'autorizzazione per creare e modificare prenotazioni condivise, aggiungi il progetto su una nuova riga sotto
allowedValues
. - Per ogni progetto a cui vuoi revocare l'autorizzazione per creare e modificare le prenotazioni condivise, elimina la riga corrispondente.
Al termine, assicurati che il file
policy.yaml
abbia un aspetto simile al seguente:... constraint: constraints/compute.sharedReservationsOwnerProjects listPolicy: allowedValues: - projects/PROJECT_NUMBER_1 - projects/PROJECT_NUMBER_2 - projects/PROJECT_NUMBER_3 ...
dove PROJECT_NUMBER_1, PROJECT_NUMBER_2 e PROJECT_NUMBER_3 sono i numeri di progetto (non gli ID progetto) di tutti i progetti della tua organizzazione ai quali vuoi concedere l'autorizzazione per creare e modificare prenotazioni condivise.
- Per ogni progetto a cui vuoi concedere l'autorizzazione per creare e modificare prenotazioni condivise, aggiungi il progetto su una nuova riga sotto
Salva il file
policy.yaml
e chiudi l'editor di testo.Per aggiornare le policy per la tua organizzazione con le modifiche, utilizza il comando
gcloud resource-manager org-policies set-policy
:gcloud resource-manager org-policies set-policy --organization=ORGANIZATION_ID policy.yaml
Sostituisci ORGANIZATION_ID con l'ID organizzazione della tua organizzazione.
(Facoltativo) Elimina il file
policy.yaml
.Se utilizzi un terminale Linux o macOS, esegui questo comando:
rm policy.yaml
Se utilizzi un terminale Windows, esegui questo comando:
del policy.yaml
Suggerimento: Specifica un modello di istanza
Questa sezione spiega come utilizzare un modello di istanza per definire le proprietà di una prenotazione condivisa. Utilizzando un modello di istanza puoi definire in un unico posto le proprietà di una prenotazione e le VM che possono utilizzarla. Tuttavia, poiché i modelli sono specifici del progetto, non puoi usare lo stesso modello per creare VM che possono utilizzare la prenotazione al di fuori del progetto che ha creato la prenotazione. Devi creare modelli simili nei progetti con cui la prenotazione è condivisa o creare VM specificando direttamente le proprietà.
-
Questa sezione spiega come utilizzare una VM esistente per definire le proprietà di una prenotazione. Usando le proprietà di una VM esistente puoi utilizzare la prenotazione creando VM con proprietà corrispondenti a quelle della VM di riferimento.
Specifica le proprietà direttamente
Questa sezione spiega come definire direttamente le proprietà di una prenotazione condivisa. Questo metodo richiede di assicurarti manualmente che le proprietà delle VM e delle prenotazioni corrispondano esattamente: eventuali proprietà non corrispondenti impediscono l'utilizzo.
Crea una prenotazione che può essere utilizzata solo dalle VM di cui è un target specifico, come spiegato nelle sezioni successive di questo documento. Quindi configura le VM in modo che utilizzino la prenotazione specifica.
Un modello di istanza contiene impostazioni specifiche del progetto, pertanto puoi accedere e utilizzare un modello di istanza solo all'interno dello stesso progetto. Se crei una prenotazione condivisa specificando un modello di istanza, non puoi utilizzare lo stesso modello per creare VM che possono utilizzare la prenotazione al di fuori del progetto che ha creato la prenotazione.
Crea la prenotazione nella stessa regione e nella stessa zona delle risorse all'interno del modello di istanza. Qualsiasi risorsa regionale o di zona specificata in un modello di istanza, ad esempio un tipo di macchina o un volume Persistent Disk, limita l'utilizzo del modello alle posizioni in cui esistono queste risorse. Ad esempio, se il modello di istanza specifica un volume Persistent Disk esistente nella zona
us-central1-a
, puoi creare la prenotazione solo nella stessa zona. Per verificare se un modello esistente specifica risorse che lo legano a una determinata regione o zona, visualizza i dettagli relativi al modello di istanza e cerca al suo interno riferimenti a quelle risorse.Nella console Google Cloud , vai alla pagina Prenotazioni.
Viene visualizzata la pagina Prenotazioni.
Fai clic su
Crea prenotazione.Viene visualizzata la pagina Crea una prenotazione.
In Nome, inserisci un nome per la prenotazione.
Per Regione e Zona, seleziona dove vuoi prenotare le risorse.
Nella sezione Tipo di condivisione, segui questi passaggi:
Per specificare una prenotazione condivisa, seleziona Condivisa.
Fai clic su
Aggiungi progetti, quindi seleziona i progetti dell'organizzazione del progetto corrente con cui vuoi condividere la prenotazione. Puoi selezionare fino a 100 progetti consumer.
(Facoltativo) Per consentire l'utilizzo di una prenotazione di VM GPU da parte dei job di addestramento personalizzato o dei job di previsione in Vertex AI, nella sezione Servizi Google Cloud, seleziona Condividi prenotazione.
Nella sezione Utilizza con un'istanza VM, seleziona una delle seguenti opzioni:
Per consentire alle istanze VM corrispondenti di utilizzare automaticamente questa prenotazione, seleziona Usa automaticamente la prenotazione se non è già selezionata.
Per utilizzare le risorse di questa prenotazione solo durante la creazione di VM corrispondenti che hanno come target specifico questa prenotazione in base al nome, utilizza Seleziona una prenotazione specifica.
In Numero di istanze VM, inserisci il numero di VM che vuoi prenotare.
Nella sezione Configurazione macchina, seleziona Usa modello di istanza, quindi scegli il modello di istanza che preferisci. Se selezioni un modello di istanza regionale, puoi prenotare risorse solo nella stessa regione del modello.
Nella sezione Eliminazione automatica, puoi attivare l'opzione di eliminazione automatica per consentire a Compute Engine di eliminare automaticamente la prenotazione in una data e ora specifica. L'eliminazione automatica delle prenotazioni può essere utile per evitare addebiti non necessari quando smetti di utilizzare la prenotazione.
Per creare la prenotazione, fai clic su Crea.
Viene visualizzata la pagina Prenotazioni. La creazione della prenotazione condivisa potrebbe richiedere fino a un minuto.
RESERVATION_NAME
: il nome della prenotazione da creare.PROJECT_ID
: l'ID del progetto in cui vuoi prenotare le risorse e in cui esiste il modello di istanza.CONSUMER_PROJECT_IDS
: un elenco separato da virgole di ID dei progetti che possono utilizzare questa prenotazione, ad esempioproject-1,project-2
. Puoi includere fino a 100 progetti consumer. Questi progetti devono appartenere alla stessa organizzazione del progetto proprietario. Non includere il progetto proprietario. Per impostazione predefinita, è già autorizzato a utilizzare la prenotazione.LOCATION
: la località del modello di istanza. Specifica uno dei seguenti valori:Per un modello di istanza globale:
global
.Per un modello di istanza regionale:
regions/REGION
. SostituisciREGION
con la regione in cui si trova il modello dell'istanza. Se specifichi un modello di istanza regionale, puoi prenotare VM solo nella stessa regione del modello.
INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza esistente. Se il modello di istanza specifica un tipo di macchina A3 Mega, A3 High o A3 Edge, devi includere il flag--require-specific-reservation
. Ciò indica che solo le VM che hanno come target specifico la prenotazione possono utilizzarla. Per saperne di più, consulta Utilizza VM di una prenotazione specifica.NUMBER_OF_VMS
: il numero di VM da prenotare.ZONE
: la zona in cui prenotare le risorse.Per specificare che solo le VM che hanno come target specifico questa prenotazione possono utilizzarla, includi il flag
--require-specific-reservation
.gcloud compute reservations create RESERVATION_NAME \ --require-specific-reservation \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Per consentire l'utilizzo di una prenotazione di VM GPU da parte dei job di addestramento personalizzato o dei job di previsione in Vertex AI, includi il flag
--reservation-sharing-policy
impostato suALLOW_ALL
.gcloud compute reservations create RESERVATION_NAME \ --reservation-sharing-policy=ALLOW_ALL \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Per consentire a Compute Engine di eliminare automaticamente la prenotazione, seleziona uno dei seguenti metodi:
Per eliminare la prenotazione in una data e ora specifica, utilizza il comando
gcloud beta compute reservations create
con il flag--delete-at-time
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci
DELETE_AT_TIME
con una data e ora formattata come timestamp RFC 3339, ovvero come segue:YYYY-MM-DDTHH:MM:SSOFFSET
Sostituisci quanto segue:
YYYY-MM-DD
: una data formattata come anno a 4 cifre, mese a 2 cifre e giorno del mese a 2 cifre, separati da trattini (-
).HH:MM:SS
: un orario formattato con l'ora a due cifre utilizzando il sistema a 24 ore, i minuti a due cifre e i secondi a due cifre, separati da due punti (:
).OFFSET
: il fuso orario formattato come offset rispetto al Tempo Universale Coordinato (UTC). Ad esempio, per utilizzare il fuso orario standard della costa del Pacifico (PST), specifica-08:00
. In alternativa, per non utilizzare alcun offset, specificaZ
.
Per eliminare la prenotazione dopo un periodo di tempo specifico, utilizza il comando
gcloud beta compute reservations create
con il flag--delete-after-duration
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci
DELETE_AFTER_DURATION
con una durata in giorni, ore, minuti o secondi. Ad esempio, specifica30m
per 30 minuti o1d2h3m4s
per 1 giorno, 2 ore, 3 minuti e 4 secondi.
Il campo
projectMap
.Il campo
shareType
impostato suSPECIFIC_PROJECTS
.PROJECT_ID
: l'ID del progetto in cui vuoi prenotare le risorse e in cui esiste il modello di istanza.ZONE
: la zona in cui prenotare le risorse.RESERVATION_NAME
: il nome della prenotazione da creare.CONSUMER_PROJECT_ID_1
eCONSUMER_PROJECT_ID_2
: gli ID dei progetti che possono utilizzare questa prenotazione. Puoi includere fino a 100 progetti consumer. Questi progetti devono appartenere alla stessa organizzazione del progetto proprietario. Non includere il progetto proprietario. Per impostazione predefinita, è già autorizzato a utilizzare la prenotazione.NUMBER_OF_VMS
: il numero di VM da prenotare.LOCATION
: la località del modello di istanza. Specifica uno dei seguenti valori:Per un modello di istanza globale:
global
.Per un modello di istanza regionale:
regions/REGION
. SostituisciREGION
con la regione in cui si trova il modello dell'istanza. Se specifichi un modello di istanza regionale, puoi prenotare VM solo nella stessa regione del modello.
INSTANCE_TEMPLATE_NAME
: il nome di un modello di istanza esistente. Se il modello di istanza specifica un tipo di macchina A3 Mega, A3 High o A3 Edge, devi includere il campospecificReservationRequired
nel corpo della richiesta e impostarlo sutrue
. Ciò indica che solo le VM che hanno come target specifico questa prenotazione possono utilizzarla. Per saperne di più, consulta Utilizza VM di una prenotazione specifica.Per specificare che solo le VM che hanno come target specifico questa prenotazione possono utilizzarla, includi il campo
specificReservationRequired
nel corpo della richiesta e impostalo sutrue
.Ad esempio, per creare una prenotazione specifica indicando un modello di istanza e condividerla con due progetti consumer, invia la seguente richiesta:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" }, "specificReservationRequired": true }
Per consentire l'utilizzo di una prenotazione di VM GPU da parte dei job di addestramento personalizzato o dei job di previsione in Vertex AI, includi il campo
serviceShareType
e impostalo suALLOW_ALL
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Per consentire a Compute Engine di eliminare automaticamente la prenotazione, seleziona uno dei seguenti metodi:
Per eliminare la prenotazione in una data e ora specifica, invia una richiesta
POST
al metodobeta.reservations.insert
. Nel corpo della richiesta, includi il campodeleteAtTime
.Ad esempio, per creare una prenotazione specificando un modello di istanza, eliminare automaticamente la prenotazione a una data e ora specifica e condividerla con due progetti consumer, invia la seguente richiesta:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Sostituisci
DELETE_AT_TIME
con una data e ora formattata come timestamp RFC 3339, ovvero come segue:YYYY-MM-DDTHH:MM:SSOFFSET
Sostituisci quanto segue:
YYYY-MM-DD
: una data formattata come anno a 4 cifre, mese a 2 cifre e giorno del mese a 2 cifre, separati da trattini (-
).HH:MM:SS
: un orario formattato con l'ora a due cifre utilizzando il sistema a 24 ore, i minuti a due cifre e i secondi a due cifre, separati da due punti (:
).OFFSET
: il fuso orario formattato come offset rispetto al Tempo Universale Coordinato (UTC). Ad esempio, per utilizzare il fuso orario standard della costa del Pacifico (PST), specifica-08:00
. In alternativa, per non utilizzare alcun offset, specificaZ
.
Per eliminare la prenotazione dopo un periodo di tempo specifico, invia una richiesta
POST
al metodobeta.reservations.insert
. Nel corpo della richiesta, includi il campodeleteAfterDuration
.Ad esempio, per creare una prenotazione specificando un modello di istanza, eliminare la prenotazione dopo un periodo di tempo specifico e condividerla con due progetti consumer, invia la seguente richiesta:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Sostituisci
DELETE_AFTER_DURATION
con una durata in secondi. Ad esempio, specifica86400
per 86.400 secondi (1 giorno).
Crea e utilizza un modello di istanza come segue:
Crea un modello di istanza basato sulla VM di riferimento senza sostituire le proprietà della VM di riferimento.
Crea le VM utilizzando il modello appena creato effettuando una o entrambe le operazioni riportate di seguito:
Crea una VM con proprietà che corrispondono esattamente alla VM di riferimento come segue:
Nel progetto proprietario, crea una VM basata sulla VM di riferimento senza modificare le proprietà della VM che stai creando.
Nei progetti consumer, crea una VM assicurandoti manualmente che le sue proprietà corrispondano a quelle della VM di riferimento.
Nella console Google Cloud , vai alla pagina Prenotazioni.
Nella scheda Prenotazioni on demand (predefinita), fai clic su
Crea prenotazione.Viene visualizzata la pagina Crea una prenotazione.
In Nome, inserisci un nome per la prenotazione.
Per Regione e Zona, seleziona dove vuoi prenotare le risorse.
Nella sezione Tipo di condivisione, segui questi passaggi:
Per specificare una prenotazione condivisa, seleziona Condivisa.
Fai clic su
Aggiungi progetti, quindi seleziona i progetti dell'organizzazione del progetto corrente con cui vuoi condividere la prenotazione. Puoi selezionare fino a 100 progetti consumer.
Nella sezione Utilizza con un'istanza VM, seleziona una delle seguenti opzioni:
Per consentire alle VM corrispondenti di utilizzare automaticamente questa prenotazione, seleziona Utilizza automaticamente la prenotazione se non è già selezionata.
Per utilizzare le risorse di questa prenotazione solo durante la creazione di VM corrispondenti che hanno come target specifico questa prenotazione in base al nome, utilizza Seleziona una prenotazione specifica.
In Numero di istanze VM, inserisci il numero di VM che vuoi prenotare.
Nella sezione Configurazione macchina, segui questi passaggi:
Seleziona Usa VM esistente.
Per VM esistente, seleziona la VM le cui proprietà vuoi utilizzare per creare la prenotazione.
Nella sezione Eliminazione automatica, puoi attivare l'opzione di eliminazione automatica per consentire a Compute Engine di eliminare automaticamente la prenotazione in una data e ora specifica. L'eliminazione automatica delle prenotazioni può essere utile per evitare addebiti non necessari quando smetti di utilizzare la prenotazione.
Per creare la prenotazione, fai clic su Crea.
Viene visualizzata la pagina Prenotazioni. La creazione della prenotazione potrebbe richiedere fino a un minuto.
Nella console Google Cloud , vai alla pagina Prenotazioni.
Nella scheda Prenotazioni on demand (predefinita), fai clic su
Crea prenotazione.Fai clic su
Crea prenotazione.Viene visualizzata la pagina Crea una prenotazione.
In Nome, inserisci un nome per la prenotazione.
Per Regione e Zona, seleziona dove vuoi prenotare le risorse.
Nella sezione Tipo di condivisione, segui questi passaggi:
Per specificare una prenotazione condivisa, seleziona Condivisa.
Fai clic su
Aggiungi progetti, quindi seleziona i progetti dell'organizzazione del progetto corrente con cui vuoi condividere la prenotazione. Puoi selezionare fino a 100 progetti consumer.
(Facoltativo) Per consentire l'utilizzo di una prenotazione di VM GPU da parte dei job di addestramento personalizzato o dei job di previsione in Vertex AI, nella sezione Servizi Google Cloud, seleziona Condividi prenotazione.
Nella sezione Utilizza con un'istanza VM, seleziona una delle seguenti opzioni:
Per consentire alle VM corrispondenti di utilizzare automaticamente questa prenotazione, seleziona Utilizza automaticamente la prenotazione (valore predefinito).
Per utilizzare le risorse di questa prenotazione solo durante la creazione di VM corrispondenti che hanno come target specifico questa prenotazione in base al nome, utilizza Seleziona una prenotazione specifica.
In Numero di istanze VM, inserisci il numero di VM che vuoi prenotare.
Nella sezione Configurazione macchina, seleziona Specifica il tipo di macchina, quindi specifica quanto segue:
Per Famiglia di macchine, Serie e Tipo di macchina, seleziona una famiglia, una serie e un tipo di macchina.
(Facoltativo) Per specificare una piattaforma CPU minima o collegare GPU alle VM N1, segui questi passaggi:
Per espandere la sezione Piattaforma CPU e GPU, fai clic sulla freccia di espansione
.(Facoltativo) Per specificare una piattaforma CPU minima, per Piattaforma CPU, seleziona un'opzione.
(Facoltativo) Per collegare GPU alle VM N1, fai clic su
Aggiungi GPU. Quindi, per Tipo di GPU e Numero di GPU, seleziona il tipo e il numero di GPU da collegare a ogni VM N1.
(Facoltativo) Per collegare dischi SSD locali a un tipo di macchina che non li include per impostazione predefinita, segui questi passaggi:
In Numero di dischi, seleziona il numero di dischi SSD locali da collegare.
Per Tipo di interfaccia, seleziona l'interfaccia del disco per i dischi SSD locali.
Nella sezione Eliminazione automatica, puoi attivare l'opzione di eliminazione automatica per consentire a Compute Engine di eliminare automaticamente la prenotazione in una data e ora specifica. L'eliminazione automatica delle prenotazioni può essere utile per evitare addebiti non necessari quando smetti di utilizzare la prenotazione.
Per creare la prenotazione, fai clic su Crea.
Viene visualizzata la pagina Prenotazioni. La creazione della prenotazione condivisa potrebbe richiedere fino a un minuto.
RESERVATION_NAME
: il nome della prenotazione da creare.MACHINE_TYPE
: un tipo di macchina da utilizzare per ogni VM. Se specifichi un tipo di macchina A3 Mega, A3 High o A3 Edge, devi includere il flag--require-specific-reservation
. Ciò indica che solo le VM che hanno come target specifico la prenotazione possono utilizzarla. Per saperne di più, consulta Utilizza VM di una prenotazione specifica.CONSUMER_PROJECT_IDS
: un elenco separato da virgole di ID dei progetti che possono utilizzare questa prenotazione, ad esempioproject-1,project-2
. Puoi includere fino a 100 progetti consumer. Questi progetti devono appartenere alla stessa organizzazione del progetto proprietario. Non includere il progetto proprietario. Per impostazione predefinita, è già autorizzato a utilizzare la prenotazione.NUMBER_OF_VMS
: il numero di VM da prenotare.ZONE
: la zona in cui prenotare le risorse.Per collegare GPU alle VM N1 prenotate, includi il flag
--accelerator
.gcloud compute reservations create RESERVATION_NAME \ --accelerator=count=NUMBER_OF_ACCELERATORS,type=ACCELERATOR_TYPE --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci quanto segue:
NUMBER_OF_ACCELERATORS
: il numero di GPU da aggiungere per VM prenotata.ACCELERATOR_TYPE
: un modello di GPU supportato per le VM N1. Assicurati che il modello di GPU scelto sia disponibile nella zona in cui vuoi prenotare le risorse. In caso contrario, la creazione della prenotazione non andrà a buon fine.
Per collegare dischi SSD locali a un tipo di macchina che non li include per impostazione predefinita, includi il flag
--local-ssd
. Puoi collegare solo dischi SSD locali da 375 GB.gcloud compute reservations create RESERVATION_NAME \ --local-ssd=count=NUMBER_OF_LOCAL_SSD_DISKS,size=375,interface=INTERFACE_TYPE \ --machine-type=MACHINE_TYPE \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci quanto segue:
NUMBER_OF_LOCAL_SSD_DISKS
: il numero di dischi SSD locali da collegare.INTERFACE_TYPE
: il tipo di interfaccia disco che verrà utilizzato da ogni disco SSD locale e che è supportato dal tipo di macchina specificato. Specifica uno dei seguenti valori:Per l'interfaccia disco NVME:
nvme
Per l'interfaccia disco SCSI:
scsi
Per fare in modo che le VM prenotate utilizzino una specifica piattaforma CPU minima anziché la piattaforma CPU predefinita della zona, includi il flag
--min-cpu-platform
.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --min-cpu-platform="MIN_CPU_PLATFORM" \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci
MIN_CPU_PLATFORM
con una piattaforma CPU minima. Per assicurarti che una piattaforma CPU sia disponibile nella zona in cui stai prenotando le risorse, visualizza le piattaforme CPU disponibili per zona.Per specificare che solo le VM che hanno come target specifico questa prenotazione possono utilizzarla, includi il flag
--require-specific-reservation
.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --require-specific-reservation \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Per consentire l'utilizzo di una prenotazione di VM GPU da parte dei job di addestramento personalizzato o dei job di previsione in Vertex AI, includi il flag
--reservation-sharing-policy
impostato suALLOW_ALL
.gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --reservation-sharing-policy=ALLOW_ALL \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Per consentire a Compute Engine di eliminare automaticamente la prenotazione, seleziona uno dei seguenti metodi:
Per eliminare la prenotazione in una data e ora specifica, utilizza il comando
gcloud beta compute reservations create
con il flag--delete-at-time
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-at-time=DELETE_AT_TIME \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci
DELETE_AT_TIME
con una data e ora formattata come timestamp RFC 3339, ovvero come segue:YYYY-MM-DDTHH:MM:SSOFFSET
Sostituisci quanto segue:
YYYY-MM-DD
: una data formattata come anno a 4 cifre, mese a 2 cifre e giorno del mese a 2 cifre, separati da trattini (-
).HH:MM:SS
: un orario formattato con l'ora a due cifre utilizzando il sistema a 24 ore, i minuti a due cifre e i secondi a due cifre, separati da due punti (:
).OFFSET
: il fuso orario formattato come offset rispetto al Tempo Universale Coordinato (UTC). Ad esempio, per utilizzare il fuso orario standard della costa del Pacifico (PST), specifica-08:00
. In alternativa, per non utilizzare alcun offset, specificaZ
.
Per eliminare la prenotazione dopo un periodo di tempo specifico, utilizza il comando
gcloud beta compute reservations create
con il flag--delete-after-duration
.gcloud beta compute reservations create RESERVATION_NAME \ --delete-after-duration=DELETE_AFTER_DURATION \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci
DELETE_AFTER_DURATION
con una durata in giorni, ore, minuti o secondi. Ad esempio, specifica30m
per 30 minuti o1d2h3m4s
per 1 giorno, 2 ore, 3 minuti e 4 secondi.
- Imposta il campo
share_type
suSPECIFIC_PROJECTS
. - Nel blocco
project_map
, specifica gli ID progetto dei progetti con cui vuoi condividere questa prenotazione. Il campo
projectMap
.Il campo
shareType
impostato suSPECIFIC_PROJECTS
.PROJECT_ID
: l'ID del progetto in cui vuoi prenotare le risorse.ZONE
: la zona in cui prenotare le risorse.RESERVATION_NAME
: il nome della prenotazione da creare.CONSUMER_PROJECT_ID_1
eCONSUMER_PROJECT_ID_2
: gli ID dei progetti che possono utilizzare questa prenotazione. Puoi includere fino a 100 progetti consumer. Questi progetti devono appartenere alla stessa organizzazione del progetto proprietario. Non includere il progetto proprietario. Per impostazione predefinita, è già autorizzato a utilizzare la prenotazione.NUMBER_OF_VMS
: il numero di VM da prenotare.MACHINE_TYPE
: un tipo di macchina da utilizzare per ogni VM. Se specifichi un tipo di macchina A3 Mega, A3 High o A3 Edge, devi includere il campospecificReservationRequired
nel corpo della richiesta e impostarlo sutrue
. Ciò indica che solo le VM che hanno come target specifico la prenotazione possono utilizzarla.Per collegare GPU alle VM N1 prenotate, includi il campo
guestAccelerators
nel corpo della richiesta.Ad esempio, per creare una prenotazione condivisa con due progetti consumer e collegare GPU a qualsiasi VM N1 prenotata, invia la seguente richiesta:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "guestAccelerators": [ { "acceleratorCount": NUMBER_OF_ACCELERATORS, "acceleratorType": "ACCELERATOR_TYPE" } ], "machineType": "MACHINE_TYPE" } } }
Sostituisci quanto segue:
NUMBER_OF_ACCELERATORS
: il numero di GPU da aggiungere per VM prenotata.ACCELERATOR_TYPE
: un modello di GPU supportato per le VM N1. Assicurati che il modello di GPU scelto sia disponibile nella zona in cui vuoi prenotare le risorse. In caso contrario, la creazione della prenotazione non andrà a buon fine.
Per collegare i dischi SSD locali a un tipo di macchina che non li include per impostazione predefinita, includi il campo
localSsds
nel corpo della richiesta. Puoi collegare solo dischi SSD locali da 375 GB.Ad esempio, per collegare due dischi SSD locali al tipo di macchina che vuoi prenotare specificando due progetti consumer, invia la seguente richiesta:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "localSsds": [ { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" }, { "diskSizeGb": "375", "interface": "INTERFACE_TYPE" } ], "machineType": "MACHINE_TYPE" } } }
Sostituisci
INTERFACE_TYPE
con il tipo di interfaccia disco che verrà utilizzato da ogni disco SSD locale e che è supportato dal tipo di macchina specificato. Specifica uno dei seguenti valori:Per l'interfaccia disco NVME:
NVME
Per l'interfaccia disco SCSI:
SCSI
Per fare in modo che le VM prenotate utilizzino una piattaforma CPU minima specifica anziché la piattaforma CPU predefinita della zona, includi il campo
minCpuPlatform
nel corpo della richiesta.Ad esempio, per creare una prenotazione condivisa specificando una piattaforma CPU minima e due progetti consumer, invia la seguente richiesta:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE", "minCpuPlatform": "MIN_CPU_PLATFORM" } } }
Sostituisci
MIN_CPU_PLATFORM
con una piattaforma CPU minima. Per assicurarti che una piattaforma CPU sia disponibile nella zona in cui stai prenotando le risorse, visualizza le piattaforme CPU disponibili per zona.Per specificare che solo le VM che hanno come target specifico questa prenotazione possono utilizzarla, includi il campo
specificReservationRequired
nel corpo della richiesta e impostalo sutrue
.Ad esempio, per creare una prenotazione specifica e condividerla con due progetti consumer, invia la seguente richiesta:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } }, "specificReservationRequired": true }
Per consentire l'utilizzo di una prenotazione di VM GPU da parte dei job di addestramento personalizzato o dei job di previsione in Vertex AI, includi il campo
serviceShareType
e impostalo suALLOW_ALL
.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "reservationSharingPolicy": { "serviceShareType": "ALLOW_ALL" }, "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
Per consentire a Compute Engine di eliminare automaticamente la prenotazione, seleziona uno dei seguenti metodi:
Per eliminare la prenotazione in una data e ora specifica, invia una richiesta
POST
al metodobeta.reservations.insert
. Nel corpo della richiesta, includi il campodeleteAtTime
.Ad esempio, per creare una prenotazione specificando una data e ora di eliminazione e condividerla con due progetti consumer, invia la seguente richiesta:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAtTime": "DELETE_AT_TIME", "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
Sostituisci
DELETE_AT_TIME
con una data e ora formattata come timestamp RFC 3339, ovvero come segue:YYYY-MM-DDTHH:MM:SSOFFSET
Sostituisci quanto segue:
YYYY-MM-DD
: una data formattata come anno a 4 cifre, mese a 2 cifre e giorno del mese a 2 cifre, separati da trattini (-
).HH:MM:SS
: un orario formattato con l'ora a due cifre utilizzando il sistema a 24 ore, i minuti a due cifre e i secondi a due cifre, separati da due punti (:
).OFFSET
: il fuso orario formattato come offset rispetto al Tempo Universale Coordinato (UTC). Ad esempio, per utilizzare il fuso orario standard della costa del Pacifico (PST), specifica-08:00
. In alternativa, per non utilizzare alcun offset, specificaZ
.
Per eliminare la prenotazione dopo un periodo di tempo specifico, invia una richiesta
POST
al metodobeta.reservations.insert
. Nel corpo della richiesta, includi il campodeleteAfterDuration
.Ad esempio, per creare una prenotazione che Compute Engine elimina dopo un periodo di tempo specifico e condividerla con due progetti consumer, invia la seguente richiesta:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/reservations { "deleteAfterDuration": { "seconds": "DELETE_AFTER_DURATION" }, "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
Sostituisci
DELETE_AFTER_DURATION
con una durata in secondi. Ad esempio, specifica86400
per 86.400 secondi (1 giorno).
Scopri come visualizzare le prenotazioni.
Scopri come collegare le prenotazioni agli impegni.
Scopri come utilizzare le prenotazioni.
Scopri come monitorare l'utilizzo delle prenotazioni.
Terraform
Per utilizzare gli esempi di Terraform in 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.
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 creare prenotazioni condivise, chiedi all'amministratore di concederti i seguenti ruoli IAM:
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare prenotazioni condivise. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare prenotazioni condivise sono necessarie le seguenti autorizzazioni:
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Best practice
Quando crei prenotazioni condivise, ti consigliamo di adottare le best practice riportate di seguito. Adottandole puoi contribuire a ottimizzare la gestibilità e l'utilizzo delle prenotazioni condivise nella tua organizzazione.
Consenti e limita la creazione e la modifica di prenotazioni condivise da parte dei progetti
Per impostazione predefinita, nessun progetto è autorizzato a creare o modificare prenotazioni condivise in un'organizzazione. Aggiungi progetti al vincolo delle policy dell'organizzazione Progetti proprietari di prenotazioni condivise (
compute.sharedReservationsOwnerProjects
) per consentire di creare e modificare le prenotazioni condivise. Per saperne di più sui vincoli delle policy dell'organizzazione, consulta la pagina Introduzione al servizio Policy dell'organizzazione.Per visualizzare e modificare il vincolo delle policy dell'organizzazione Progetti proprietari di prenotazioni condivise (
compute.sharedReservationsOwnerProjects
):Visualizza il vincolo delle policy dell'organizzazione per le prenotazioni condivise
Per vedere quali progetti sono autorizzati a creare e modificare le prenotazioni condivise, utilizza la console Google Cloud o gcloud CLI.
Console
Segui i passaggi per la visualizzazione delle policy dell'organizzazione utilizzando il vincolo Progetti proprietari di prenotazioni condivise.
gcloud
Per vedere a quali progetti il vincolo
compute.sharedReservationsOwnerProjects
consente di creare e modificare prenotazioni condivise:Modifica il vincolo delle policy dell'organizzazione per le prenotazioni condivise
Per modificare i progetti autorizzati a creare e modificare le prenotazioni condivise, utilizza la console Google Cloud o gcloud CLI.
Console
Segui i passaggi per la personalizzazione delle policy per i vincoli di elenco utilizzando il vincolo Progetti proprietari di prenotazioni condivise.
gcloud
Per modificare i progetti ai quali il vincolo
compute.sharedReservationsOwnerProjects
consente di creare e modificare le prenotazioni condivise, utilizza uno dei seguenti metodi:L'applicazione della modifica potrebbe richiedere qualche minuto.
Crea una prenotazione condivisa
Questa sezione spiega come creare prenotazioni condivise. Una prenotazione condivisa può essere modificata solo dal progetto proprietario, ma le risorse di una prenotazione condivisa possono essere utilizzate dal progetto proprietario o da qualsiasi progetto consumer.
Per utilizzare una prenotazione, una VM deve avere proprietà che corrispondono esattamente alla prenotazione. Per specificare le proprietà delle VM che vuoi prenotare, seleziona una delle seguenti sezioni di questo documento:
Per impostazione predefinita, una prenotazione può essere utilizzata automaticamente da qualsiasi VM con proprietà corrispondenti. Se vuoi controllare l'utilizzo delle prenotazioni, esegui una o più delle seguenti operazioni:
Specifica un modello di istanza
Prima di creare una prenotazione specificando un modello di istanza, assicurati di quanto segue:
Per creare una prenotazione condivisa specificando un modello di istanza, seleziona una delle seguenti opzioni:
Console
gcloud
Per creare una prenotazione condivisa, utilizza il comando
gcloud compute reservations create
con i flag--share-setting=projects
e--share-with
.Per creare una prenotazione condivisa specificando un modello di istanza e senza includere flag facoltativi, esegui questo comando:
gcloud compute reservations create RESERVATION_NAME \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --source-instance-template=projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci quanto segue:
Ad esempio, per creare una prenotazione specificando un modello di istanza globale nella zona
us-central1-a
, condividere la prenotazione con i progettiproject-1
eproject-2
e prenotare dieci VM che utilizzano ciascuna un tipo di macchina predefinita N2 con 4 vCPU, esegui questo comando:gcloud compute reservations create my-reservation \ --share-setting=projects \ --share-with=project-1,project-2 \ --source-instance-template=projects/example-project/global/example-instance-template \ --vm-count=10 \ --zone=us-central1-a
Facoltativamente, puoi eseguire una o più delle seguenti operazioni:
Go
Java
Node.js
Python
REST
Per creare una prenotazione condivisa, invia una richiesta
POST
al metodoreservations.insert
. Nel corpo della richiesta, includi quanto segue:Ad esempio, per creare una prenotazione condivisa specificando un modello di istanza senza includere campi facoltativi e condividerla con due progetti consumer, invia la seguente richiesta
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "sourceInstanceTemplate": "projects/PROJECT_ID/LOCATION/instanceTemplates/INSTANCE_TEMPLATE_NAME" } }
Sostituisci quanto segue:
Ad esempio, per creare una prenotazione per dieci VM nella zona
us-central1-a
specificando un modello di istanze globale e condividerla con i progettiproject-1
eproject-2
, invia la seguente richiestaPOST
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "project-1": { "projectId": "project-1" }, "project-2": { "projectId": "project-2" } } }, "specificReservation": { "count": "10", "sourceInstanceTemplate": "projects/example-project/global/instanceTemplates/example-instance-template" } }
Facoltativamente, puoi eseguire una o più delle seguenti operazioni:
Specifica una VM esistente
Puoi creare una prenotazione condivisa in base a una VM esistente solo nello stesso progetto e nella stessa zona della VM.
Dopo aver creato la prenotazione, puoi utilizzarla creando VM con proprietà corrispondenti a quelle della VM di riferimento. Puoi farlo eseguendo una di queste operazioni:
Per creare una prenotazione condivisa che utilizza le proprietà di una VM esistente, segui questi passaggi:
Specifica le proprietà direttamente
Per creare una prenotazione condivisa specificando direttamente le proprietà, seleziona una delle seguenti opzioni:
Console
gcloud
Per creare una prenotazione condivisa, utilizza il comando
gcloud compute reservations create
con i flag--share-setting=projects
e--share-with
.Per creare una prenotazione condivisa specificando le proprietà direttamente e senza includere flag facoltativi, esegui questo comando:
gcloud compute reservations create RESERVATION_NAME \ --machine-type=MACHINE_TYPE \ --share-setting=projects \ --share-with=CONSUMER_PROJECT_IDS \ --vm-count=NUMBER_OF_VMS \ --zone=ZONE
Sostituisci quanto segue:
Ad esempio, per creare una prenotazione nella zona
us-central1-a
per dieci VM che utilizzano ciascuna un tipo di macchina predefinita N2 con 4 vCPU e condividerla con i progettiproject-1
eproject-2
, esegui questo comando:gcloud compute reservations create my-reservation \ --machine-type=n2-standard-4 \ --share-setting=projects \ --share-with=project-1,project-2 \ --vm-count=10 \ --zone=us-central1-a
Facoltativamente, puoi eseguire una o più delle seguenti operazioni:
Terraform
Per creare una prenotazione, utilizza la risorsa Terraform
google_compute_reservation
. Per specificare una prenotazione condivisa, definisci il bloccoshare_settings
:Per saperne di più su come utilizzare Terraform, consulta Utilizzo di Terraform con Google Cloud.
REST
Per creare una prenotazione condivisa, invia una richiesta
POST
al metodoreservations.insert
. Nel corpo della richiesta, includi quanto segue:Ad esempio, per creare una prenotazione condivisa senza includere campi facoltativi e condividerla con due progetti consumer, invia la seguente richiesta
POST
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/reservations { "name": "RESERVATION_NAME", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "CONSUMER_PROJECT_ID_1": { "projectId": "CONSUMER_PROJECT_ID_1" }, "CONSUMER_PROJECT_ID_2": { "projectId": "CONSUMER_PROJECT_ID_2" } } }, "specificReservation": { "count": "NUMBER_OF_VMS", "instanceProperties": { "machineType": "MACHINE_TYPE" } } }
Sostituisci quanto segue:
Ad esempio, per creare una prenotazione specificando un modello di istanza globale nella zona
us-central1-a
, condividere la prenotazione con i progettiproject-1
eproject-2
e prenotare dieci VM che utilizzano ciascuna un tipo di macchina predefinita N2 con 4 vCPU, invia la seguente richiestaPOST
:POST https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/reservations { "name": "my-reservation", "shareSettings": { "shareType": "SPECIFIC_PROJECTS", "projectMap": { "project-1": { "projectId": "project-1" }, "project-2": { "projectId": "project-2" } } }, "specificReservation": { "count": "10", "instanceProperties": { "machineType": "n2-standard-4", } } }
Facoltativamente, puoi eseguire una o più delle seguenti operazioni:
Risoluzione dei problemi
Scopri come risolvere i problemi di creazione delle prenotazioni.
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-09 UTC.
-