Si vous souhaitez créer un grand nombre d'instances de machines virtuelles (VM) identiques et indépendantes les unes des autres, créez des VM de manière groupée à l'aide de Google Cloud CLI ou de l'API Compute Engine. Vous pouvez créer ces VM dans toutes les zones d'une région ou les répartir dans certaines zones.
Pour obtenir plus d'informations et connaître les limites associées, consultez la page À propos de la création groupée de VM. Si vous souhaitez créer des instances avec des GPU associés, consultez plutôt Créer des VM GPU de manière groupée.
Avant de commencer
- Assurez-vous de disposer d'un quota suffisant et des autorisations requises pour les VM et les ressources associées que vous prévoyez de créer.
- 
  
  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 Google Cloud . 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 :
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante : gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée. 
- Set a default region and zone.
 RESTPour 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. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante : gcloud initSi vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à 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 Google Cloud . Rôles requisPour 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 la page 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 requisesLes autorisations suivantes sont requises pour créer des VM de manière groupée : - compute.instances.createsur le projet
- 
                Pour créer la VM à l'aide d'une image personnalisée : compute.images.useReadOnlysur l'image
- 
                Pour créer la VM à l'aide d'un instantané : compute.snapshots.useReadOnlysur l'instantané
- 
                Pour créer la VM à l'aide d'un modèle d'instance : compute.instanceTemplates.useReadOnlysur le modèle d'instance
- 
                Pour spécifier un sous-réseau pour la VM : compute.subnetworks.usesur le projet ou sur le sous-réseau choisi
- 
                Pour spécifier une adresse IP statique pour la VM : compute.addresses.usesur le projet
- 
                Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un réseau VPC : compute.subnetworks.useExternalIpsur le projet ou sur le sous-réseau choisi
- 
                Pour attribuer un ancien réseau à la VM : compute.networks.usesur le projet
- 
                Pour attribuer une adresse IP externe à la VM, en cas d'utilisation d'un ancien réseau : compute.networks.useExternalIpsur le projet
- 
                Pour définir les métadonnées d'instance de VM pour la VM : compute.instances.setMetadatasur le projet
- 
                Pour définir des tags pour la VM : compute.instances.setTagssur la VM
- 
                Pour définir des libellés pour la VM : compute.instances.setLabelssur la VM
- 
                Pour définir un compte de service à utiliser avec la VM : compute.instances.setServiceAccountsur la VM
- 
                Pour créer un disque pour la VM : compute.disks.createsur le projet
- 
                Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture : compute.disks.usesur le disque
- 
                Pour associer un disque existant en mode lecture seule : compute.disks.useReadOnlysur 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 de manière groupée dans une régionPour créer des VM de manière groupée dans une région, utilisez gcloud CLI ou l'API Compute Engine. Si vous spécifiez un type de machine ou la prise en charge de matériel supplémentaire (tel qu'un GPU ou un disque SSD local), Compute Engine place les VM dans une zone de la région compatible avec le type de machine et le matériel supplémentaire. gcloudPour créer des VM de manière groupée dans une région, exécutez la commande gcloud compute instances bulk createsuivante :gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --region=REGION \ --count=COUNT \ [ --min-count=MIN_COUNT \ ] [--location-policy=LOCATION_POLICY \ ] [--target-distribution-shape=TARGET_DISTRIBUTION_SHAPE ]Remplacez les éléments suivants : - NAME_PATTERN : modèle de nom des VM. Utilisez une séquence de caractères de hachage ( - #) que Compute Engine remplacera par une séquence de nombres. Par exemple, le modèle de nom- vm-#génère des VM portant les noms- vm-1et- vm-2, etc., jusqu'à ce qu'il atteigne le nombre de VM spécifié par- --count, qui doit être inférieur ou égal au nombre de VM autorisé par le modèle de nom.- Lors de l'utilisation d'un modèle de nom, Compute Engine tente d'éviter les conflits de noms en vérifiant les noms des VM existantes créées à partir des requêtes précédentes. 
- PREDEFINED_NAMES : liste des noms prédéfinis des VM à créer. Si vous utilisez cette option et spécifiez - COUNT,- COUNTdoit être égal au nombre de noms fournis.
- REGION : région dans laquelle créer les VM. 
- COUNT : nombre de VM à créer. Cette valeur doit être inférieure ou égale au nombre de VM autorisées par - NAME_PATTERN. Si vous utilisez- --predefined-names, vous n'avez pas besoin de spécifier- COUNT, mais dans ce cas, la valeur doit être égale au nombre de noms fournis.
- MIN_COUNT : nombre minimal de VM à créer. Le tableau suivant décrit le comportement de la requête en fonction de la manière dont vous définissez cette option : - Valeur - Description - Non défini - La valeur par défaut est - COUNT. Si Compute Engine ne peut pas créer le nombre de VM spécifié par- COUNT, la requête échoue et aucune VM n'est créée.- 1- Compute Engine crée autant de VM que possible, jusqu'à - COUNT.- Supérieur à - 1et inférieur à- COUNT- Compute Engine crée au moins - MIN_COUNTVM et jusqu'à- COUNTVM au maximum. Si les- MIN_COUNTVM ne peuvent pas être créées, la requête échoue et aucune VM n'est créée.
- LOCATION_POLICY : zones à inclure ou exclure dans une région. Utilisez une liste de paires clé/valeur, avec la zone comme clé et la règle comme valeur. Les valeurs valides pour la règle sont - allow(la valeur par défaut) et- deny. Voici un exemple de valeur pour cette option :- --location-policy=us-east1-b=allow,us-east1-c=deny 
- TARGET_DISTRIBUTION_SHAPE : répartition des VM dans les zones spécifiées. Utilisez l'option - --location-policypour spécifier les zones. Le tableau suivant indique les valeurs valides pour cette option :- Valeur - Description - ANY_SINGLE_ZONE- Applique le placement de la VM dans une seule zone et donne la priorité à l'utilisation des réservations inutilisées. Utilisez cette option pour éviter toute sortie réseau interzone ou pour réduire la latence du réseau. Il s'agit de la valeur par défaut. - BALANCED- Tente de répartir uniformément les VM dans toutes les zones de la région. - ANY- Permet de répartir les VM dans plusieurs zones d'une région. Choisit les zones qui disposent de ressources disponibles et qui optimisent les réservations zonales non utilisées. 
 RESTPour créer des VM de manière groupée dans une région, utilisez la méthode instances.bulkInsertsuivante :POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {}, "PREDEFINED_NAME_2": {}, ... }, "count": COUNT, "minCount": MIN_COUNT, "locationPolicy": { "LOCATION_POLICY" }, "targetShape": "TARGET_DISTRIBUTION_SHAPE" ... }Remplacez les éléments suivants : - PROJECT_ID : ID du projet. 
- REGION : région dans laquelle créer les VM. 
- NAME_PATTERN : modèle de nom des VM. Indiquez cette valeur ou - perInstanceProperties. Utilisez une séquence de caractères de hachage (- #) que Compute Engine remplacera par une séquence de nombres. Par exemple, le modèle de nom- vm-#génère des VM portant les noms- vm-1et- vm-2, etc., jusqu'à ce qu'il atteigne le nombre de VM spécifié par- --count, qui doit être inférieur ou égal au nombre de VM autorisé par le modèle de nom.- Lors de l'utilisation d'un modèle de nom, Compute Engine tente d'éviter les conflits de noms en vérifiant les noms des VM existantes créées à partir des requêtes précédentes. 
- PREDEFINED_NAME_1, PREDEFINED_NAME_2, ... : liste des noms prédéfinis des VM à créer. Spécifiez cet élément ou - namePattern. Si vous utilisez cette option et spécifiez- COUNT,- COUNTdoit être égal au nombre de noms fournis.
- COUNT : nombre de VM à créer. Cette valeur doit être inférieure ou égale au nombre de VM autorisées par - NAME_PATTERN. Si vous utilisez- perInstanceProperties, vous n'avez pas besoin de spécifier- COUNT, mais dans ce cas, la valeur doit être égale au nombre de noms fournis.
- MIN_COUNT : nombre minimal de VM à créer. Le tableau suivant décrit le comportement de la requête en fonction de la manière dont vous définissez cette option : - Valeur - Description - Non défini - La valeur par défaut est - COUNT. Si Compute Engine ne peut pas créer le nombre de VM spécifié par- COUNT, la requête échoue et aucune VM n'est créée.- 1- Compute Engine crée autant de VM que possible, jusqu'à - COUNT.- Supérieur à - 1et inférieur à- COUNT- Compute Engine crée au moins - MIN_COUNTVM et jusqu'à- COUNTVM au maximum. Si les- MIN_COUNTVM ne peuvent pas être créées, la requête échoue et aucune VM n'est créée.
- LOCATION_POLICY : zones à inclure ou exclure dans une région. Utilisez une liste de paires clé/valeur, avec la zone comme clé et la règle comme valeur. Les valeurs valides pour la règle sont - ALLOW(la valeur par défaut) et- DENY. Voici un exemple de valeur pour ce champ :- "locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
- TARGET_DISTRIBUTION_SHAPE : répartition des VM dans les zones spécifiées. Utilisez le champ - locationPolicypour spécifier les zones. Le tableau suivant indique les valeurs valides pour ce champ :- Valeur - Description - ANY_SINGLE_ZONE- Applique le placement de la VM dans une seule zone et donne la priorité à l'utilisation des réservations inutilisées. Utilisez cette option pour éviter toute sortie réseau interzone ou pour réduire la latence du réseau. Il s'agit de la valeur par défaut. - BALANCED- Tente de répartir uniformément les VM dans toutes les zones de la région. - ANY- Permet de répartir les VM dans plusieurs zones d'une région. Choisit les zones qui disposent de ressources disponibles et qui optimisent les réservations zonales non utilisées. 
 Créer des VM de manière groupée dans une zonePour créer des VM de manière groupée dans une zone, utilisez gcloud CLI ou l'API Compute Engine. gcloudPour créer des VM de manière groupée dans une zone spécifique, exécutez la commande gcloud compute instances bulk createsuivante.gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --zone=ZONE \ --count=COUNT \ [ --min-count=MIN_COUNT ]Remplacez les éléments suivants : - NAME_PATTERN : modèle de nom des VM. Utilisez une séquence de caractères de hachage ( - #) que Compute Engine remplacera par une séquence de nombres. Par exemple, le modèle de nom- vm-#génère des VM portant les noms- vm-1et- vm-2, etc., jusqu'à ce qu'il atteigne le nombre de VM spécifié par- --count, qui doit être inférieur ou égal au nombre de VM autorisé par le modèle de nom.- Lors de l'utilisation d'un modèle de nom, Compute Engine tente d'éviter les conflits de noms en vérifiant les noms des VM existantes créées à partir des requêtes précédentes. 
- PREDEFINED_NAMES : liste des noms prédéfinis des VM à créer. Si vous utilisez cette option et spécifiez - COUNT,- COUNTdoit être égal au nombre de noms fournis.
- ZONE : zone dans laquelle créer les VM. 
- COUNT : nombre de VM à créer. Cette valeur doit être inférieure ou égale au nombre de VM autorisées par - NAME_PATTERN. Si vous utilisez- --predefined-names, vous n'avez pas besoin de spécifier- COUNT, mais dans ce cas, la valeur doit être égale au nombre de noms fournis.
- MIN_COUNT : nombre minimal de VM à créer. Le tableau suivant décrit le comportement de la requête en fonction de la manière dont vous définissez cette option : - Valeur - Description - Non défini - La valeur par défaut est - COUNT. Si Compute Engine ne peut pas créer le nombre de VM spécifié par- COUNT, la requête échoue et aucune VM n'est créée.- 1- Compute Engine crée autant de VM que possible, jusqu'à - COUNT.- Supérieur à - 1et inférieur à- COUNT- Compute Engine crée au moins - MIN_COUNTVM et jusqu'à- COUNTVM au maximum. Si les- MIN_COUNTVM ne peuvent pas être créées, la requête échoue et aucune VM n'est créée.
 RESTPour créer des VM de manière groupée dans une zone, utilisez la méthode instances.bulkInsertsuivante.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {}, "PREDEFINED_NAME_2": {}, ... }, "count": COUNT, "minCount": MIN_COUNT, ... }Remplacez les éléments suivants : - PROJECT_ID : ID du projet. 
- ZONE : zone dans laquelle créer les VM. 
- NAME_PATTERN : modèle de nom des VM. Indiquez cette valeur ou - perInstanceProperties. Utilisez une séquence de caractères de hachage (- #) que Compute Engine remplacera par une séquence de nombres. Par exemple, le modèle de nom- vm-#génère des VM portant les noms- vm-1et- vm-2, etc., jusqu'à ce qu'il atteigne le nombre de VM spécifié par- --count, qui doit être inférieur ou égal au nombre de VM autorisé par le modèle de nom.- Lors de l'utilisation d'un modèle de nom, Compute Engine tente d'éviter les conflits de noms en vérifiant les noms des VM existantes créées à partir des requêtes précédentes. 
- PREDEFINED_NAME_1, PREDEFINED_NAME_2, ... : liste des noms prédéfinis des VM à créer. Spécifiez cet élément ou - namePattern. Si vous utilisez cette option et spécifiez- COUNT,- COUNTdoit être égal au nombre de noms fournis.
- COUNT : nombre de VM à créer. Cette valeur doit être inférieure ou égale au nombre de VM autorisées par - NAME_PATTERN. Si vous utilisez- perInstanceProperties, vous n'avez pas besoin de spécifier- COUNT, mais dans ce cas, la valeur doit être égale au nombre de noms fournis.
- MIN_COUNT : nombre minimal de VM à créer. Le tableau suivant décrit le comportement de la requête en fonction de la manière dont vous définissez cette option : - Valeur - Description - Non défini - La valeur par défaut est - COUNT. Si Compute Engine ne peut pas créer le nombre de VM spécifié par- COUNT, la requête échoue et aucune VM n'est créée.- 1- Compute Engine crée autant de VM que possible, jusqu'à - COUNT.- Supérieur à - 1et inférieur à- COUNT- Compute Engine crée au moins - MIN_COUNTVM et jusqu'à- COUNTVM au maximum. Si les- MIN_COUNTVM ne peuvent pas être créées, la requête échoue et aucune VM n'est créée.
 Créer des VM avec des noms d'hôte personnalisés de façon groupéeVous pouvez créer des VM avec des noms d'hôte personnalisés de façon groupée dans une région ou dans une zone à l'aide de gcloud CLI ou de l'API Compute Engine. L'enregistrement DNS de votre nom d'hôte personnalisé doit être configuré manuellement. Pour en savoir plus, consultez la section Limites. Si vous ne spécifiez pas de nom d'hôte, Compute Engine définit le nom d'hôte des VM comme suit : - VM_NAME.c.PROJECT_ID.internallorsque vous activez le DNS global
- VM_NAME.ZONE.c.PROJECT_ID.internallorsque vous activez le DNS zonal
 Pour en savoir plus, consultez la section Noms DNS internes. gcloudPour créer des VM avec des noms d'hôte personnalisés dans une région spécifique de façon groupée, utilisez la commande gcloud beta compute instances bulk createsuivante.gcloud beta compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --per-instance-hostnames=[VM_NAME=HOSTNAME,...] \ --zone=REGION \ --count=COUNT \ [ --min-count=MIN_COUNT ] [--location-policy=LOCATION_POLICY \ ] [--target-distribution-shape=TARGET_DISTRIBUTION_SHAPE ]Remplacez les éléments suivants : - NAME_PATTERN : modèle de nom des VM. Utilisez une séquence de caractères de hachage ( - #) que Compute Engine remplacera par une séquence de nombres. Par exemple, le modèle de nom- vm-#génère des VM portant les noms- vm-1et- vm-2, etc., jusqu'à ce qu'il atteigne le nombre de VM spécifié par- --count, qui doit être inférieur ou égal au nombre de VM autorisé par le modèle de nom.- Lors de l'utilisation d'un modèle de nom, Compute Engine tente d'éviter les conflits de noms en vérifiant les noms des VM existantes créées à partir des requêtes précédentes. 
- PREDEFINED_NAMES : liste des noms prédéfinis des VM à créer. Si vous utilisez cette option et spécifiez - COUNT,- COUNTdoit être égal au nombre de noms fournis.
- [VM_NAME=HOSTNAME, …] : liste de paires clé/valeur de noms prédéfinis pour les VM et les noms d'hôte de domaine complets que vous souhaitez attribuer aux VM. Les noms d'hôte personnalisés doivent être conformes aux exigences de la norme RFC 1035 relative aux noms d'hôte valides. 
- REGION : zone dans laquelle créer les VM. 
- COUNT : nombre de VM à créer. Cette valeur doit être inférieure ou égale au nombre de VM autorisées par - NAME_PATTERN. Si vous utilisez- --predefined-names, vous n'avez pas besoin de spécifier- COUNT, mais dans ce cas, la valeur doit être égale au nombre de noms fournis.
- MIN_COUNT : nombre minimal de VM à créer. Le tableau suivant décrit le comportement de la requête en fonction de la manière dont vous définissez cette option : - Valeur - Description - Non défini - La valeur par défaut est - COUNT. Si Compute Engine ne peut pas créer le nombre de VM spécifié par- COUNT, la requête échoue et aucune VM n'est créée.- 1- Compute Engine crée autant de VM que possible, jusqu'à - COUNT.- Supérieur à - 1et inférieur à- COUNT- Compute Engine crée au moins - MIN_COUNTVM et jusqu'à- COUNTVM au maximum. Si les- MIN_COUNTVM ne peuvent pas être créées, la requête échoue et aucune VM n'est créée.
- LOCATION_POLICY : zones à inclure ou exclure dans une région. Utilisez une liste de paires clé/valeur, avec la zone comme clé et la règle comme valeur. Les valeurs valides pour la règle sont - ALLOW(la valeur par défaut) et- DENY. Voici un exemple de valeur pour ce champ :- "locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
- TARGET_DISTRIBUTION_SHAPE : répartition des VM dans les zones spécifiées. Utilisez le champ - locationPolicypour spécifier les zones. Le tableau suivant indique les valeurs valides pour ce champ :- Valeur - Description - ANY_SINGLE_ZONE- Applique le placement de la VM dans une seule zone et donne la priorité à l'utilisation des réservations inutilisées. Utilisez cette option pour éviter toute sortie réseau interzone ou pour réduire la latence du réseau. Il s'agit de la valeur par défaut. - BALANCED- Tente de répartir uniformément les VM dans toutes les zones de la région. - ANY- Permet de répartir les VM dans plusieurs zones d'une région. Choisit les zones qui disposent de ressources disponibles et qui optimisent les réservations zonales non utilisées. 
 RESTPour créer des VM avec des noms d'hôte personnalisés dans une région spécifique de façon groupée, utilisez la méthode instances.bulkInsertsuivante :POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instances/bulkInsert { ... "namePattern": "NAME_PATTERN", "perInstanceProperties": { "PREDEFINED_NAME_1": {"hostname": HOSTNAME_1}, "PREDEFINED_NAME_2": {"hostname": HOSTNAME_2}, ... }, "count": COUNT, "minCount": MIN_COUNT, "locationPolicy": { "LOCATION_POLICY" }, "targetShape": "TARGET_DISTRIBUTION_SHAPE" ... }Remplacez les éléments suivants : - PROJECT_ID : ID du projet. 
- REGION : région dans laquelle créer les VM. 
- NAME_PATTERN : modèle de nom des VM. Indiquez cette valeur ou - perInstanceProperties. Utilisez une séquence de caractères de hachage (- #) que Compute Engine remplacera par une séquence de nombres. Par exemple, le modèle de nom- vm-#génère des VM portant les noms- vm-1et- vm-2, etc., jusqu'à ce qu'il atteigne le nombre de VM spécifié par- --count, qui doit être inférieur ou égal au nombre de VM autorisé par le modèle de nom.- Lors de l'utilisation d'un modèle de nom, Compute Engine tente d'éviter les conflits de noms en vérifiant les noms des VM existantes créées à partir des requêtes précédentes. 
- PREDEFINED_NAME_1, PREDEFINED_NAME_2, ... : liste des noms prédéfinis des VM à créer. Spécifiez cet élément ou - namePattern. Si vous utilisez cette option et spécifiez- COUNT,- COUNTdoit être égal au nombre de noms fournis.
- HOSTNAME_1, HOSTNAME_2, … : noms d'hôte de domaine complets que vous souhaitez attribuer aux VM. Les noms d'hôte personnalisés doivent être conformes aux exigences de la norme RFC 1035 relative aux noms d'hôte valides. - Par exemple, pour créer deux VM - vm-1et- vm-2avec les noms d'hôte personnalisés- my-host1234.example.comet- test.example.com, spécifiez respectivement la propriété- hostnamedans- perInstanceProperties, comme suit :- { ... "perInstanceProperties": { "vm-1": { "hostname": "my-host1234.example.com" }, "vm-2": { "hostname": "test.example.com" }, ...} },
- COUNT : nombre de VM à créer. Cette valeur doit être inférieure ou égale au nombre de VM autorisées par - NAME_PATTERN. Si vous utilisez- perInstanceProperties, vous n'avez pas besoin de spécifier- COUNT, mais dans ce cas, la valeur doit être égale au nombre de noms fournis.
- MIN_COUNT : nombre minimal de VM à créer. Le tableau suivant décrit le comportement de la requête en fonction de la manière dont vous définissez cette option : - Valeur - Description - Non défini - La valeur par défaut est - COUNT. Si Compute Engine ne peut pas créer le nombre de VM spécifié par- COUNT, la requête échoue et aucune VM n'est créée.- 1- Compute Engine crée autant de VM que possible, jusqu'à - COUNT.- Supérieur à - 1et inférieur à- COUNT- Compute Engine crée au moins - MIN_COUNTVM et jusqu'à- COUNTVM au maximum. Si les- MIN_COUNTVM ne peuvent pas être créées, la requête échoue et aucune VM n'est créée.
- LOCATION_POLICY : zones à inclure ou exclure dans une région. Utilisez une liste de paires clé/valeur, avec la zone comme clé et la règle comme valeur. Les valeurs valides pour la règle sont - ALLOW(la valeur par défaut) et- DENY. Voici un exemple de valeur pour ce champ :- "locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
- TARGET_DISTRIBUTION_SHAPE : répartition des VM dans les zones spécifiées. Utilisez le champ - locationPolicypour spécifier les zones. Le tableau suivant indique les valeurs valides pour ce champ :- Valeur - Description - ANY_SINGLE_ZONE- Applique le placement de la VM dans une seule zone et donne la priorité à l'utilisation des réservations inutilisées. Utilisez cette option pour éviter toute sortie réseau interzone ou pour réduire la latence du réseau. Il s'agit de la valeur par défaut. - BALANCED- Tente de répartir uniformément les VM dans toutes les zones de la région. - ANY- Permet de répartir les VM dans plusieurs zones d'une région. Choisit les zones qui disposent de ressources disponibles et qui optimisent les réservations zonales non utilisées. 
 Vérifier l'état d'une requête de création de VM de manière groupéeLorsque vous créez une requête de mutation, Compute Engine renvoie une ressource operationque vous pouvez interroger pour obtenir l'état de l'opération. Pour en savoir plus, consultez la page Gérer les réponses de l'API.Pour obtenir l'état d'une requête d'insertion groupée, envoyez une requête HTTP GETà la ressourceoperation:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations/OPERATION_ID Pour obtenir l'état d'une requête d'insertion groupée régionale, envoyez la requête suivante : GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID Remplacez les éléments suivants : - PROJECT_ID: ID du projet dans lequel vous créez des VM
- REGION: région dans laquelle vous créez des VM
- ZONE: zone dans laquelle vous créez des VM
- OPERATION_ID: ID de l'opération d'insertion groupée
 L'objet instancesBulkInsertOperationMetadatade la réponse contient des informations sur l'opération par zone dans le champperLocationStatus. Pour chaque zone incluse dans la demande de création groupée,perLocationStatuscontient les champs suivants :- status: l'état est l'un des suivants :- CREATING: la création de la VM est en cours dans la zone.
- ROLLING_BACK: la requête a échoué dans la zone et fait l'objet d'un rollback.
- DONE: la création ou le rollback de la VM a bien été effectué dans la zone.
 
- targetVmCount: nombre de VM que Compute Engine tente de créer dans la zone. Compute Engine détermine ce nombre après les vérifications initiales, et il ne change pas pendant l'opération. Lorsque vous vérifiez l'état de l'opération, ce champ est toujours présent pour chaque zone.
- createdVmCount: nombre de VM déjà créées dans la zone. Cette valeur ne dépasse pas- targetVmCountpour une zone donnée.- failedToCreateVmCount: nombre de VM dont la création a échoué dans la zone.
- deletedVmCount: nombre de VM supprimées dans la zone dans le cadre du rollback d'une opération ayant échoué.
 
 Le champ progressdans la réponse représente le pourcentage d'achèvement de l'opération.L'état de l'opération d'insertion groupée est défini sur RUNNINGjusqu'à ce que Compute Engine crée au moins le nombre minimal de VM et ne crée plus de VM ni n'effectue de rollback de la requête.Lorsque l'opération d'insertion groupée est en cours, vous devriez obtenir une réponse semblable à celle-ci : { "kind" : "compute#operation", "id": "4653028658507445766", "name": "operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationType": "bulkInsert", "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project" "targetId": 4653028658507445766, "status": "RUNNING", "progress": 2, "user": "example@google.com", "insertTime": "2023-04-23T09:57:13.474-07:00", "startTime": "2023-04-23T09:57:13.474-07:00", "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationGroupId": "4653028658507445766", "metadata": "instances_bulk_insert_operation_metadata": { "per_location_status": { "zones/us-central1-a": { "status": "CREATING", "targetVmCount": 50, "createdVmCount": 1 } } } }Dans cet exemple, une instance a été créée avec succès et l'opération est terminée à 2 %. L'opération renvoie l'état DONElorsque Compute Engine crée au moins le nombre minimal de VM spécifié parminCountou lorsque Compute Engine termine le rollback de la requête. Une fois le nombre de VM demandé créé, vous obtenez une réponse semblable à celle-ci :{ "endTime": "2023-04-23T09:58:13.474-07:00", "id": "5053101474378293244", "insertTime": "2023-04-23T09:57:13.474-07:00", "instancesBulkInsertOperationMetadata": { "perLocationStatus": { "zones/us-central1-a": { "status": "DONE", "createdVmCount": 50, "targetVmCount": 50 } } }, "kind": "compute#operation", "name": "operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "operationGroupId": "4653028658507445766", "operationType": "bulkInsert", "progress": 100, "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/operations/operation-1587661030638-5a3f823c143e3-e33bbfa3-bd72185c", "startTime": "2023-09-11T16:21:55.629-07:00", "status": "DONE", "targetId": "625521788110", "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project", "user": "example@google.com", "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a" }Pour en savoir plus, consultez la documentation de l'objet instancesBulkInsertOperationMetadata.Vérifier l'état d'une seule VMPour vérifier l'état d'une seule VM créée à partir d'une requête de création groupée de VM, utilisez gcloud CLI ou l'API Compute Engine. gcloud- Obtenez la valeur de la propriété - operationGroupIdà partir de la ressource- Operationrenvoyée par la requête.
- Utilisez la propriété - operationGroupIdcomme un filtre avec la commande- gcloud compute operations listpour rechercher les VM associées à la requête régionale ou zonale dans l'ensemble des opérations et des zones du projet :- gcloud compute operations list \ --filter=(operationGroupId=OPERATION_GROUP_ID) 
- Obtenez les autres propriétés de la VM en effectuant l'une des opérations suivantes : - Dans la liste des opérations, - targetLinkreprésente le chemin d'accès de la VM. Exécutez la commande- gcloud compute instances describeen indiquant ce chemin d'accès comme nom de la VM pour obtenir les propriétés de la VM :- gcloud compute instances describe VM_NAME 
- Exécutez la commande - gcloud compute instances listavec un filtre incluant les noms des VM de la liste des opérations :- gcloud compute instances list VM_NAME \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
- Exécutez la commande - gcloud compute instances listpour obtenir les propriétés des VM situées dans l'ensemble des zones et des régions, et filtrez les résultats en fonction d'un libellé propre aux instances ou de leur nom :- gcloud compute instances list \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
 
 REST- Obtenez la valeur de la propriété - operationGroupIdà partir de la ressource- Operationrenvoyée par la requête.
- Utilisez la propriété - operationGroupIdpour obtenir la liste des opérations de VM associées à la requête régionale ou zonale :- Si vous avez envoyé une requête régionale, pour effectuer une recherche sur l'ensemble des opérations et des zones du projet, utilisez la méthode - globalOperations.aggregatedListet incluez la propriété- operationGroupIden tant que filtre :- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/operations?filter=(operationGroupId=OPERATION_GROUP_ID) 
- Si vous avez envoyé une requête zonale, pour répertorier les opérations dans cette zone, utilisez la méthode - zoneOperations.getet incluez la propriété- operationGroupIddans la corps de la requête :- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/bulkInsert { ... "operationGroupId":"OPERATION_GROUP_ID" ... }
 
- Obtenez les autres propriétés de la VM en effectuant l'une des opérations suivantes : - Dans la liste des opérations, - targetLinkreprésente le chemin d'accès de la VM. Utilisez la méthode- instances.geten indiquant ce chemin d'accès comme nom de la VM pour obtenir toutes les propriétés de la VM :- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME 
- Utilisez la méthode - instances.getavec un filtre incluant les noms des VM de la liste des opérations :- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
- Utilisez la méthode - instances.aggregatedListpour obtenir les propriétés des VM situées dans l'ensemble des zones et des régions, et filtrez les résultats en fonction d'un libellé propre aux instances ou de leur nom :- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
 
 Exemples de pseudo-codeLes exemples de pseudo-code suivants montrent comment personnaliser les requêtes de création de VM de manière groupée. Créer des VM de manière groupée dans une région à partir d'un ensemble de régionsLe pseudo-code suivant décrit comment créer 1 000 VM dans une région à partir d'un ensemble de régions. Lorsque vous tentez de créer des VM de manière groupée dans une région à partir d'un ensemble de régions, la requête commence par vérifier la capacité. Si la capacité est insuffisante, la requête échoue immédiatement et recommence avec la région suivante de l'ensemble. - Spécifiez le nombre de VM à créer dans une zone. - nTarget = 1000
- Indiquez les régions dans lesquelles créer les VM. - acceptableRegions = ["us-central1", "us-east1", "us-west1"]
- Effectuez des itérations via les régions et créez les VM dans chaque région jusqu'à ce qu'elles aboutissent. - for region in acceptableRegions: call bulk API: region=region, location-policy=location-policy, count=nTarget if request succeeds and the operation succeeds: break
 Créer des VM de manière groupée dans une zonesur un type de machine Le pseudo-code suivant décrit comment créer plusieurs VM dans une zone sur un type de machine spécifié. Lorsque vous tentez de créer des VM de manière groupée sur le même type de machine, la requête vérifie d'abord la disponibilité de ces types de machines. Si le type de machine disponible n'est pas suffisant, la requête échoue immédiatement et recommence avec le type de machine suivant. - Spécifiez le nombre de VM à créer et la région dans laquelle les créer. - nTarget = 1000 region = "us-central1"
- Spécifiez les familles de machines sur lesquelles créer les VM. - acceptableMachineFamilies = ["n2","c2","e2","n1"]
- Effectuez des itérations via les types de machines et créez les VM sur ce type de machine jusqu'à ce qu'elles aboutissent. - for family in acceptableMachineFamilies: call bulk APIs: region=region, count=nTarget, machineFamily=family if request succeeds and the operation succeeds: break
 Créer plus de 5 000 VM dans une zoneLorsque vous créez des VM de manière groupée, vous ne pouvez créer que 5 000 VM par requête. Le pseudo-code suivant décrit comment créer plus de 5 000 VM dans une zone en envoyant plusieurs requêtes. - Indiquez le nombre de VM à créer, un compteur pour effectuer le suivi du nombre total de VM créées, la région dans laquelle créer les VM, et une variable pour stocker la zone dans laquelle Compute Engine crée les VM. - nTarget = 10000 nCreated = 0 region = "us-central1" targetZone = ""
- Envoyez une requête initiale pour créer 5 000 VM, enregistrez la zone renvoyée par la requête, puis mettez à jour le compteur du nombre de VM créées. - call bulk API: region=region, count=5000 targetZone = zone chosen by bulk API nCreated += # of VMs created
- Continuez à envoyer des requêtes pour créer jusqu'à 5 000 VM à la fois dans la zone jusqu'à ce que Compute Engine crée le nombre de VM spécifié. - while(nTarget - nCreated > 0): call bulk API: zone=targetZone, count=5000 nCreated += # of VMs created
 Créer des VM de manière groupée et afficher leur étatLa procédure suivante montre comment créer un groupe de VM portant des noms prédéfinis, puis afficher leur état : - Indiquez le nombre de VM à créer, la zone dans laquelle les créer, ainsi qu'une structure de données dans laquelle stocker les noms. - nTarget = 1000 targetZone = "us-central-1a" names = []
- Générez les noms modélisés des VM et ajoutez-les à la structure de données. - for n in range(0, 1000): names.push("instance-%d".format(n))
- Créez les VM et utilisez - perInstancePropertiespour spécifier les noms.- call bulk API(zone=targetZone, count=nTarget, names=perInstanceProperties)
- Pour obtenir des informations sur les VM, utilisez la méthode - instances.listavec un filtre portant sur les noms des VM dont vous souhaitez connaître les détails.- instances.list(filter=(name = "instance-1") OR (name = "instance-2") ...)
 Étape suivanteAprès avoir créé des VM de manière groupée, effectuez l'une des opérations suivantes, ou les deux, pour simplifier la gestion de ces VM : - Ajoutez les VM à un groupe d'instances non géré. L'ajout de VM à un groupe d'instances non géré vous permet d'utiliser Cloud Monitoring. Les groupes d'instances non gérés ne se chargent ni de la gestion du cycle de vie, ni de l'équilibrage de charge des VM. 
- Utilisez des libellés. Les libellés permettent d'organiser les ressources à l'aide de paires clé/valeur. 
 Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées. Dernière mise à jour le 2025/10/18 (UTC). -