Crea più VM contemporaneamente con flessibilità dell'istanza

Questo documento descrive come configurare la flessibilità dell'istanza quando crei macchine virtuali (VM) in blocco. La flessibilità delle istanze ti consente di specificare più tipi di macchina, classificarli in base alle preferenze e sostituire le impostazioni della piattaforma CPU minima e del disco per ogni selezione, in modo che Compute Engine possa eseguire il provisioning delle VM in base alla capacità e alla disponibilità della quota in una regione.

Per saperne di più sulla flessibilità delle istanze per le VM create in blocco, consulta Informazioni sulla flessibilità delle istanze per le VM create in blocco.

Prima di iniziare

  • Per le VM e le eventuali risorse correlate che intendi creare, assicurati di disporre di una quota sufficiente.
  • Se vuoi creare VM spot in blocco, visualizza la disponibilità delle risorse prima di creare le VM. Il controllo della disponibilità delle risorse contribuisce a ridurre le probabilità di riscontrare errori di disponibilità delle risorse durante la creazione delle VM. Per istruzioni, consulta Visualizzare la disponibilità delle risorse delle VM spot.
  • Se non l'hai ancora fatto, configura l'autenticazione. L'autenticazione verifica la tua identità per l'accesso ad API e servizi Cloud de Confiance by S3NS . Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su Compute Engine selezionando una delle seguenti opzioni:

    Seleziona la scheda relativa a come prevedi di utilizzare i campioni in questa pagina:

    gcloud

    1. Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:

      gcloud init
  • Imposta una regione e una zona predefinite.
  • 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.

      Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata.

    Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Cloud de Confiance .

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare più VM contemporaneamente, chiedi all'amministratore di concederti il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito include le autorizzazioni necessarie per creare più VM contemporaneamente. Per visualizzare le autorizzazioni obbligatorie corrette, espandi l'omonima sezione:

Autorizzazioni obbligatorie

Per creare più VM contemporaneamente, sono necessarie le seguenti autorizzazioni:

  • 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 specificare una subnet per la VM: compute.subnetworks.use sul progetto o sulla subnet scelta
  • Per specificare un indirizzo IP statico per la VM: compute.addresses.use sul progetto
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC: compute.subnetworks.useExternalIp sul progetto o sulla subnet scelta
  • Per assegnare una rete legacy alla VM: compute.networks.use sul progetto
  • Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete legacy: compute.networks.useExternalIp sul progetto
  • 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 di lettura e scrittura: compute.disks.use sul disco
  • Per collegare un disco esistente in modalità di sola lettura: compute.disks.useReadOnly sul disco

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Crea VM con più tipi di macchine con la stessa preferenza

Se il tuo workload può funzionare su diversi tipi di macchine, puoi specificare un elenco di tutti i tipi di macchine compatibili in una singola selezione di istanze. Gli esempi seguenti mostrano come specificare più tipi di macchine con la stessa preferenza.

gcloud

Per creare più VM contemporaneamente con una singola selezione di istanze, utilizza il comando gcloud compute instances bulk create con il flag --instance-selection-machine-types.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --region=REGION \
    --count=COUNT \
    --instance-selection-machine-types=MACHINE_TYPE_1,MACHINE_TYPE_2

Sostituisci quanto segue:

  • COUNT: il numero di VM da creare
  • NAME_PATTERN: il pattern del nome delle VM
  • MACHINE_TYPE_1, MACHINE_TYPE_2: i tipi di macchina da utilizzare per le VM
  • REGION: la regione in cui creare le VM

Esempio

gcloud compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=us-central1 \
    --count=10 \
    --instance-selection-machine-types=c3-standard-8,n2-standard-8,c2-standard-8

REST

Nell'API Compute Engine, invia una richiesta POST al metodo regionInstances.bulkInsert. Nel corpo della richiesta, includi instanceFlexibilityPolicy con una voce instanceSelections che elenca i tipi di macchina.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
        ]
      }
    }
  }
}

Sostituisci quanto segue:

  • COUNT: il numero di VM da creare
  • NAME_PATTERN: il pattern del nome delle VM
  • MACHINE_TYPE_1, MACHINE_TYPE_2: i tipi di macchina da utilizzare per le VM
  • IMAGE_PROJECT: il progetto che contiene l'immagine
  • IMAGE: il nome dell'immagine o della famiglia di immagini da utilizzare
  • PROJECT_ID: il tuo ID progetto
  • REGION: la regione in cui creare le VM

Esempio

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/instances/bulkInsert
{
  "count": 10,
  "namePattern": "test-bulk-#",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/debian-12"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "c3-standard-8",
          "n2-standard-8",
          "c2-standard-8"
        ]
      }
    }
  }
}

Crea VM con più tipi di macchine classificati in base alle preferenze

Se vuoi che Compute Engine scelga i tipi di macchine in un ordine specifico, puoi configurare più selezioni di istanze. Ogni selezione di istanze include un elenco di tipi di macchine e un ranking, ovvero un numero intero che definisce la preferenza per i tipi di macchine. Un ranking più basso indica una preferenza più elevata. Compute Engine tenta di creare VM utilizzando tipi di macchine con una preferenza più alta (classifica inferiore). Se questi tipi di macchine non sono disponibili, Compute Engine utilizza tipi di macchine con una preferenza inferiore (ranking più alto).

Gli esempi seguenti mostrano come specificare più selezioni di istanze con ranghi.

gcloud

Per creare più VM in blocco con più selezioni di istanze, utilizza il comando gcloud compute instances bulk create e specifica il flag --instance-selection più volte.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --region=REGION \
    --count=COUNT \
    --instance-selection "name=INSTANCE_SELECTION_1,rank=0,machine-type=MACHINE_TYPE_1,machine-type=MACHINE_TYPE_2" \
    --instance-selection "name=INSTANCE_SELECTION_2,rank=1,machine-type=MACHINE_TYPE_3,machine-type=MACHINE_TYPE_4"

Sostituisci quanto segue:

  • COUNT: il numero di VM da creare
  • NAME_PATTERN: il pattern del nome delle VM
  • INSTANCE_SELECTION_1: il nome della prima selezione di istanze
  • INSTANCE_SELECTION_2: il nome della seconda selezione di istanze
  • MACHINE_TYPE_1, MACHINE_TYPE_2: i tipi di macchina per la prima selezione di istanze
  • MACHINE_TYPE_3, MACHINE_TYPE_4: i tipi di macchina per la seconda selezione di istanze
  • REGION: la regione in cui creare le VM

Esempio

gcloud compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=us-central1 \
    --count=10 \
    --instance-selection "name=most-preferred,rank=0,machine-type=c3-standard-16,machine-type=n2-standard-16,machine-type=c2-standard-16" \
    --instance-selection "name=least-preferred,rank=1,machine-type=c3-standard-8,machine-type=n2-standard-8,machine-type=c2-standard-8"

REST

Nell'API Compute Engine, invia una richiesta POST al metodo regionInstances.bulkInsert. Nel corpo della richiesta, includi instanceFlexibilityPolicy e specifica più voci in instanceSelections, ognuna con un elenco di tipi di macchine e un rank.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
        ],
        "rank": 1
      },
      "INSTANCE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_3",
          "MACHINE_TYPE_4"
        ],
        "rank": 2
      }
    }
  }
}

Sostituisci quanto segue:

  • COUNT: il numero di VM da creare
  • NAME_PATTERN: il pattern di denominazione per le VM
  • INSTANCE_SELECTION_1: il nome della prima selezione di istanze
  • INSTANCE_SELECTION_2: il nome della seconda selezione di istanze
  • MACHINE_TYPE_1, MACHINE_TYPE_2: i tipi di macchina per la prima selezione di istanze
  • MACHINE_TYPE_3, MACHINE_TYPE_4: i tipi di macchina per la seconda selezione di istanze
  • IMAGE_PROJECT: il progetto che contiene l'immagine
  • IMAGE: il nome dell'immagine o della famiglia di immagini da utilizzare
  • PROJECT_ID: il tuo ID progetto
  • REGION: la regione in cui creare le VM

Esempio

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/instances/bulkInsert
{
  "count": 10,
  "namePattern": "test-bulk-#",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/debian-12"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "most-preferred": {
        "machineTypes": [
          "c3-standard-16",
          "c2-standard-16"
        ],
        "rank": 1
      },
      "least-preferred": {
        "machineTypes": [
          "n2-standard-16",
          "c3-standard-8",
          "n2-standard-8",
          "c2-standard-8"
        ],
        "rank": 2
      }
    }
  }
}

Crea VM con più tipi di macchina, piattaforma CPU minima e override dei dischi

Oltre a specificare i tipi e i ranghi di macchine, puoi eseguire l'override della piattaforma CPU minima ed eseguire l'override o aggiungere alle definizioni dei dischi in instanceProperties per ogni selezione dell'istanza. Ad esempio, se instanceProperties specifica un Persistent Disk e selezioni una serie di macchine N4, devi eseguire l'override del disco di avvio con un tipo di Google Cloud Hyperdisk supportato.

Per saperne di più sui tipi di dischi supportati e su come Compute Engine applica gli override, consulta le seguenti risorse:

Per creare in blocco VM con più tipi di macchine, piattaforma CPU minima e override dei dischi, seleziona una delle seguenti opzioni:

gcloud

Per creare in blocco VM con più tipi di macchina, piattaforma CPU minima e override del disco, utilizza il comando gcloud compute instances bulk create con il flag --instance-flexibility-policy. Per eseguire l'override del disco di avvio predefinito da instanceProperties, includi anche il flag --boot-disk-device-name e specifica lo stesso deviceName nella selezione dell'istanza:

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --region=REGION \
    --count=COUNT \
    --boot-disk-device-name=BOOT_DISK_DEVICE_NAME \
    --instance-flexibility-policy='{"instanceSelections":
        {"INSTANCE_SELECTION_1":{"rank":RANK_1,"machineTypes":["MACHINE_TYPE_1","MACHINE_TYPE_2"],"minCpuPlatform":"MIN_CPU_PLATFORM_1","disks":[{"deviceName":"BOOT_DISK_DEVICE_NAME_1","boot":true,"initializeParams":{"diskType":"DISK_TYPE_1","diskSizeGb":DISK_SIZE_1,"sourceImage":"projects/IMAGE_PROJECT_1/global/images/IMAGE_1"}}]},
        "INSTANCE_SELECTION_2":{"rank":RANK_2,"machineTypes":["MACHINE_TYPE_3"],"minCpuPlatform":"MIN_CPU_PLATFORM_2","disks":[{"deviceName":"BOOT_DISK_DEVICE_NAME_2","boot":true,"initializeParams":{"diskType":"DISK_TYPE_2","diskSizeGb":DISK_SIZE_2,"sourceImage":"projects/IMAGE_PROJECT_2/global/images/IMAGE_2"}}]}}}'

In alternativa, per configurare la policy di flessibilità dell'istanza utilizzando un file YAML o JSON, utilizza il flag --flags-file anziché il flag --instance-flexibility-policy:

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --region=REGION \
    --count=COUNT \
    --boot-disk-device-name=BOOT_DISK_DEVICE_NAME \
    --flags-file=FILE_NAME.yaml

Sostituisci quanto segue:

  • COUNT: il numero di VM da creare
  • NAME_PATTERN: il pattern del nome delle VM
  • REGION: la regione in cui creare le VM
  • BOOT_DISK_DEVICE_NAME: il nome del dispositivo per il disco di avvio predefinito in instanceProperties
  • INSTANCE_SELECTION_1, INSTANCE_SELECTION_2: i nomi delle selezioni delle istanze
  • RANK_1, RANK_2: numeri facoltativi che rappresentano l'ordine di preferenza per ogni selezione di istanza; un valore inferiore indica una preferenza maggiore
  • MACHINE_TYPE_1, MACHINE_TYPE_2: i tipi di macchina per la prima selezione di istanze
  • MACHINE_TYPE_3: il tipo di macchina per la seconda selezione dell'istanza
  • MIN_CPU_PLATFORM_1, MIN_CPU_PLATFORM_2: piattaforme CPU minime facoltative per le VM in ogni selezione di istanze
  • BOOT_DISK_DEVICE_NAME_1, BOOT_DISK_DEVICE_NAME_2: i nomi dei dispositivi per i dischi di avvio in ogni selezione di istanze; per ignorare il disco di avvio predefinito, specifica lo stesso nome di BOOT_DISK_DEVICE_NAME
  • DISK_TYPE_1, DISK_TYPE_2: i tipi di disco per gli override del disco, ad esempio pd-ssd o hyperdisk-balanced.
  • DISK_SIZE_1, DISK_SIZE_2: le dimensioni del disco per gli override del disco
  • IMAGE_PROJECT_1, IMAGE_PROJECT_2: i progetti che contengono le immagini per gli override del disco
  • IMAGE_1, IMAGE_2: i nomi delle immagini o delle famiglie di immagini per gli override del disco
  • FILE_NAME.yaml: il nome del file YAML o JSON che contiene la configurazione di --instance-flexibility-policy

Esempio

L'esempio seguente crea 10 VM utilizzando due selezioni di istanze che specificano una piattaforma CPU minima, sostituiscono il disco di avvio predefinito e collegano dischi aggiuntivi:

gcloud compute instances bulk create \
    --name-pattern=test-bulk-# \
    --region=us-central1 \
    --count=10 \
    --boot-disk-device-name=boot-disk \
    --instance-flexibility-policy='{"instanceSelections":
        {"selection-1":{"machineTypes":["n2-standard-8","c2-standard-8"],"minCpuPlatform":"Intel Cascade Lake","disks":[{"type":"PERSISTENT","deviceName":"boot-disk","boot":true,"initializeParams":{"diskType":"pd-ssd","diskSizeGb":50,"sourceImage":"projects/debian-cloud/global/images/family/debian-12"}},{"type":"SCRATCH","initializeParams":{"diskType":"local-ssd"}}]},
        "selection-2":{"machineTypes":["c4a-standard-8"],"disks":[{"type":"PERSISTENT","deviceName":"boot-disk","boot":true,"initializeParams":{"diskType":"hyperdisk-balanced","diskSizeGb":50,"sourceImage":"projects/debian-cloud/global/images/family/debian-12-arm64"}},{"type":"PERSISTENT","deviceName":"data-disk","initializeParams":{"diskType":"hyperdisk-balanced","diskSizeGb":128}}]}}}'

In alternativa, se utilizzi il flag --flags-file, puoi specificare la stessa policy di flessibilità delle istanze in un file YAML:

--instance-flexibility-policy:
  instanceSelections:
    selection-1:
      machineTypes:
        - n2-standard-8
        - c2-standard-8
      minCpuPlatform: Intel Cascade Lake
      disks:
        - type: PERSISTENT
          deviceName: boot-disk
          boot: true
          initializeParams:
            diskType: pd-ssd
            diskSizeGb: 50
            sourceImage: projects/debian-cloud/global/images/family/debian-12
        - type: SCRATCH
          initializeParams:
            diskType: local-ssd
    selection-2:
      machineTypes:
        - c4a-standard-8
      disks:
        - type: PERSISTENT
          deviceName: boot-disk
          boot: true
          initializeParams:
            diskType: hyperdisk-balanced
            diskSizeGb: 50
            sourceImage: projects/debian-cloud/global/images/family/debian-12-arm64
        - type: PERSISTENT
          deviceName: data-disk
          initializeParams:
            diskType: hyperdisk-balanced
            diskSizeGb: 128

REST

Nell'API Compute Engine, invia una richiesta POST al metodo regionInstances.bulkInsert. In ogni voce instanceSelections di instanceFlexibilityPolicy, includi il campo minCpuPlatform per eseguire l'override di instanceProperties.minCpuPlatform e il campo disks per eseguire l'override o aggiungere a instanceProperties.disks:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert
{
  "count": COUNT,
  "namePattern": "NAME_PATTERN",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "deviceName": "boot-disk",
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "INSTANCE_SELECTION_1": {
        "machineTypes": [
          "MACHINE_TYPE_1",
          "MACHINE_TYPE_2"
        ],
        "minCpuPlatform": "MIN_CPU_PLATFORM_1",
        "disks": [
          {
            "type": "PERSISTENT",
            "deviceName": "boot-disk",
            "initializeParams": {
              "diskType": "pd-ssd",
              "diskSizeGb": 50,
              "sourceImage": "projects/IMAGE_PROJECT_1/global/images/IMAGE_1"
            },
            "boot": true
          },
          {
            "type": "SCRATCH",
            "initializeParams": {
              "diskType": "local-ssd"
            }
          }
        ]
      },
      "INSTANCE_SELECTION_2": {
        "machineTypes": [
          "MACHINE_TYPE_3"
        ],
        "minCpuPlatform": "MIN_CPU_PLATFORM_2",
        "disks": [
          {
            "type": "PERSISTENT",
            "deviceName": "boot-disk",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 50,
              "sourceImage": "projects/IMAGE_PROJECT_2/global/images/IMAGE_2"
            },
            "boot": true
          },
          {
            "type": "PERSISTENT",
            "deviceName": "data-disk",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 128,
              "sourceImage": "projects/IMAGE_PROJECT_3/global/images/IMAGE_3"
            }
          }
        ]
      }
    }
  }
}

Sostituisci quanto segue:

  • COUNT: il numero di VM da creare
  • NAME_PATTERN: il pattern di denominazione per le VM
  • INSTANCE_SELECTION_1: il nome della prima selezione di istanze
  • INSTANCE_SELECTION_2: il nome della seconda selezione di istanze
  • MACHINE_TYPE_1, MACHINE_TYPE_2: i tipi di macchina per la prima selezione di istanze
  • MACHINE_TYPE_3: il tipo di macchina per la seconda selezione dell'istanza
  • MIN_CPU_PLATFORM_1, MIN_CPU_PLATFORM_2: piattaforme CPU minime facoltative per le VM in ogni selezione di istanze
  • IMAGE_PROJECT: il progetto che contiene l'immagine di avvio predefinita in instanceProperties
  • IMAGE: il nome dell'immagine di avvio o della famiglia di immagini predefinita in instanceProperties
  • IMAGE_PROJECT_1, IMAGE_PROJECT_2, IMAGE_PROJECT_3: i progetti che contengono le immagini per gli override del disco
  • IMAGE_1, IMAGE_2, IMAGE_3: i nomi delle immagini per gli override del disco
  • PROJECT_ID: il tuo ID progetto
  • REGION: la regione in cui creare le VM

Esempio

L'esempio seguente crea 10 VM utilizzando due selezioni di istanze che specificano una piattaforma CPU minima, sostituiscono il disco di avvio predefinito e collegano dischi aggiuntivi:

POST https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1/instances/bulkInsert
{
  "count": 10,
  "namePattern": "test-bulk-#",
  "instanceProperties": {
    "disks": [
      {
        "boot": true,
        "deviceName": "boot-disk",
        "initializeParams": {
          "sourceImage": "projects/debian-cloud/global/images/family/debian-12"
        }
      }
    ],
    "networkInterfaces": [{}]
  },
  "instanceFlexibilityPolicy": {
    "instanceSelections": {
      "selection-1": {
        "machineTypes": [
          "n2-standard-8",
          "c2-standard-8"
        ],
        "minCpuPlatform": "Intel Cascade Lake",
        "disks": [
          {
            "type": "PERSISTENT",
            "deviceName": "boot-disk",
            "initializeParams": {
              "diskType": "pd-ssd",
              "diskSizeGb": 50,
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12"
            },
            "boot": true
          },
          {
            "type": "SCRATCH",
            "initializeParams": {
              "diskType": "local-ssd"
            }
          }
        ]
      },
      "selection-2": {
        "machineTypes": [
          "c4a-standard-8"
        ],
        "disks": [
          {
            "type": "PERSISTENT",
            "deviceName": "boot-disk",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 50,
              "sourceImage": "projects/debian-cloud/global/images/family/debian-12-arm64"
            },
            "boot": true
          },
          {
            "type": "PERSISTENT",
            "deviceName": "data-disk",
            "initializeParams": {
              "diskType": "hyperdisk-balanced",
              "diskSizeGb": 128
            }
          }
        ]
      }
    }
  }
}