Créer des VM de manière groupée avec la flexibilité des instances

Ce document explique comment configurer la flexibilité des instances lorsque vous créez des machines virtuelles (VM) de manière groupée. La flexibilité des instances vous permet de spécifier plusieurs types de machines, de les classer par ordre de préférence et de remplacer les paramètres de plate-forme de processeur minimale et de disque pour chaque sélection. Compute Engine peut ainsi provisionner des VM en fonction de la capacité et des quotas disponibles dans une région.

Pour en savoir plus sur la flexibilité des instances pour les VM créées de manière groupée, consultez À propos de la flexibilité des instances pour les VM créées de manière groupée.

Avant de commencer

  • Assurez-vous de disposer d'un quota suffisant pour les VM et les ressources associées que vous prévoyez de créer.
  • Si vous souhaitez créer des VM Spot de manière groupée, vérifiez la disponibilité des ressources avant de créer les VM. Vérifier la disponibilité des ressources permet de réduire le risque de rencontrer des erreurs de disponibilité des ressources lorsque vous créez des VM. Pour obtenir des instructions, consultez Afficher la disponibilité des ressources des VM Spot.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet de valider votre identité pour accéder aux services et aux API Cloud de Confiance by S3NS . Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    gcloud

    1. Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée. Après vous être connecté, initialisez la Google Cloud CLI en exécutant la commande suivante :

      gcloud init
  • Définissez une région et une zone par défaut.
  • REST

    Pour utiliser les exemples API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à la gcloud CLI.

      Installez la Google Cloud CLI, puis connectez-vous à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Cloud de Confiance .

Rôles requis

Pour obtenir les autorisations nécessaires à la création de VM de manière groupée, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour créer des VM de manière groupée. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer des VM de manière groupée :

  • compute.instances.create sur le projet
  • Pour créer la VM à l'aide d'une image personnalisée : compute.images.useReadOnly sur l'image
  • Pour créer la VM à l'aide d'un instantané : compute.snapshots.useReadOnly sur l'instantané
  • Pour créer la VM à l'aide d'un modèle d'instance : compute.instanceTemplates.useReadOnly sur le modèle d'instance
  • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
  • Pour spécifier une adresse IP statique pour la VM : compute.addresses.use sur le projet
  • Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un réseau VPC : compute.subnetworks.useExternalIp sur le projet ou sur le sous-réseau choisi
  • Pour attribuer un ancien réseau à la VM : compute.networks.use sur le projet
  • Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un ancien réseau : compute.networks.useExternalIp sur le projet
  • Pour définir les métadonnées d'instance de VM pour la VM : compute.instances.setMetadata sur le projet
  • Pour définir des tags pour la VM : compute.instances.setTags sur la VM
  • Pour définir des étiquettes pour la VM : compute.instances.setLabels sur la VM
  • Pour définir un compte de service que doit utiliser la VM : compute.instances.setServiceAccount sur la VM
  • Pour créer un disque pour la VM : compute.disks.create sur le projet
  • Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture : compute.disks.use sur le disque
  • Pour associer un disque existant en mode lecture seule : compute.disks.useReadOnly sur le disque

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer des VM avec plusieurs types de machines de préférence égale

Si votre charge de travail peut fonctionner sur plusieurs types de machines différents, vous pouvez spécifier une liste de tous les types de machines compatibles dans une seule sélection d'instance. Les exemples suivants montrent comment spécifier plusieurs types de machines de préférence égale.

gcloud

Pour créer des VM de manière groupée avec une sélection d'instance unique, utilisez la commande gcloud compute instances bulk create avec l'indicateur --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

Remplacez les éléments suivants :

  • COUNT : nombre de VM à créer
  • NAME_PATTERN : modèle de nom des VM.
  • MACHINE_TYPE_1, MACHINE_TYPE_2 : types de machines à utiliser pour les VM
  • REGION : région dans laquelle créer les VM

Exemple

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

Dans l'API Compute Engine, envoyez une requête POST à la méthode regionInstances.bulkInsert. Dans le corps de la requête, incluez instanceFlexibilityPolicy avec une entrée instanceSelections qui liste les types de machines.

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"
        ]
      }
    }
  }
}

Remplacez les éléments suivants :

  • COUNT : nombre de VM à créer
  • NAME_PATTERN : modèle de nom des VM.
  • MACHINE_TYPE_1, MACHINE_TYPE_2 : types de machines à utiliser pour les VM
  • IMAGE_PROJECT : projet contenant l'image
  • IMAGE : nom de l'image ou de la famille d'images à utiliser
  • PROJECT_ID : ID de votre projet
  • REGION : région dans laquelle créer les VM

Exemple

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"
        ]
      }
    }
  }
}

Créer des VM avec plusieurs types de machines classés par ordre de préférence

Si vous souhaitez que Compute Engine choisisse les types de machines dans un ordre spécifique, vous pouvez configurer plusieurs sélections d'instances. Chaque sélection d'instance inclut une liste de types de machines et un classement, qui est un entier définissant la préférence pour les types de machines. Un rang plus bas indique une préférence plus élevée. Compute Engine tente de créer des VM à l'aide de types de machines ayant une préférence plus élevée (classement inférieur). Si ces types de machines ne sont pas disponibles, Compute Engine utilise des types de machines avec une préférence inférieure (classement plus élevé).

Les exemples suivants montrent comment spécifier plusieurs sélections d'instances avec des rangs.

gcloud

Pour créer des VM de manière groupée avec plusieurs sélections d'instances, utilisez la commande gcloud compute instances bulk create et spécifiez l'option --instance-selection plusieurs fois.

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"

Remplacez les éléments suivants :

  • COUNT : nombre de VM à créer
  • NAME_PATTERN : modèle de nom des VM.
  • INSTANCE_SELECTION_1 : nom de la première sélection d'instances
  • INSTANCE_SELECTION_2 : nom de la deuxième sélection d'instances
  • MACHINE_TYPE_1, MACHINE_TYPE_2 : types de machines pour la première sélection d'instances
  • MACHINE_TYPE_3, MACHINE_TYPE_4 : types de machine pour la deuxième sélection d'instances
  • REGION : région dans laquelle créer les VM

Exemple

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

Dans l'API Compute Engine, envoyez une requête POST à la méthode regionInstances.bulkInsert. Dans le corps de la requête, incluez instanceFlexibilityPolicy et spécifiez plusieurs entrées dans instanceSelections, chacune avec une liste de types de machines et 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
      }
    }
  }
}

Remplacez les éléments suivants :

  • COUNT : nombre de VM à créer
  • NAME_PATTERN : modèle de nommage des VM.
  • INSTANCE_SELECTION_1 : nom de la première sélection d'instances
  • INSTANCE_SELECTION_2 : nom de la deuxième sélection d'instances
  • MACHINE_TYPE_1, MACHINE_TYPE_2 : types de machines pour la première sélection d'instances
  • MACHINE_TYPE_3, MACHINE_TYPE_4 : types de machine pour la deuxième sélection d'instances
  • IMAGE_PROJECT : projet contenant l'image
  • IMAGE : nom de l'image ou de la famille d'images à utiliser
  • PROJECT_ID : ID de votre projet
  • REGION : région dans laquelle créer les VM

Exemple

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
      }
    }
  }
}

Créer des VM avec plusieurs types de machines, une configuration minimale de plate-forme de processeur et des remplacements de disque

En plus de spécifier les types et les niveaux de machine, vous pouvez remplacer la configuration minimale de la plate-forme du processeur et remplacer ou ajouter des définitions de disque dans instanceProperties pour chaque sélection d'instance. Par exemple, si instanceProperties spécifie un Persistent Disk et que vous sélectionnez une série de machines N4, vous devez remplacer le disque de démarrage par un type Google Cloud Hyperdisk compatible.

Pour en savoir plus sur les types de disques compatibles et sur la façon dont Compute Engine applique les remplacements, consultez les ressources suivantes :

Pour créer des VM de manière groupée avec plusieurs types de machines, une configuration minimale de plate-forme de processeur et des remplacements de disque, sélectionnez l'une des options suivantes :

gcloud

Pour créer des VM de manière groupée avec plusieurs types de machines, une configuration minimale de plate-forme de processeur et des remplacements de disque, utilisez la commande gcloud compute instances bulk create avec l'option --instance-flexibility-policy. Pour remplacer le disque de démarrage par défaut de instanceProperties, incluez également le flag --boot-disk-device-name et spécifiez le même deviceName dans la sélection de l'instance :

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"}}]}}}'

Vous pouvez également configurer la stratégie de flexibilité des instances à l'aide d'un fichier YAML ou JSON. Pour ce faire, utilisez l'indicateur --flags-file au lieu de l'indicateur --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

Remplacez les éléments suivants :

  • COUNT : nombre de VM à créer
  • NAME_PATTERN : modèle de nom des VM.
  • REGION : région dans laquelle créer les VM
  • BOOT_DISK_DEVICE_NAME : nom d'appareil pour le disque de démarrage par défaut dans instanceProperties
  • INSTANCE_SELECTION_1, INSTANCE_SELECTION_2 : noms des sélections d'instances
  • RANK_1, RANK_2 : nombres facultatifs qui représentent votre ordre de préférence pour chaque sélection d'instance. Une valeur plus faible indique une préférence plus élevée.
  • MACHINE_TYPE_1, MACHINE_TYPE_2 : types de machines pour la première sélection d'instances
  • MACHINE_TYPE_3 : type de machine pour la deuxième sélection d'instances.
  • MIN_CPU_PLATFORM_1, MIN_CPU_PLATFORM_2 : configurations minimales de plate-forme de processeur facultatives pour les VM de chaque sélection d'instances
  • BOOT_DISK_DEVICE_NAME_1, BOOT_DISK_DEVICE_NAME_2 : noms d'appareil pour les disques de démarrage dans chaque sélection d'instance. Pour remplacer le disque de démarrage par défaut, spécifiez le même nom que BOOT_DISK_DEVICE_NAME.
  • DISK_TYPE_1, DISK_TYPE_2 : types de disque pour les remplacements de disque, tels que pd-ssd ou hyperdisk-balanced
  • DISK_SIZE_1, DISK_SIZE_2 : tailles des disques pour les remplacements de disques
  • IMAGE_PROJECT_1, IMAGE_PROJECT_2 : projets contenant les images pour les remplacements de disque
  • IMAGE_1, IMAGE_2 : noms des images ou des familles d'images pour les remplacements de disque
  • FILE_NAME.yaml : nom du fichier YAML ou JSON contenant la configuration --instance-flexibility-policy

Exemple

L'exemple suivant crée 10 VM à l'aide de deux sélections d'instances qui spécifient une plate-forme de processeur minimale, remplacent le disque de démarrage par défaut et associent des disques supplémentaires :

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}}]}}}'

Si vous utilisez l'indicateur --flags-file, vous pouvez également spécifier la même règle de flexibilité des instances dans un fichier 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

Dans l'API Compute Engine, envoyez une requête POST à la méthode regionInstances.bulkInsert. Dans chaque entrée instanceSelections de instanceFlexibilityPolicy, incluez le champ minCpuPlatform pour remplacer instanceProperties.minCpuPlatform, et incluez le champ disks pour remplacer ou ajouter à 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"
            }
          }
        ]
      }
    }
  }
}

Remplacez les éléments suivants :

  • COUNT : nombre de VM à créer
  • NAME_PATTERN : modèle de nommage des VM.
  • INSTANCE_SELECTION_1 : nom de la première sélection d'instances
  • INSTANCE_SELECTION_2 : nom de la deuxième sélection d'instances
  • MACHINE_TYPE_1, MACHINE_TYPE_2 : types de machines pour la première sélection d'instances
  • MACHINE_TYPE_3 : type de machine pour la deuxième sélection d'instances.
  • MIN_CPU_PLATFORM_1, MIN_CPU_PLATFORM_2 : configurations minimales de plate-forme de processeur facultatives pour les VM de chaque sélection d'instances
  • IMAGE_PROJECT : projet contenant l'image de démarrage par défaut dans instanceProperties.
  • IMAGE : nom de l'image ou de la famille d'images de démarrage par défaut dans instanceProperties
  • IMAGE_PROJECT_1, IMAGE_PROJECT_2, IMAGE_PROJECT_3 : projets contenant les images pour les remplacements de disque
  • IMAGE_1, IMAGE_2, IMAGE_3 : noms des images pour les remplacements de disque
  • PROJECT_ID : ID de votre projet
  • REGION : région dans laquelle créer les VM

Exemple

L'exemple suivant crée 10 VM à l'aide de deux sélections d'instances qui spécifient une plate-forme de processeur minimale, remplacent le disque de démarrage par défaut et associent des disques supplémentaires :

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
            }
          }
        ]
      }
    }
  }
}