Cuando quieras crear una gran cantidad de instancias de máquina virtual (VM) que sean idénticas y también independientes entre sí, crea VMs de forma masiva mediante Google Cloud CLI o la API de Compute Engine. Puedes crear estas VMs en todas las zonas de una región o distribuirlas en ciertas zonas.
Para obtener más detalles y las limitaciones asociadas, consulta Acerca de la creación masiva de VMs. Si quieres crear instancias con GPU conectadas, consulta Crea VMs de GPU de forma masiva.
Antes de comenzar
- En el caso de las VMs y cualquier recurso relacionado que quieras crear, asegúrate de tener suficiente cuota y los permisos necesarios.
- 
  
  Si aún no lo hiciste, configura la autenticación.
  La autenticación verifica tu identidad para acceder a los servicios y las APIs de Google Cloud . Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando: gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la CLI de gcloud con tu identidad federada. 
- Set a default region and zone.
 RESTPara usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a gcloud CLI. Instala Google Cloud CLI. Después de la instalación, inicializa Google Cloud CLI ejecutando el siguiente comando: gcloud initSi usas un proveedor de identidad externo (IdP), primero debes acceder a la CLI de gcloud con tu identidad federada. Para obtener más información, consulta Autentícate para usar REST en la documentación de autenticación de Google Cloud . Roles requeridosPara obtener los permisos que necesitas para crear VMs de forma masiva, pídele a tu administrador que te otorgue el rol de IAM Administrador de instancias de Compute (v1) ( roles/compute.instanceAdmin.v1) en el proyecto. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.Este rol predefinido contiene los permisos necesarios para crear VMs de forma masiva. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos: Permisos necesariosSe requieren los siguientes permisos para crear VMs de forma masiva: - 
                  
                  compute.instances.createen el proyecto
- 
                Si deseas usar una imagen personalizada para crear la VM, sigue estos pasos: compute.images.useReadOnlyen la imagen
- 
                Para usar una instantánea a fin de crear la VM, haz lo siguiente: compute.snapshots.useReadOnlyen la instantánea
- 
                Si quieres usar una plantilla de instancias para crear la VM, sigue estos pasos: compute.instanceTemplates.useReadOnlyen la plantilla de instancias
- 
                A fin de especificar una subred para tu VM: compute.subnetworks.useen el proyecto o en la subred elegida
- 
                Si deseas especificar una dirección IP estática para la VM: compute.addresses.useen el proyecto
- 
                Para asignar una dirección IP externa a la VM cuando se usa una red de VPC, compute.subnetworks.useExternalIpen el proyecto o en la subred elegida.
- 
                Para asignar una red heredada a la VM, ejecuta compute.networks.useen el proyecto.
- 
                Para asignar una dirección IP externa a la VM cuando se usa una red heredada, ejecuta compute.networks.useExternalIpen el proyecto
- 
                Para configurar los metadatos de la instancia de VM para la VM, compute.instances.setMetadataen el proyecto.
- 
                Para configurar etiquetas en la VM, haz lo siguiente: compute.instances.setTagsen la VM
- 
                Para configurar etiquetas en la VM, haz lo siguiente: compute.instances.setLabelsen la VM
- 
                A fin de configurar una cuenta de servicio para que la VM use: compute.instances.setServiceAccounten la VM
- 
                Crear un disco nuevo para la VM: compute.disks.createen el proyecto
- 
                Para conectar un disco existente en modo de solo lectura o de lectura y escritura, usa compute.disks.useen el disco.
- 
                Para conectar un disco existente en modo de solo lectura, haz lo siguiente: compute.disks.useReadOnlyen el disco
 También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos. Crea VMs de forma masiva en una regiónPara crear VMs de forma masiva en una región, usa la CLI de gcloud o la API de Compute Engine. Si especificas un tipo de máquina o compatibilidad con hardware adicional, como una GPU o una SSD local, Compute Engine coloca las VM en una zona dentro de la región que admite el tipo de máquina y el hardware adicional. gcloudPara crear VMs de forma masiva en una región, usa el siguiente comando gcloud compute instances bulk create: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 ]Reemplaza lo siguiente: - NAME_PATTERN: Es el patrón del nombre de las VM. Usa una secuencia de caracteres hash ( - #) para que se reemplace Compute Engine por una secuencia de números. Por ejemplo, si usas- vm-#para el patrón de nombre, se generan VMs con nombres como- vm-1y- vm-2, hasta el número de VMs especificadas por- --count, que debe ser menor o igual que el número de VMs que permite el patrón de nombre.- Cuando se usa un patrón de nombre, Compute Engine intenta evitar conflictos de nombre mediante la verificación de los nombres de las VM existentes creadas a partir de solicitudes anteriores. 
- PREDEFINED_NAMES: una lista de nombres predefinidos para las VM que se crearán. Si usas esta marca y especificas - COUNT,- COUNTdebe ser igual a la cantidad de nombres proporcionados.
- REGION: La región en la que se crearán las VM 
- COUNT: la cantidad de VM que se crearán. Debe ser menor o igual que la cantidad de VM que permite - NAME_PATTERN. O, si usas- --predefined-names, no es necesario especificar- COUNT, pero si lo haces, debe ser igual a la cantidad de nombres proporcionados.
- MIN_COUNT: Es la cantidad mínima de VMs que se crearán. En la siguiente tabla, se describe el comportamiento de la solicitud en función de cómo configuras esta marca: - Valor - Descripción - Sin establecer - El valor predeterminado es - COUNT. Si Compute Engine no puede crear la cantidad de VMs que especifica- COUNT, la solicitud falla y no se crean VMs.- 1- Compute Engine crea tantas VM como sea posible hasta - COUNT.- Mayor que - 1y menos que- COUNT- Compute Engine crea al menos - MIN_COUNTVMs, hasta un máximo de- COUNTVMs. Si no se pueden crear- MIN_COUNTVMs, la solicitud falla y estas no se crean.
- LOCATION_POLICY: Son las zonas que se incluirán o excluirán dentro de una región. Usa una lista de pares clave-valor, con la zona como clave y la política como valor. Los valores válidos para la política son - allow, que es la opción predeterminada, y- deny. A continuación, se muestra un ejemplo de un valor para esta marca:- --location-policy=us-east1-b=allow,us-east1-c=deny 
- TARGET_DISTRIBUTION_SHAPE: La distribución de las VMs en las zonas especificadas Usa la marca - --location-policypara especificar las zonas. En la siguiente tabla, se muestran los valores válidos para esta marca:- Valor - Descripción - ANY_SINGLE_ZONE- Aplica la ubicación de la VM en una sola zona y prioriza el uso de las reservas sin usar. Emplea esta estrategia para evitar la salida de red entre zonas o reducir la latencia de red. Este es el valor predeterminado. - BALANCED- Intenta distribuir las VMs de manera uniforme entre todas las zonas de la región. - ANY- Permite la distribución de VMs en varias zonas de una región. Elige zonas que tengan recursos disponibles y maximicen las reservas zonales no utilizadas. 
 RESTPara crear VMs de forma masiva en una región, usa el siguiente método instances.bulkInsert: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" ... }Reemplaza lo siguiente: - PROJECT_ID: El ID del proyecto. 
- REGION: La región en la que se crearán las VM 
- NAME_PATTERN: Es el patrón del nombre de las VM. Especifica esto o - perInstanceProperties. Usa una secuencia de caracteres hash (- #) para que se reemplace Compute Engine por una secuencia de números. Por ejemplo, si usas- vm-#para el patrón de nombre, se generan VMs con nombres como- vm-1y- vm-2, hasta el número de VMs especificadas por- --count, que debe ser menor o igual que el número de VMs que permite el patrón de nombre.- Cuando se usa un patrón de nombre, Compute Engine intenta evitar conflictos de nombre mediante la verificación de los nombres de las VM existentes creadas a partir de solicitudes anteriores. 
- PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: una lista de nombres predefinidos para las VM que se crearán. Especifica esto o - namePattern. Si usas esta marca y especificas- COUNT,- COUNTdebe ser igual a la cantidad de nombres proporcionados.
- COUNT: la cantidad de VM que se crearán. Debe ser menor o igual que la cantidad de VM que permite - NAME_PATTERN. O, si usas- perInstanceProperties, no es necesario especificar- COUNT, pero si lo haces, debe ser igual a la cantidad de nombres proporcionados.
- MIN_COUNT: Es la cantidad mínima de VMs que se crearán. En la siguiente tabla, se describe el comportamiento de la solicitud en función de cómo configuras esta marca: - Valor - Descripción - Sin establecer - El valor predeterminado es - COUNT. Si Compute Engine no puede crear la cantidad de VMs que especifica- COUNT, la solicitud falla y no se crean VMs.- 1- Compute Engine crea tantas VM como sea posible hasta - COUNT.- Mayor que - 1y menos que- COUNT- Compute Engine crea al menos - MIN_COUNTVMs, hasta un máximo de- COUNTVMs. Si no se pueden crear- MIN_COUNTVMs, la solicitud falla y estas no se crean.
- LOCATION_POLICY: Son las zonas que se incluirán o excluirán dentro de una región. Usa una lista de pares clave-valor, con la zona como clave y la política como valor. Los valores válidos para la política son - ALLOW, que es la opción predeterminada, y- DENY. A continuación, se muestra un ejemplo de un valor para este campo:- "locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
- TARGET_DISTRIBUTION_SHAPE: La distribución de las VMs en las zonas especificadas. Usa el campo - locationPolicypara especificar las zonas. En la siguiente tabla, se muestran los valores válidos para este campo:- Valor - Descripción - ANY_SINGLE_ZONE- Aplica la ubicación de la VM en una sola zona y prioriza el uso de las reservas sin usar. Emplea esta estrategia para evitar la salida de red entre zonas o reducir la latencia de red. Este es el valor predeterminado. - BALANCED- Intenta distribuir las VMs de manera uniforme entre todas las zonas de la región. - ANY- Permite la distribución de VMs en varias zonas de una región. Elige zonas que tengan recursos disponibles y maximicen las reservas zonales no utilizadas. 
 Crea VMs de forma masiva en una zonaPara crear VMs de forma masiva en una zona, usa la CLI de gcloud o la API de Compute Engine. gcloudPara crear VMs de forma masiva en una zona específica, usa el siguiente comando gcloud compute instances bulk create.gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --zone=ZONE \ --count=COUNT \ [ --min-count=MIN_COUNT ]Reemplaza lo siguiente: - NAME_PATTERN: Es el patrón del nombre de las VM. Usa una secuencia de caracteres hash ( - #) para que se reemplace Compute Engine por una secuencia de números. Por ejemplo, si usas- vm-#para el patrón de nombre, se generan VMs con nombres como- vm-1y- vm-2, hasta el número de VMs especificadas por- --count, que debe ser menor o igual que el número de VMs que permite el patrón de nombre.- Cuando se usa un patrón de nombre, Compute Engine intenta evitar conflictos de nombre mediante la verificación de los nombres de las VM existentes creadas a partir de solicitudes anteriores. 
- PREDEFINED_NAMES: una lista de nombres predefinidos para las VM que se crearán. Si usas esta marca y especificas - COUNT,- COUNTdebe ser igual a la cantidad de nombres proporcionados.
- ZONE: Es la zona en la que se creará la VM. 
- COUNT: la cantidad de VM que se crearán. Debe ser menor o igual que la cantidad de VM que permite - NAME_PATTERN. O, si usas- --predefined-names, no es necesario especificar- COUNT, pero si lo haces, debe ser igual a la cantidad de nombres proporcionados.
- MIN_COUNT: Es la cantidad mínima de VMs que se crearán. En la siguiente tabla, se describe el comportamiento de la solicitud en función de cómo configuras esta marca: - Valor - Descripción - Sin establecer - El valor predeterminado es - COUNT. Si Compute Engine no puede crear la cantidad de VMs que especifica- COUNT, la solicitud falla y no se crean VMs.- 1- Compute Engine crea tantas VM como sea posible hasta - COUNT.- Mayor que - 1y menos que- COUNT- Compute Engine crea al menos - MIN_COUNTVMs, hasta un máximo de- COUNTVMs. Si no se pueden crear- MIN_COUNTVMs, la solicitud falla y estas no se crean.
 RESTPara crear VMs de forma masiva en una zona, usa el siguiente método instances.bulkInsert.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, ... }Reemplaza lo siguiente: - PROJECT_ID: El ID del proyecto. 
- ZONE: Es la zona en la que se creará la VM. 
- NAME_PATTERN: Es el patrón del nombre de las VM. Especifica esto o - perInstanceProperties. Usa una secuencia de caracteres hash (- #) para que se reemplace Compute Engine por una secuencia de números. Por ejemplo, si usas- vm-#para el patrón de nombre, se generan VMs con nombres como- vm-1y- vm-2, hasta el número de VMs especificadas por- --count, que debe ser menor o igual que el número de VMs que permite el patrón de nombre.- Cuando se usa un patrón de nombre, Compute Engine intenta evitar conflictos de nombre mediante la verificación de los nombres de las VM existentes creadas a partir de solicitudes anteriores. 
- PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: una lista de nombres predefinidos para las VM que se crearán. Especifica esto o - namePattern. Si usas esta marca y especificas- COUNT,- COUNTdebe ser igual a la cantidad de nombres proporcionados.
- COUNT: la cantidad de VM que se crearán. Debe ser menor o igual que la cantidad de VM que permite - NAME_PATTERN. O, si usas- perInstanceProperties, no es necesario especificar- COUNT, pero si lo haces, debe ser igual a la cantidad de nombres proporcionados.
- MIN_COUNT: Es la cantidad mínima de VMs que se crearán. En la siguiente tabla, se describe el comportamiento de la solicitud en función de cómo configuras esta marca: - Valor - Descripción - Sin establecer - El valor predeterminado es - COUNT. Si Compute Engine no puede crear la cantidad de VMs que especifica- COUNT, la solicitud falla y no se crean VMs.- 1- Compute Engine crea tantas VM como sea posible hasta - COUNT.- Mayor que - 1y menos que- COUNT- Compute Engine crea al menos - MIN_COUNTVMs, hasta un máximo de- COUNTVMs. Si no se pueden crear- MIN_COUNTVMs, la solicitud falla y estas no se crean.
 Crea VMs con nombres de host personalizados de forma masivaPuedes crear VMs con nombres de host personalizados de forma masiva en una región o una zona mediante la gcloud CLI o la API de Compute Engine. Debes configurar manualmente el registro DNS para tu nombre de host personalizado. Para obtener más información, consulta Limitaciones. Si no especificas un nombre de host, Compute Engine establece el nombre de host para las VMs como una de las siguientes opciones: - VM_NAME.c.PROJECT_ID.internalcuando habilites el DNS global
- VM_NAME.ZONE.c.PROJECT_ID.internalcuando habilites el DNS zonal
 Para obtener más información, consulta Nombres de DNS internos. gcloudPara crear VMs de forma masiva con nombres de host personalizados en una región específica, usa el siguiente comando gcloud beta compute instances bulk create.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 ]Reemplaza lo siguiente: - NAME_PATTERN: Es el patrón del nombre de las VM. Usa una secuencia de caracteres hash ( - #) para que se reemplace Compute Engine por una secuencia de números. Por ejemplo, si usas- vm-#para el patrón de nombre, se generan VMs con nombres como- vm-1y- vm-2, hasta el número de VMs especificadas por- --count, que debe ser menor o igual que el número de VMs que permite el patrón de nombre.- Cuando se usa un patrón de nombre, Compute Engine intenta evitar conflictos de nombre mediante la verificación de los nombres de las VM existentes creadas a partir de solicitudes anteriores. 
- PREDEFINED_NAMES: una lista de nombres predefinidos para las VM que se crearán. Si usas esta marca y especificas - COUNT,- COUNTdebe ser igual a la cantidad de nombres proporcionados.
- [VM_NAME=HOSTNAME, ...]: una lista de pares clave-valor de nombres predefinidos para las VMs y nombres de host de dominio completamente calificados que deseas asignar para las VMs. Los nombres de host personalizados deben cumplir con los requisitos de RFC 1035 para nombres de host válidos. 
- REGION: Es la zona en la que se creará la VM. 
- COUNT: la cantidad de VM que se crearán. Debe ser menor o igual que la cantidad de VM que permite - NAME_PATTERN. O, si usas- --predefined-names, no es necesario especificar- COUNT, pero si lo haces, debe ser igual a la cantidad de nombres proporcionados.
- MIN_COUNT: Es la cantidad mínima de VMs que se crearán. En la siguiente tabla, se describe el comportamiento de la solicitud en función de cómo configuras esta marca: - Valor - Descripción - Sin establecer - El valor predeterminado es - COUNT. Si Compute Engine no puede crear la cantidad de VMs que especifica- COUNT, la solicitud falla y no se crean VMs.- 1- Compute Engine crea tantas VM como sea posible hasta - COUNT.- Mayor que - 1y menos que- COUNT- Compute Engine crea al menos - MIN_COUNTVMs, hasta un máximo de- COUNTVMs. Si no se pueden crear- MIN_COUNTVMs, la solicitud falla y estas no se crean.
- LOCATION_POLICY: Son las zonas que se incluirán o excluirán dentro de una región. Usa una lista de pares clave-valor, con la zona como clave y la política como valor. Los valores válidos para la política son - ALLOW, que es la opción predeterminada, y- DENY. A continuación, se muestra un ejemplo de un valor para este campo:- "locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
- TARGET_DISTRIBUTION_SHAPE: La distribución de las VMs en las zonas especificadas. Usa el campo - locationPolicypara especificar las zonas. En la siguiente tabla, se muestran los valores válidos para este campo:- Valor - Descripción - ANY_SINGLE_ZONE- Aplica la ubicación de la VM en una sola zona y prioriza el uso de las reservas sin usar. Emplea esta estrategia para evitar la salida de red entre zonas o reducir la latencia de red. Este es el valor predeterminado. - BALANCED- Intenta distribuir las VMs de manera uniforme entre todas las zonas de la región. - ANY- Permite la distribución de VMs en varias zonas de una región. Elige zonas que tengan recursos disponibles y maximicen las reservas zonales no utilizadas. 
 RESTPara crear VMs con nombres de host personalizados de forma masiva en una región específica, usa el siguiente método instances.bulkInsert: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" ... }Reemplaza lo siguiente: - PROJECT_ID: El ID del proyecto. 
- REGION: La región en la que se crearán las VM 
- NAME_PATTERN: Es el patrón del nombre de las VM. Especifica esto o - perInstanceProperties. Usa una secuencia de caracteres hash (- #) para que se reemplace Compute Engine por una secuencia de números. Por ejemplo, si usas- vm-#para el patrón de nombre, se generan VMs con nombres como- vm-1y- vm-2, hasta el número de VMs especificadas por- --count, que debe ser menor o igual que el número de VMs que permite el patrón de nombre.- Cuando se usa un patrón de nombre, Compute Engine intenta evitar conflictos de nombre mediante la verificación de los nombres de las VM existentes creadas a partir de solicitudes anteriores. 
- PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: una lista de nombres predefinidos para las VM que se crearán. Especifica esto o - namePattern. Si usas esta marca y especificas- COUNT,- COUNTdebe ser igual a la cantidad de nombres proporcionados.
- HOSTNAME_1, HOSTNAME_2, ...: nombres de host de dominio completamente calificados que deseas asignar para las VMs. Los nombres de host personalizados deben cumplir con los requisitos de RFC 1035 para nombres de host válidos. - Por ejemplo, para crear dos VMs - vm-1y- vm-2con nombres de host personalizados- my-host1234.example.comy- test.example.comrespectivamente, especifica la propiedad- hostnameen- perInstancePropertiesde la siguiente manera:- { ... "perInstanceProperties": { "vm-1": { "hostname": "my-host1234.example.com" }, "vm-2": { "hostname": "test.example.com" }, ...} },
- COUNT: la cantidad de VM que se crearán. Debe ser menor o igual que la cantidad de VM que permite - NAME_PATTERN. O, si usas- perInstanceProperties, no es necesario especificar- COUNT, pero si lo haces, debe ser igual a la cantidad de nombres proporcionados.
- MIN_COUNT: Es la cantidad mínima de VMs que se crearán. En la siguiente tabla, se describe el comportamiento de la solicitud en función de cómo configuras esta marca: - Valor - Descripción - Sin establecer - El valor predeterminado es - COUNT. Si Compute Engine no puede crear la cantidad de VMs que especifica- COUNT, la solicitud falla y no se crean VMs.- 1- Compute Engine crea tantas VM como sea posible hasta - COUNT.- Mayor que - 1y menos que- COUNT- Compute Engine crea al menos - MIN_COUNTVMs, hasta un máximo de- COUNTVMs. Si no se pueden crear- MIN_COUNTVMs, la solicitud falla y estas no se crean.
- LOCATION_POLICY: Son las zonas que se incluirán o excluirán dentro de una región. Usa una lista de pares clave-valor, con la zona como clave y la política como valor. Los valores válidos para la política son - ALLOW, que es la opción predeterminada, y- DENY. A continuación, se muestra un ejemplo de un valor para este campo:- "locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
- TARGET_DISTRIBUTION_SHAPE: La distribución de las VMs en las zonas especificadas. Usa el campo - locationPolicypara especificar las zonas. En la siguiente tabla, se muestran los valores válidos para este campo:- Valor - Descripción - ANY_SINGLE_ZONE- Aplica la ubicación de la VM en una sola zona y prioriza el uso de las reservas sin usar. Emplea esta estrategia para evitar la salida de red entre zonas o reducir la latencia de red. Este es el valor predeterminado. - BALANCED- Intenta distribuir las VMs de manera uniforme entre todas las zonas de la región. - ANY- Permite la distribución de VMs en varias zonas de una región. Elige zonas que tengan recursos disponibles y maximicen las reservas zonales no utilizadas. 
 Verifica el estado de una solicitud para crear VMs de forma masivaCuando creas una solicitud de mutación, Compute Engine muestra un objeto operationque puedes sondear para obtener el estado de la operación. Para obtener más información, consulta Controla las respuestas de la API.Para obtener el estado de una solicitud de inserción masiva, envía una solicitud HTTP GETal recursooperation:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations/OPERATION_ID Para obtener el estado de una solicitud de inserción masiva regional, envía la siguiente solicitud: GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID Reemplaza lo siguiente: - PROJECT_ID: El ID del proyecto en el que creas VMs
- REGION: Es la región en la que crearás las VMs.
- ZONE: Es la zona en la que crearás las VMs.
- OPERATION_ID: ID de la operación de inserción masiva
 El objeto instancesBulkInsertOperationMetadatade la respuesta contiene detalles sobre la operación por zona en el campoperLocationStatus. Para cada zona incluida en la solicitud de creación masiva,perLocationStatuscontiene los siguientes campos:- status: El estado corresponde a uno de los siguientes:- CREATING: La creación de la VM está en curso en la zona.
- ROLLING_BACK: La solicitud falló en la zona y se está revirtiendo.
- DONE: La creación o la reversión de la VM se completaron correctamente en la zona.
 
- targetVmCount: Es la cantidad de VMs que Compute Engine intenta crear en la zona. Compute Engine determina este recuento después de las verificaciones iniciales y no cambia durante la operación. Cuando verificas el estado de la operación, este campo siempre está presente para cada zona.
- createdVmCount: Es la cantidad de VMs que ya se crearon en la zona. Este valor no supera- targetVmCountpara una zona determinada.- failedToCreateVmCount: Es la cantidad de VMs que no se pudieron crear en la zona.
- deletedVmCount: Es la cantidad de VMs que se borraron en la zona como parte de la reversión de una operación fallida.
 
 El campo progressde la respuesta representa el porcentaje de completitud de la operación.El estado de la operación de inserción masiva es RUNNINGhasta que Compute Engine cree de forma correcta al menos la cantidad mínima de VMs especificadas y no se produzca ninguna otra creación de la VM o reversión de la solicitud.Cuando la operación de inserción masiva esté en curso, deberías ver una respuesta similar a la siguiente: { "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 } } } }En este ejemplo, se creó correctamente una instancia y la operación se completó en un 2%. La operación muestra el estado DONEcuando Compute Engine crea correctamente al menos la cantidad mínima de VMs especificadas porminCounto cuando Compute Engine completa la reversión de la solicitud. Después de crear correctamente la cantidad solicitada de VMs, recibirás una respuesta similar a la siguiente:{ "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" }Para obtener más información, consulta la documentación de la marca instancesBulkInsertOperationMetadata.Verifica el estado de una sola VMSi quieres verificar el estado de una sola VM creada a partir de una solicitud para crear VMs de forma masiva, usa la CLI de gcloud o la API de Compute Engine. gcloud- Desde el - Operationque muestra la solicitud, obtén el valor de la propiedad- operationGroupId.
- Usa la propiedad - operationGroupIdcomo filtro con el comando- gcloud compute operations listpara realizar búsquedas en todas las operaciones y zonas del proyecto de las VMs asociadas con la solicitud regional o zonal:- gcloud compute operations list \ --filter=(operationGroupId=OPERATION_GROUP_ID) 
- Para obtener el resto de las propiedades de la VM, haz lo siguiente: - En la lista de operaciones, el - targetLinkrepresenta la ruta de acceso de la VM. Usa el comando- gcloud compute instances describecon esta ruta como el nombre de la VM para obtener sus propiedades completas:- gcloud compute instances describe VM_NAME 
- Usa el comando - gcloud compute instances listcon un filtro que incluya los nombres de las VMs de la lista de operaciones:- gcloud compute instances list VM_NAME \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
- Usa el comando - gcloud compute instances listpara obtener las propiedades de VM de todas las zonas y regiones, y filtra por una etiqueta que sea única de las instancias o por sus nombres:- gcloud compute instances list \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
 
 REST- Desde el - Operationque muestra la solicitud, obtén el valor de la propiedad- operationGroupId.
- Usa la propiedad - operationGroupIdpara obtener la lista de operaciones de VM asociadas con la solicitud regional o zonal:- Si enviaste una solicitud regional, usa el método - globalOperations.aggregatedListy, luego, incluye la propiedad- operationGroupIdcomo filtro para buscar en todas las operaciones y zonas del proyecto:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/operations?filter=(operationGroupId=OPERATION_GROUP_ID) 
- Si enviaste una solicitud zonal, usa el método - zoneOperations.getpara enumerar las operaciones en esa zona y asegúrate de incluir la propiedad- operationGroupIden el cuerpo de la solicitud:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/bulkInsert { ... "operationGroupId":"OPERATION_GROUP_ID" ... }
 
- Para obtener el resto de las propiedades de la VM, haz lo siguiente: - En la lista de operaciones, el - targetLinkrepresenta la ruta de acceso de la VM. Usa el método- instances.getcon esta ruta de acceso como el nombre de la VM para obtener todas las propiedades de la VM:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME 
- Usa el método - instances.getcon un filtro que incluya los nombres de las VM de la lista de operaciones:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
- Usa el método - instances.aggregatedListpara obtener las propiedades de VM de todas las zonas y regiones, y filtra por una etiqueta que sea única de las instancias o por sus nombres:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
 
 Ejemplos de pseudocódigoEn los siguientes ejemplos de pseudocódigo, se muestra cómo personalizar las solicitudes para crear VMs de forma masiva. Crea VMs de forma masiva en una región a partir de un conjunto de regionesEn el siguiente seudocódigo, se describe cómo crear 1,000 VMs en una región de un conjunto de regiones. Cuando se intenta crear VMs de forma masiva en una región de un conjunto de regiones, la solicitud primero comprueba la capacidad. Si no hay capacidad suficiente, la solicitud falla de inmediato y vuelve a intentarlo con la siguiente región del conjunto. - Especifica la cantidad de VM que se crearán dentro de una zona. - nTarget = 1000
- Designa las regiones en las que se intentará crear las VM. - acceptableRegions = ["us-central1", "us-east1", "us-west1"]
- Itera en las regiones y trata de crear las VM en cada región hasta que logres hacerlo. - for region in acceptableRegions: call bulk API: region=region, location-policy=location-policy, count=nTarget if request succeeds and the operation succeeds: break
 Crea VMs de forma masiva en una zonaen un tipo de máquina En el siguiente seudocódigo, se describe cómo crear varias VMs en una zona de un tipo de máquina especificado. Cuando se intenta crear VMs de forma masiva en el mismo tipo de máquina, la solicitud primero comprueba la disponibilidad de esos tipos de máquina. Si no hay disponibilidad suficiente, la solicitud falla de inmediato y vuelve a intentarlo con el siguiente tipo de máquina. - Especifica la cantidad de VM que se crearán y la región en la que lo harán. - nTarget = 1000 region = "us-central1"
- Especifica las familias de máquinas en las que se intentará crear las VM. - acceptableMachineFamilies = ["n2","c2","e2","n1"]
- Itera el conjunto de tipos de máquinas y trata de crear las VM en el tipo de máquina hasta que se complete correctamente - for family in acceptableMachineFamilies: call bulk APIs: region=region, count=nTarget, machineFamily=family if request succeeds and the operation succeeds: break
 Crea más de 5,000 VMs en una zonaCuando creas VMs de forma masiva, solo puedes crear 5,000 VMs con cada solicitud. En el siguiente pseudocódigo, se describe cómo crear más de 5,000 VMs en una zona mediante el envío de varias solicitudes. - Especifica la cantidad de VM que se crearán, un contador para realizar un seguimiento de la cantidad total de VM creadas, la región en la que se crearán las VM y una variable para almacenar la zona en la que Compute Engine crea las VM. - nTarget = 10000 nCreated = 0 region = "us-central1" targetZone = ""
- Emite una solicitud inicial para crear 5,000 VMs, guarda la zona que muestra la solicitud y actualiza el recuento de la cantidad de VMs creadas. - call bulk API: region=region, count=5000 targetZone = zone chosen by bulk API nCreated += # of VMs created
- Continúa enviando solicitudes para crear hasta 5,000 VMs a la vez en la zona hasta que Compute Engine cree la cantidad especificada de VMs. - while(nTarget - nCreated > 0): call bulk API: zone=targetZone, count=5000 nCreated += # of VMs created
 Crea VMs de forma masiva y consulta su estadoEn el siguiente procedimiento, se muestra cómo crear un grupo de VMs que tengan nombres predefinidos y, luego, ver su estado: - Especifica la cantidad de VM que se crearán, la zona en la que se crearán y una estructura de datos en la que se almacenarán los nombres. - nTarget = 1000 targetZone = "us-central-1a" names = []
- Genera los nombres con patrones para las VM y agrégalos a la estructura de datos. - for n in range(0, 1000): names.push("instance-%d".format(n))
- Crea las VM y usa - perInstancePropertiespara especificar los nombres.- call bulk API(zone=targetZone, count=nTarget, names=perInstanceProperties)
- Obtén los detalles de las VM mediante el método - instances.listcon un filtro para los nombres de las VM sobre las que se mostrarán detalles.- instances.list(filter=(name = "instance-1") OR (name = "instance-2") ...)
 ¿Qué sigue?Después de crear VMs de forma masiva, realiza una de las siguientes acciones o ambas para simplificar la administración de esas VMs: - Agrega las VMs a un grupo de instancias no administrado. Agregar VMs a un grupo de instancias no administrado te permite usar Cloud Monitoring. Los grupos de instancias no administrados no proporcionan balanceo de cargas ni administración del ciclo de vida de la VM. 
- Usa etiquetas. Las etiquetas te permiten organizar los recursos con pares clave-valor. 
 Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados. Última actualización: 2025-10-19 (UTC) -