Quando quiser criar um grande número de instâncias de máquinas virtuais (VMs) idênticas e independentes entre si, crie VMs em massa através da Google Cloud CLI ou da API Compute Engine. Pode criar estas VMs em todas as zonas numa região ou distribuídas por determinadas zonas.
Para ver mais detalhes e limitações associadas, consulte o artigo Acerca da criação em massa de VMs. Se quiser criar instâncias com GPUs anexadas, consulte o artigo Crie VMs de GPU em massa.
Antes de começar
- Para VMs e quaisquer recursos relacionados que planeia criar, certifique-se de que tem quota suficiente e as autorizações necessárias.
- 
  
  Se ainda não o tiver feito, configure a autenticação.
  A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
  
   
   
     
   
  
   
   
     
   
  
   
   
     
   
  
 
 
 
  
    
      Select the tab for how you plan to use the samples on this page: gcloud- 
 
 
  
  
   
   
  
   
   
  
   
   
     
   
  
  
   
   
  
   
   
  
   
   
  
 
 
   
   
      Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando: gcloud initSe estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada. 
- Set a default region and zone.
 RESTPara usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando: gcloud initSe estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada. Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação. Funções necessáriasPara receber as autorizações de que precisa para criar VMs em massa, peça ao seu administrador para lhe conceder a função de IAM Administrador de instâncias do Compute (v1) ( roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Esta função predefinida contém as autorizações necessárias para criar VMs em massa. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias: Autorizações necessáriasAs seguintes autorizações são necessárias para criar VMs em massa: - 
                  compute.instances.createno projeto
- 
                Para usar uma imagem personalizada para criar a VM:
                  compute.images.useReadOnlyna imagem
- 
                Para usar um instantâneo para criar a VM:
                  compute.snapshots.useReadOnlyno instantâneo
- 
                Para usar um modelo de instância para criar a VM:
                  compute.instanceTemplates.useReadOnlyno modelo de instância
- 
                Para especificar uma sub-rede para a sua VM:
                  compute.subnetworks.useno projeto ou na sub-rede escolhida
- 
                Para especificar um endereço IP estático para a VM:
                  compute.addresses.useno projeto
- 
                Para atribuir um endereço IP externo à VM quando usar uma rede VPC:
                  compute.subnetworks.useExternalIpno projeto ou na sub-rede escolhida
- 
                Para atribuir uma rede antiga à VM:
                  compute.networks.useno projeto
- 
                Para atribuir um endereço IP externo à VM quando usar uma rede antiga:
                  compute.networks.useExternalIpno projeto
- 
                Para definir os metadados da instância de VM para a VM:
                  compute.instances.setMetadatano projeto
- 
                Para definir etiquetas para a VM:
                  compute.instances.setTagsna VM
- 
                Para definir etiquetas para a VM:
                  compute.instances.setLabelsna VM
- 
                Para definir uma conta de serviço para a VM usar:
                  compute.instances.setServiceAccountna VM
- 
                Para criar um novo disco para a VM:
                  compute.disks.createno projeto
- 
                Para anexar um disco existente no modo de leitura ou leitura/escrita:
                  compute.disks.useno disco
- 
                Para anexar um disco existente no modo de leitura:
                  compute.disks.useReadOnlyno disco
 Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas. Crie VMs em massa numa regiãoPara criar VMs em massa numa região, use a CLI gcloud ou a API Compute Engine. Se especificar um tipo de máquina ou suporte para hardware adicional, como uma GPU ou um SSD local, o Compute Engine coloca as VMs numa zona na região que suporta o tipo de máquina e o hardware adicional. gcloudPara criar VMs em massa numa região, use o seguinte gcloud compute instances bulk createcomando: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 ]Substitua o seguinte: - NAME_PATTERN: o padrão de nome para as VMs. Use uma sequência de carateres de cardinal ( - #) para o Compute Engine substituir por uma sequência de números. Por exemplo, usar- vm-#para o padrão de nome gera VMs com nomes como- vm-1e- vm-2, até ao número de VMs especificado por- --count, que tem de ser inferior ou igual ao número de VMs que o padrão de nome permite.- Quando usa um padrão de nome, o Compute Engine tenta evitar conflitos de nomes verificando os nomes das VMs existentes criadas a partir de pedidos anteriores. 
- PREDEFINED_NAMES: uma lista de nomes predefinidos para as VMs a criar. Se usar esta flag e especificar - COUNT,- COUNTtem de ser igual ao número de nomes fornecidos.
- REGION: a região na qual criar as VMs. 
- COUNT: o número de VMs a criar. Tem de ser inferior ou igual ao número de VMs permitidas por - NAME_PATTERN. Em alternativa, se usar- --predefined-names, não tem de especificar- COUNT, mas, se o fizer, tem de ser igual ao número de nomes fornecidos.
- MIN_COUNT: o número mínimo de VMs a criar. A tabela seguinte descreve o comportamento do pedido consoante a forma como define esta flag: - Valor - Descrição - Não definido - O valor predefinido é - COUNT. Se o Compute Engine não conseguir criar o número de VMs especificado por- COUNT, o pedido falha e não são criadas VMs.- 1- O Compute Engine cria o maior número possível de VMs, até - COUNT.- Superior a - 1e inferior a- COUNT- O Compute Engine cria, pelo menos, - MIN_COUNTVMs até um máximo de- COUNTVMs. Se não for possível criar VMs- MIN_COUNT, o pedido falha e não são criadas VMs.
- LOCATION_POLICY: as zonas a incluir ou excluir numa região. Use uma lista de pares de chave-valor, com a zona como chave e a política como valor. Os valores válidos para a política são - allow, que é o valor predefinido, e- deny. Segue-se um valor de exemplo para esta flag:- --location-policy=us-east1-b=allow,us-east1-c=deny 
- TARGET_DISTRIBUTION_SHAPE: a distribuição das VMs nas zonas especificadas. Use a flag - --location-policypara especificar as zonas. A tabela seguinte mostra os valores válidos para esta flag:- Valor - Descrição - ANY_SINGLE_ZONE- Impõe o posicionamento de VMs numa única zona e dá prioridade à utilização de reservas não usadas. Use esta opção para evitar a saída da rede entre zonas ou para reduzir a latência da rede. Este é o valor predefinido. - BALANCED- Tenta distribuir as VMs uniformemente por todas as zonas da região. - ANY- Permite a distribuição de VMs em várias zonas numa região. Escolhe zonas com recursos disponíveis e que maximizam as reservas zonais não usadas. 
 RESTPara criar VMs em massa numa região, use o seguinte instances.bulkInsertmétodo: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" ... }Substitua o seguinte: - PROJECT_ID: o ID do projeto. 
- REGION: a região na qual criar as VMs. 
- NAME_PATTERN: o padrão de nome para as VMs. Especifique esta propriedade ou - perInstanceProperties. Use uma sequência de carateres de hash (- #) para o Compute Engine substituir por uma sequência de números. Por exemplo, usar- vm-#para o padrão de nome gera VMs com nomes como- vm-1e- vm-2, até ao número de VMs especificado por- --count, que tem de ser inferior ou igual ao número de VMs que o padrão de nome permite.- Quando usa um padrão de nome, o Compute Engine tenta evitar conflitos de nomes verificando os nomes das VMs existentes criadas a partir de pedidos anteriores. 
- PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: uma lista de nomes predefinidos para as VMs a criar. Especifique esta propriedade ou - namePattern. Se usar esta flag e especificar- COUNT,- COUNTtem de ser igual ao número de nomes fornecidos.
- COUNT: o número de VMs a criar. Tem de ser inferior ou igual ao número de VMs permitidas por - NAME_PATTERN. Em alternativa, se usar- perInstanceProperties, não tem de especificar- COUNT, mas, se o fizer, tem de ser igual ao número de nomes fornecidos.
- MIN_COUNT: o número mínimo de VMs a criar. A tabela seguinte descreve o comportamento do pedido consoante a forma como define esta flag: - Valor - Descrição - Não definido - O valor predefinido é - COUNT. Se o Compute Engine não conseguir criar o número de VMs especificado por- COUNT, o pedido falha e não são criadas VMs.- 1- O Compute Engine cria o maior número possível de VMs, até - COUNT.- Superior a - 1e inferior a- COUNT- O Compute Engine cria, pelo menos, - MIN_COUNTVMs até um máximo de- COUNTVMs. Se não for possível criar VMs- MIN_COUNT, o pedido falha e não são criadas VMs.
- LOCATION_POLICY: as zonas a incluir ou excluir numa região. Use uma lista de pares de chave-valor, com a zona como chave e a política como valor. Os valores válidos para a política são - ALLOW, que é o valor predefinido, e- DENY. Segue-se um valor de exemplo para este campo:- "locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
- TARGET_DISTRIBUTION_SHAPE: a distribuição de VMs nas zonas especificadas. Use o campo - locationPolicypara especificar as zonas. A tabela seguinte mostra os valores válidos para este campo:- Valor - Descrição - ANY_SINGLE_ZONE- Impõe o posicionamento de VMs numa única zona e dá prioridade à utilização de reservas não usadas. Use esta opção para evitar a saída da rede entre zonas ou para reduzir a latência da rede. Este é o valor predefinido. - BALANCED- Tenta distribuir as VMs uniformemente por todas as zonas da região. - ANY- Permite a distribuição de VMs em várias zonas numa região. Escolhe zonas com recursos disponíveis e que maximizam as reservas zonais não usadas. 
 Crie VMs em massa numa zonaPara criar VMs em massa numa zona, use a CLI gcloud ou a API Compute Engine. gcloudPara criar VMs em massa numa zona específica, use o seguinte gcloud compute instances bulk createcomando.gcloud compute instances bulk create \ ( --name-pattern="NAME_PATTERN" | --predefined-names=[PREDEFINED_NAMES] ) \ --zone=ZONE \ --count=COUNT \ [ --min-count=MIN_COUNT ]Substitua o seguinte: - NAME_PATTERN: o padrão de nome para as VMs. Use uma sequência de carateres de cardinal ( - #) para o Compute Engine substituir por uma sequência de números. Por exemplo, usar- vm-#para o padrão de nome gera VMs com nomes como- vm-1e- vm-2, até ao número de VMs especificado por- --count, que tem de ser inferior ou igual ao número de VMs que o padrão de nome permite.- Quando usa um padrão de nome, o Compute Engine tenta evitar conflitos de nomes verificando os nomes das VMs existentes criadas a partir de pedidos anteriores. 
- PREDEFINED_NAMES: uma lista de nomes predefinidos para as VMs a criar. Se usar esta flag e especificar - COUNT,- COUNTtem de ser igual ao número de nomes fornecidos.
- ZONE: a zona na qual criar as VMs. 
- COUNT: o número de VMs a criar. Tem de ser inferior ou igual ao número de VMs permitidas por - NAME_PATTERN. Em alternativa, se usar- --predefined-names, não tem de especificar- COUNT, mas, se o fizer, tem de ser igual ao número de nomes fornecidos.
- MIN_COUNT: o número mínimo de VMs a criar. A tabela seguinte descreve o comportamento do pedido consoante a forma como define esta flag: - Valor - Descrição - Não definido - O valor predefinido é - COUNT. Se o Compute Engine não conseguir criar o número de VMs especificado por- COUNT, o pedido falha e não são criadas VMs.- 1- O Compute Engine cria o maior número possível de VMs, até - COUNT.- Superior a - 1e inferior a- COUNT- O Compute Engine cria, pelo menos, - MIN_COUNTVMs até um máximo de- COUNTVMs. Se não for possível criar VMs- MIN_COUNT, o pedido falha e não são criadas VMs.
 RESTPara criar VMs em massa numa zona, use o seguinte instances.bulkInsertmétodo.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, ... }Substitua o seguinte: - PROJECT_ID: o ID do projeto. 
- ZONE: a zona na qual criar as VMs. 
- NAME_PATTERN: o padrão de nome para as VMs. Especifique esta propriedade ou - perInstanceProperties. Use uma sequência de carateres de hash (- #) para o Compute Engine substituir por uma sequência de números. Por exemplo, usar- vm-#para o padrão de nome gera VMs com nomes como- vm-1e- vm-2, até ao número de VMs especificado por- --count, que tem de ser inferior ou igual ao número de VMs que o padrão de nome permite.- Quando usa um padrão de nome, o Compute Engine tenta evitar conflitos de nomes verificando os nomes das VMs existentes criadas a partir de pedidos anteriores. 
- PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: uma lista de nomes predefinidos para as VMs a criar. Especifique esta propriedade ou - namePattern. Se usar esta flag e especificar- COUNT,- COUNTtem de ser igual ao número de nomes fornecidos.
- COUNT: o número de VMs a criar. Tem de ser inferior ou igual ao número de VMs permitidas por - NAME_PATTERN. Em alternativa, se usar- perInstanceProperties, não tem de especificar- COUNT, mas, se o fizer, tem de ser igual ao número de nomes fornecidos.
- MIN_COUNT: o número mínimo de VMs a criar. A tabela seguinte descreve o comportamento do pedido consoante a forma como define esta flag: - Valor - Descrição - Não definido - O valor predefinido é - COUNT. Se o Compute Engine não conseguir criar o número de VMs especificado por- COUNT, o pedido falha e não são criadas VMs.- 1- O Compute Engine cria o maior número possível de VMs, até - COUNT.- Superior a - 1e inferior a- COUNT- O Compute Engine cria, pelo menos, - MIN_COUNTVMs até um máximo de- COUNTVMs. Se não for possível criar VMs- MIN_COUNT, o pedido falha e não são criadas VMs.
 Crie VMs com nomes de anfitrião personalizados em massaPode criar VMs com nomes de anfitrião personalizados em massa numa região ou numa zona através da CLI gcloud ou da API Compute Engine. Tem de configurar manualmente o registo DNS para o nome de anfitrião personalizado. Para mais informações, consulte as limitações. Se não especificar um nome de anfitrião, o Compute Engine define o nome de anfitrião para as VMs como um dos seguintes: - VM_NAME.c.PROJECT_ID.internalquando ativa o DNS global
- VM_NAME.ZONE.c.PROJECT_ID.internalquando ativa o DNS zonal
 Para mais informações, consulte nomes DNS internos. gcloudPara criar VMs em massa com nomes de anfitrião personalizados numa região específica, use o seguinte gcloud beta compute instances bulk createcomando.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 ]Substitua o seguinte: - NAME_PATTERN: o padrão de nome para as VMs. Use uma sequência de carateres de cardinal ( - #) para o Compute Engine substituir por uma sequência de números. Por exemplo, usar- vm-#para o padrão de nome gera VMs com nomes como- vm-1e- vm-2, até ao número de VMs especificado por- --count, que tem de ser inferior ou igual ao número de VMs que o padrão de nome permite.- Quando usa um padrão de nome, o Compute Engine tenta evitar conflitos de nomes verificando os nomes das VMs existentes criadas a partir de pedidos anteriores. 
- PREDEFINED_NAMES: uma lista de nomes predefinidos para as VMs a criar. Se usar esta flag e especificar - COUNT,- COUNTtem de ser igual ao número de nomes fornecidos.
- [VM_NAME=HOSTNAME, ...]: uma lista de pares de chave-valor de nomes predefinidos para as VMs e nomes de anfitriões de domínio totalmente qualificados que quer atribuir às VMs. Os nomes de anfitrião personalizados têm de estar em conformidade com os requisitos da RFC 1035 para nomes de anfitrião válidos. 
- REGION: a zona na qual criar as VMs. 
- COUNT: o número de VMs a criar. Tem de ser inferior ou igual ao número de VMs permitidas por - NAME_PATTERN. Em alternativa, se usar- --predefined-names, não tem de especificar- COUNT, mas, se o fizer, tem de ser igual ao número de nomes fornecidos.
- MIN_COUNT: o número mínimo de VMs a criar. A tabela seguinte descreve o comportamento do pedido consoante a forma como define esta flag: - Valor - Descrição - Não definido - O valor predefinido é - COUNT. Se o Compute Engine não conseguir criar o número de VMs especificado por- COUNT, o pedido falha e não são criadas VMs.- 1- O Compute Engine cria o maior número possível de VMs, até - COUNT.- Superior a - 1e inferior a- COUNT- O Compute Engine cria, pelo menos, - MIN_COUNTVMs até um máximo de- COUNTVMs. Se não for possível criar VMs- MIN_COUNT, o pedido falha e não são criadas VMs.
- LOCATION_POLICY: as zonas a incluir ou excluir numa região. Use uma lista de pares de chave-valor, com a zona como chave e a política como valor. Os valores válidos para a política são - ALLOW, que é o valor predefinido, e- DENY. Segue-se um valor de exemplo para este campo:- "locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
- TARGET_DISTRIBUTION_SHAPE: a distribuição de VMs nas zonas especificadas. Use o campo - locationPolicypara especificar as zonas. A tabela seguinte mostra os valores válidos para este campo:- Valor - Descrição - ANY_SINGLE_ZONE- Impõe o posicionamento de VMs numa única zona e dá prioridade à utilização de reservas não usadas. Use esta opção para evitar a saída da rede entre zonas ou para reduzir a latência da rede. Este é o valor predefinido. - BALANCED- Tenta distribuir as VMs uniformemente por todas as zonas da região. - ANY- Permite a distribuição de VMs em várias zonas numa região. Escolhe zonas com recursos disponíveis e que maximizam as reservas zonais não usadas. 
 RESTPara criar VMs com nomes de anfitrião personalizados em massa numa região específica, use o seguinte instances.bulkInsertmétodo: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" ... }Substitua o seguinte: - PROJECT_ID: o ID do projeto. 
- REGION: a região na qual criar as VMs. 
- NAME_PATTERN: o padrão de nome para as VMs. Especifique esta propriedade ou - perInstanceProperties. Use uma sequência de carateres de hash (- #) para o Compute Engine substituir por uma sequência de números. Por exemplo, usar- vm-#para o padrão de nome gera VMs com nomes como- vm-1e- vm-2, até ao número de VMs especificado por- --count, que tem de ser inferior ou igual ao número de VMs que o padrão de nome permite.- Quando usa um padrão de nome, o Compute Engine tenta evitar conflitos de nomes verificando os nomes das VMs existentes criadas a partir de pedidos anteriores. 
- PREDEFINED_NAME_1, PREDEFINED_NAME_2, ...: uma lista de nomes predefinidos para as VMs a criar. Especifique esta propriedade ou - namePattern. Se usar esta flag e especificar- COUNT,- COUNTtem de ser igual ao número de nomes fornecidos.
- HOSTNAME_1, HOSTNAME_2, ...: nomes de anfitriões de domínio totalmente qualificados que quer atribuir às VMs. Os nomes de anfitrião personalizados têm de estar em conformidade com os requisitos da RFC 1035 para nomes de anfitrião válidos. - Por exemplo, para criar duas VMs - vm-1e- vm-2com nomes de anfitrião personalizados- my-host1234.example.come- test.example.com, respetivamente, especifique a propriedade- hostnameem- perInstancePropertiesda seguinte forma:- { ... "perInstanceProperties": { "vm-1": { "hostname": "my-host1234.example.com" }, "vm-2": { "hostname": "test.example.com" }, ...} },
- COUNT: o número de VMs a criar. Tem de ser inferior ou igual ao número de VMs permitidas por - NAME_PATTERN. Em alternativa, se usar- perInstanceProperties, não tem de especificar- COUNT, mas, se o fizer, tem de ser igual ao número de nomes fornecidos.
- MIN_COUNT: o número mínimo de VMs a criar. A tabela seguinte descreve o comportamento do pedido consoante a forma como define esta flag: - Valor - Descrição - Não definido - O valor predefinido é - COUNT. Se o Compute Engine não conseguir criar o número de VMs especificado por- COUNT, o pedido falha e não são criadas VMs.- 1- O Compute Engine cria o maior número possível de VMs, até - COUNT.- Superior a - 1e inferior a- COUNT- O Compute Engine cria, pelo menos, - MIN_COUNTVMs até um máximo de- COUNTVMs. Se não for possível criar VMs- MIN_COUNT, o pedido falha e não são criadas VMs.
- LOCATION_POLICY: as zonas a incluir ou excluir numa região. Use uma lista de pares de chave-valor, com a zona como chave e a política como valor. Os valores válidos para a política são - ALLOW, que é o valor predefinido, e- DENY. Segue-se um valor de exemplo para este campo:- "locations": { "zones/us-central1-a": { "preference": "ALLOW" }, "zones/us-central1-c": { "preference": "DENY" }, ... },
- TARGET_DISTRIBUTION_SHAPE: a distribuição de VMs nas zonas especificadas. Use o campo - locationPolicypara especificar as zonas. A tabela seguinte mostra os valores válidos para este campo:- Valor - Descrição - ANY_SINGLE_ZONE- Impõe o posicionamento de VMs numa única zona e dá prioridade à utilização de reservas não usadas. Use esta opção para evitar a saída da rede entre zonas ou para reduzir a latência da rede. Este é o valor predefinido. - BALANCED- Tenta distribuir as VMs uniformemente por todas as zonas da região. - ANY- Permite a distribuição de VMs em várias zonas numa região. Escolhe zonas com recursos disponíveis e que maximizam as reservas zonais não usadas. 
 Verifique o estado de um pedido de criação de VMs em massaQuando cria um pedido de mutação, o Compute Engine devolve um operationrecurso que pode sondar para obter o estado da operação. Para mais informações, consulte o artigo Processar respostas da API.Para obter o estado de um pedido de inserção em massa, envie um pedido HTTP GETpara o recursooperation:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations/OPERATION_ID Para obter o estado de um pedido de inserção em massa regional, envie o seguinte pedido: GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/operations/OPERATION_ID Substitua o seguinte: - PROJECT_ID: o ID do projeto no qual está a criar VMs
- REGION: a região na qual está a criar VMs
- ZONE: a zona na qual está a criar VMs
- OPERATION_ID: o ID da operação de inserção em massa
 O objeto instancesBulkInsertOperationMetadatana resposta contém detalhes acerca da operação por zona no campoperLocationStatus. Para cada zona incluída no pedido de criação em massa,perLocationStatuscontém os seguintes campos:- status: o estado é um dos seguintes:- CREATING: a criação da VM está em curso na zona.
- ROLLING_BACK: o pedido falhou na zona e está a ser revertido.
- DONE: a criação ou a reversão da VM foi concluída com êxito na zona.
 
- targetVmCount: o número de VMs que o Compute Engine tenta criar na zona. O Compute Engine determina esta contagem após as verificações iniciais e não se altera durante a operação. Quando verifica o estado da operação, este campo está sempre presente para cada zona.
- createdVmCount: o número de VMs já criadas na zona. Este valor não excede- targetVmCountpara uma determinada zona.- failedToCreateVmCount: o número de VMs cuja criação falhou na zona.
- deletedVmCount: o número de VMs que foram eliminadas na zona como parte da reversão de uma operação com falha.
 
 O campo progressna resposta representa a percentagem de conclusão da operação.O estado da operação de inserção em massa é RUNNINGaté que o Compute Engine crie com êxito, pelo menos, o número mínimo de VMs e não ocorra mais criação de VMs nem reversão do pedido.Quando a operação de inserção em massa estiver em curso, deve ver uma resposta semelhante à seguinte: { "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 } } } }Neste exemplo, foi criada uma instância com êxito e a operação está 2% concluída. A operação devolve o estado DONEquando o Compute Engine cria com êxito, pelo menos, o número mínimo de VMs especificado porminCountou quando o Compute Engine conclui a reversão do pedido. Após a criação bem-sucedida do número pedido de VMs, recebe uma resposta semelhante à seguinte:{ "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 mais informações, consulte a documentação do objeto instancesBulkInsertOperationMetadata.Verifique o estado de uma única VMPara verificar o estado de uma única VM criada a partir de um pedido de criação de VMs em massa, use a CLI gcloud ou a API Compute Engine. gcloud- A partir do - Operationdevolvido pelo pedido, obtenha o valor da propriedade- operationGroupId.
- Use a propriedade - operationGroupIdcomo filtro com o comando- gcloud compute operations listpara pesquisar em todas as operações e todas as zonas no projeto VMs associadas ao pedido regional ou zonal:- gcloud compute operations list \ --filter=(operationGroupId=OPERATION_GROUP_ID) 
- Obtenha as restantes propriedades da VM através de uma das seguintes opções: - Na lista de operações, o elemento - targetLinkrepresenta o caminho da VM. Use o- gcloud compute instances describecomando com este caminho como o nome da VM para obter as propriedades da VM:- gcloud compute instances describe VM_NAME 
- Use o - gcloud compute instances listcomando com um filtro que inclua os nomes das MV da lista de operações:- gcloud compute instances list VM_NAME \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
- 
gcloud compute instances list \ --filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
 
 REST- A partir do - Operationdevolvido pelo pedido, obtenha o valor da propriedade- operationGroupId.
- Use a propriedade - operationGroupIdpara obter a lista de operações de VM associadas ao pedido regional ou zonal:- Se enviou um pedido regional, para pesquisar em todas as operações e todas as zonas no projeto, use o método - globalOperations.aggregatedListe inclua a propriedade- operationGroupIdcomo filtro:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/operations?filter=(operationGroupId=OPERATION_GROUP_ID) 
- Se enviou um pedido zonal, para listar as operações nessa zona, use o método - zoneOperations.gete inclua a propriedade- operationGroupIdno corpo do pedido:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/bulkInsert { ... "operationGroupId":"OPERATION_GROUP_ID" ... }
 
- Obtenha as restantes propriedades da VM através de uma das seguintes opções: - Na lista de operações, o elemento - targetLinkrepresenta o caminho da VM. Use o- instances.getmétodo com este caminho como o nome da VM para obter todas as propriedades da VM:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances/VM_NAME 
- Use o - instances.getmétodo com um filtro que inclua os nomes das VMs da lista de operações:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/zones/ZONE/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
- Use o - instances.aggregatedListmétodo para obter as propriedades das VMs de todas as zonas e regiões, e filtre por uma etiqueta exclusiva das instâncias ou pelos respetivos nomes:- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_NAME/aggregated/instances?filter=(name=VM_NAME_1) OR (name=VM_NAME_2) 
 
 Exemplos de pseudocódigoOs exemplos de pseudocódigo seguintes mostram como personalizar os pedidos de criação de VMs em massa. Crie VMs em massa numa região a partir de um conjunto de regiõesO pseudocódigo seguinte descreve como criar 1000 VMs numa região a partir de um conjunto de regiões. Quando tenta criar VMs em massa numa região a partir de um conjunto de regiões, o pedido verifica primeiro a capacidade. Se não houver capacidade suficiente, o pedido falha imediatamente e tenta novamente com a região seguinte no conjunto. - Especifique o número de VMs a criar numa zona. - nTarget = 1000
- Designe as regiões nas quais vai tentar criar as VMs. - acceptableRegions = ["us-central1", "us-east1", "us-west1"]
- Itere as regiões e tente criar as VMs em cada região até ter êxito. - for region in acceptableRegions: call bulk API: region=region, location-policy=location-policy, count=nTarget if request succeeds and the operation succeeds: break
 Crie VMs em massa numa zonanum tipo de máquina O pseudocódigo seguinte descreve como criar várias VMs numa zona num tipo de máquina especificado. Quando tenta criar VMs em massa no mesmo tipo de máquina, o pedido verifica primeiro a disponibilidade desses tipos de máquinas. Se não houver máquinas do tipo de máquina suficientes disponíveis, o pedido falha imediatamente e tenta novamente com o tipo de máquina seguinte. - Especifique o número de VMs a criar e a região na qual as criar. - nTarget = 1000 region = "us-central1"
- Especifique as famílias de máquinas nas quais tentar criar as VMs. - acceptableMachineFamilies = ["n2","c2","e2","n1"]
- Itere o conjunto de tipos de máquinas e tente criar as VMs no tipo de máquina até ter êxito. - for family in acceptableMachineFamilies: call bulk APIs: region=region, count=nTarget, machineFamily=family if request succeeds and the operation succeeds: break
 Crie mais de 5000 VMs numa zonaQuando cria VMs em massa, só pode criar 5000 VMs com cada pedido. O pseudocódigo seguinte descreve como criar mais de 5000 VMs numa zona através do envio de vários pedidos. - Especifique o número de VMs a criar, um contador para acompanhar o número total de VMs criadas, a região na qual criar as VMs e uma variável para armazenar a zona na qual o Compute Engine cria as VMs. - nTarget = 10000 nCreated = 0 region = "us-central1" targetZone = ""
- Emita um pedido inicial para criar 5000 VMs, guarde a zona devolvida pelo pedido e atualize o contador do número de VMs criadas. - call bulk API: region=region, count=5000 targetZone = zone chosen by bulk API nCreated += # of VMs created
- Continue a emitir pedidos para criar até 5000 VMs de cada vez na zona até o Compute Engine criar o número especificado de VMs. - while(nTarget - nCreated > 0): call bulk API: zone=targetZone, count=5000 nCreated += # of VMs created
 Crie VMs em massa e veja o respetivo estadoO procedimento seguinte mostra como criar um grupo de VMs com nomes predefinidos e, em seguida, ver o respetivo estado: - Especifique o número de VMs a criar, a zona na qual as criar e uma estrutura de dados para armazenar os nomes. - nTarget = 1000 targetZone = "us-central-1a" names = []
- Gere os nomes padronizados para as VMs e adicione os nomes à estrutura de dados. - for n in range(0, 1000): names.push("instance-%d".format(n))
- Crie as VMs e use - perInstancePropertiespara especificar os nomes.- call bulk API(zone=targetZone, count=nTarget, names=perInstanceProperties)
- Obtenha os detalhes das VMs através do - instances.listmétodo com um filtro para os nomes das VMs sobre as quais quer receber detalhes.- instances.list(filter=(name = "instance-1") OR (name = "instance-2") ...)
 O que se segue?Depois de criar VMs em massa, faça uma ou ambas as seguintes ações para simplificar a gestão dessas VMs: - Adicione as VMs a um grupo de instâncias não gerido. Adicionar VMs a um grupo de instâncias não gerido permite-lhe usar o Cloud Monitoring. Os grupos de instâncias não geridos não oferecem equilíbrio de carga nem gestão do ciclo de vida da VM. 
- Use etiquetas. As etiquetas permitem organizar recursos através de pares de chave-valor. 
 Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas. Última atualização 2025-10-19 UTC. -