Cada entrada de metadados é armazenada no servidor de metadados como pares de chave-valor. As chaves de metadados são sensíveis a maiúsculas e minúsculas. As chaves podem ser chaves de metadados predefinidas ou personalizadas.
Os metadados personalizados permitem-lhe criar e usar os seus próprios pares de chave-valor de metadados numa VM individual ou num projeto. Pode adicionar novas chaves de metadados personalizados, atualizar os valores das chaves existentes e remover quaisquer entradas de metadados personalizados quando não precisar delas. A definição de metadados personalizados é útil para transmitir valores arbitrários às VMs num projeto. Também é útil para criar scripts de arranque e encerramento.
Este documento fornece informações sobre como fazer o seguinte:
Antes de começar
- Reveja os princípios básicos de como os metadados de VMs do Compute Engine são definidos, categorizados e organizados. Para mais informações, consulte o artigo Acerca dos metadados de VMs.
- 
  
  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: ConsoleWhen you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. 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 obter as autorizações de que precisa para definir ou remover metadados personalizados em VMs, peça ao seu administrador para lhe conceder as seguintes funções de IAM: - 
  
  
    
      Administrador de instâncias do Compute (v1)  (roles/compute.instanceAdmin.v1) na VM ou no projeto
- 
            Se as suas VMs usarem contas de serviço:
              
  
  
    
      Utilizador da conta de serviço  (roles/iam.serviceAccountUser) na conta de serviço ou 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. Estas funções predefinidas contêm as autorizações necessárias para definir ou remover metadados personalizados em VMs. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias: Autorizações necessáriasSão necessárias as seguintes autorizações para definir ou remover metadados personalizados em VMs: - 
                Se as suas VMs usarem contas de serviço:
                  iam.serviceAccounts.actAs
- 
                Para adicionar, atualizar ou remover metadados personalizados do projeto:
                - 
                      compute.projects.get
- 
                      compute.projects.setCommonInstanceMetadata
 
- 
                      
- 
                Para adicionar, atualizar ou remover metadados zonais personalizados:
                - 
                      compute.instanceSettings.get
- 
                      compute.instanceSettings.update
 
- 
                      
- 
                Para adicionar, atualizar ou remover metadados de instâncias personalizadas:
                - 
                      compute.instances.get
- 
                      compute.instances.setMetadata
 
- 
                      
 Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas. LimitaçõesAs entradas de metadados de VMs têm as seguintes limitações. Limitações de tamanhoO Compute Engine aplica um limite total combinado de 512 KB para todas as entradas de metadados. Os limites de tamanho máximos também são aplicados a cada keyevalueda seguinte forma:- Cada metadado keytem um limite máximo de 128 bytes.
- Cada metadado valuetem um limite máximo de 256 KB.
 Por exemplo, as chaves SSH são armazenadas como metadados personalizados na chave ssh-keyskey. Se o conteúdo dos metadados ouvaluedesta chave exceder o limite de 256 KB, não pode adicionar mais chaves SSH. Se atingir este limite, considere remover chaves não usadas para libertar espaço de metadados para novas chaves.Além disso, se fornecer diretamente o conteúdo do script de arranque ou encerramento, o conteúdo destes scripts também pode ser armazenado como metadados personalizados e contar para estas limitações de tamanho. Para evitar esta situação, armazene o script de arranque ou encerramento como um ficheiro alojado numa localização externa, como o Cloud Storage, e faculte o URL do script de arranque quando criar uma VM. Desta forma, estes ficheiros são transferidos para a VM, em vez de serem armazenados no servidor de metadados. Limitações de maiúsculas e minúsculas de strings- Cada metadado - keyé sensível a maiúsculas e minúsculas.
- Cada metadado - valueé sensível a maiúsculas e minúsculas, exceto para valores booleanos.
 Limitações de metadados zonais- Só pode definir e remover metadados zonais através da CLI gcloud ou da API REST. 
- Não pode criar duas chaves de metadados separadas com a mesma string, mesmo que as chaves estejam escritas em letras diferentes. Por exemplo, se já existir uma chave de metadados personalizada denominada - zonal-metadata-keypara metadados zonais numa zona específica, não pode criar novas chaves de metadados zonais que sejam variações da mesma string, como- Zonal-Metadata-Keyou- ZONAL-METADATA-KEY.
- Não pode definir valores de metadados zonais para chaves SSH, que são armazenadas como metadados personalizados na chave - ssh-keys.
 Valores booleanosPara campos que aceitam valores booleanos, TRUEouFALSE, também pode usar os seguintes valores:Estado Valores alternativos TRUEY,Yes,1FALSEN,No,0Os valores booleanos não são sensíveis a maiúsculas e minúsculas. Por exemplo, pode usar False,falseouFALSEpara desativar uma funcionalidade.Defina metadados personalizados em VMsEsta secção explica como adicionar novos metadados personalizados ou atualizar os valores dos metadados personalizados existentes para as suas VMs do Compute Engine de uma das seguintes formas: - Defina metadados personalizados do projeto para adicionar ou atualizar metadados personalizados do projeto para todas as VMs no seu projeto.
- Defina metadados zonais personalizados para adicionar ou atualizar metadados personalizados com um âmbito zonal para VMs no projeto.
- Defina metadados de instância personalizados para adicionar ou atualizar metadados de instância personalizados para uma VM específica.
 Defina metadados personalizados do projetoPode adicionar ou atualizar os metadados personalizados para todas as instâncias num projeto através da consola, da Google Cloud CLI ou da API REST. Google Cloud Use estas instruções para aplicar definições de metadados a todas as VMs no projeto. Por exemplo, se definir um par de metadados do projeto de baz=bat, esse par de metadados é aplicado automaticamente a todas as VMs no projeto.Consola- Na Google Cloud consola, aceda à página Metadados. 
- Clique em Editar na parte superior da página. 
- Para adicionar novas entradas de metadados de projetos personalizados, faça o seguinte: - Navegue para a parte inferior da página e clique em Adicionar item.
- No campo Chave, introduza o nome da chave de metadados personalizada.
- No campo Valor, introduza o valor dos metadados do projeto personalizados.
- Opcional. Para adicionar mais entradas de metadados de projetos personalizados, repita os passos anteriores para cada entrada de metadados que quer adicionar.
- Para terminar de adicionar as entradas de metadados do projeto personalizado, clique em Guardar.
 
- Para editar entradas de metadados de projetos personalizados existentes, faça o seguinte: - Navegue para a entrada de metadados que quer editar.
- Para atualizar o nome de uma chave de metadados personalizada específica, no campo Chave dessa entrada, introduza o novo nome.
- Para atualizar o valor de uma entrada de metadados de projeto personalizada, no campo Valor dessa entrada, introduza o novo valor.
- Opcional. Para remover uma entrada de metadados de projeto personalizada específica, clique no ícone de eliminação junto à entrada de metadados.
- Para editar várias entradas de metadados de projetos personalizados, repita os passos anteriores para cada entrada de metadados que quer editar.
- Para concluir a edição das entradas de metadados do projeto personalizado, clique em Guardar.
 
 gcloudUse o comando project-info add-metadata.gcloud compute project-info add-metadata \ --metadata=KEY=VALUESubstitua o seguinte: - KEY: o nome da chave de metadados
- VALUE: o valor armazenado para esta chave
 Exemplo Por exemplo, para definir duas novas entradas foo=barebaz=batnum projeto, execute o seguinte comando:gcloud compute project-info add-metadata \ --metadata=foo=bar,baz=batOpcionalmente, pode especificar um ou mais ficheiros a partir dos quais ler os metadados através da flag --metadata-from-file.REST- Opcional. Para realizar o bloqueio otimista, pode fornecer uma impressão digital. - Uma impressão digital é uma string aleatória de carateres gerada pelo Compute Engine. A impressão digital muda após cada pedido e, se fornecer uma impressão digital que não corresponda, o seu pedido é rejeitado. - Se não fornecer uma impressão digital, não é feita nenhuma verificação de consistência e o pedido - projects().setCommonInstanceMetadataé bem-sucedido. Este comportamento é diferente dos métodos- instances().setMetadatae- instanceSettings().patch, em que é sempre necessário uma impressão digital.- Para obter a impressão digital atual de um projeto, chame o método - project().get.- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID - O resultado é semelhante ao seguinte: - { "name": "myproject", "commonInstanceMetadata": { "kind": "compute#metadata", "fingerprint": "FikclA7UBC0=", ... } }
- Faça um pedido ao método - projects().setCommonInstanceMetadatae defina os seus pares de chave-valor de metadados personalizados:- POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "fingerprint": "FikclA7UBC0=", "items": [ { "key": "foo", "value": "bar" } ] }
 Substitua PROJECT_IDpelo ID do seu projeto.Defina metadados zonais personalizadosQuando define metadados zonais personalizados, adiciona ou atualiza as entradas de metadados zonais para as suas VMs numa zona específica de um projeto. Pode fazer o seguinte ao definir metadados zonais personalizados: - Crie novas chaves de metadados personalizados para uma zona específica num projeto e defina metadados para todas as VMs nessa zona nesse projeto.
- Atualize os valores das entradas de metadados zonais personalizados existentes para todas as VMs numa zona específica de um projeto.
- Para chaves de metadados personalizados existentes que tenham valores de metadados do projeto, substitua esses valores de metadados do projeto em zonas específicas e, em alternativa, defina metadados zonais. Depois de definir metadados zonais para essas chaves numa zona específica, todas as VMs nessa zona nesse projeto usam os valores de metadados zonais para essas chaves.
 Aspetos a ter em conta antes de definir metadados zonais personalizadosAs entradas de metadados zonais e de projetos são armazenadas no mesmo diretório project/. Se definir valores diferentes para as mesmas chaves de metadados personalizados para VMs ao nível do projeto e ao nível da zona, os valores de metadados zonais dessas chaves têm precedência sobre os valores de metadados do projeto nas respetivas zonas.- Se adicionar um valor de metadados zonais para uma chave de metadados que já tenha um valor de metadados do projeto, o Compute Engine substitui o valor de metadados do projeto para as VMs nesta zona especificada e atualiza o diretório /projectcom o valor zonal.
- Se adicionar um novo valor de metadados do projeto para uma chave de metadados que já tenha um valor de metadados zonais, nada muda. O Compute Engine retém o valor dos metadados zonais no diretório /projectna zona específica.
- Se não especificar um valor de metadados zonais para uma chave de metadados personalizada numa zona específica, mas a chave tiver um valor de metadados do projeto, as suas VMs continuam a ter os valores de metadados do projeto nessas zonas.
 ProcedimentoPode adicionar ou atualizar os metadados zonais personalizados numa zona específica de um projeto através da Google Cloud CLI ou da API REST. gcloud- Para adicionar ou atualizar metadados zonais personalizados, use o comando - gcloud compute project-zonal-metadata add.- gcloud compute project-zonal-metadata add \ --zone=ZONE \ --project=PROJECT_ID \ --metadata=KEY1=VALUE1,KEY2=VALUE2,... - Substitua o seguinte: - PROJECT_ID: o ID do seu projeto
- ZONE: a zona onde quer adicionar ou atualizar metadados zonais.
- KEY1,- KEY2...: as chaves de metadados personalizadas para as quais quer adicionar ou atualizar valores de metadados zonais.
- VALUE1,- VALUE2...: os valores de metadados zonais que quer definir para as chaves de metadados personalizadas existentes e novas. Consoante a chave e o valor dos metadados personalizados, ocorre uma das seguintes situações:
- Se a chave de metadados personalizada correspondente for uma chave existente que tenha metadados do projeto, na zona especificada, o Compute Engine substitui o valor dos metadados do projeto da chave pelo valor dos metadados zonais especificado. Todas as VMs na zona especificada no projeto herdam estes metadados zonais recém-especificados para essa chave, e as VMs noutras zonas continuam a reter os respetivos valores de metadados zonais ou de projeto prevalecentes. Se fizer atualizações futuras ao valor de metadados do projeto para esta chave, as VMs nesta zona no projeto permanecem inalteradas e continuam a usar o valor de metadados zonais para esta chave. 
- Se a chave de metadados personalizada correspondente for uma nova chave de metadados que não seja usada para metadados zonais ou de projeto existentes, o Compute Engine cria a chave de metadados personalizada e define este valor como os metadados zonais na zona especificada. 
- Se a chave de metadados personalizada correspondente for uma chave de metadados existente com um valor de metadados zonal na zona especificada: - Se o valor de metadados especificado for diferente do valor existente, o Compute Engine atualiza a entrada de metadados zonais com o novo valor.
- Se o valor dos metadados especificado for igual ao valor existente, a entrada de metadados zonais permanece inalterada.
 
 
 Exemplo: adicione uma nova entrada de metadados zonais personalizadosPor exemplo, considere um projeto denominado my-projectcom os seguintes metadados personalizados:- Metadados do projeto: "key-1":"value-a","key-2":"value-b"e"key-3":"value-c"
- Metadados zonais na zona us-central1-a:"key-1":"value-1"e"key-2":"value-2"
 Para adicionar "key-4":"value-4"como um novo par de metadados zonais personalizados na zonaus-central1-a, execute o seguinte comandogcloud compute project-zonal-metadata add \ --metadata=key-4=value-4 \ --project=my-project \ --zone=us-central1-aExemplo: atualize os valores de uma entrada de metadados zonais personalizada existenteConsidere o mesmo projeto de exemplo my-project, que agora tem os seguintes metadados personalizados:- Metadados do projeto: "key-1":"value-a","key-2":"value-b"e"key-3":"value-c"
- Metadados zonais na zona us-central1-a:"key-1":"value-1","key-2":"value-2"e"key-4":"value-4"
 Para atualizar os valores dos metadados zonais de key-1ekey-4na zonaus-cerntral1-acom novos valores, execute o seguinte comando.gcloud compute project-zonal-metadata add \ --metadata=key-1=new-value-1,key-4=new-value-4 \ --project=my-project \ --zone=us-central1-aExemplo: substitua o valor de metadados do projeto para uma chave e use um valor de metadados zonalConsidere o mesmo projeto de exemplo my-project, que agora tem os seguintes metadados personalizados:- Metadados do projeto: "key-1":"value-a","key-2":"value-b"e"key-3":"value-c"
- Metadados zonais na zona us-central1-a:"key-1":"new-value-1","key-2":"value-2"e"key-4":"new-value-4"
 Neste projeto de exemplo, considere key-3, que tem um valor de metadados do projeto devalue-c. Suponhamos que quer definir um valor de metadados zonaisvalue-3para esta chave para todas as VMs na zonaus-central1-a. Quando realiza a operação, para todas as VMs na zonaus-central1-a, o Compute Engine substitui os valores de metadados do projeto e usa os valores de metadados zonais. As VMs em todas as outras zonas do projeto mantêm os respetivos valores de metadados zonais ou do projeto prevalecentes parakey-3.Para substituir o valor de metadados do projeto para key-3e definir um valor de metadados zonal, execute o seguinte comando:gcloud compute project-zonal-metadata add \ --metadata=key-3=value-3 \ --project=my-project \ --zone=us-central1-aREST- Obtenha a impressão digital atual e veja todos os pares de chave-valor existentes para o projeto nessa zona. - Para realizar o bloqueio otimista, tem de fornecer uma impressão digital. Uma impressão digital é uma string aleatória de carateres gerada pelo Compute Engine. A impressão digital muda sempre que faz um pedido para adicionar, atualizar ou remover metadados zonais. Se fornecer uma impressão digital que não corresponda, o Compute Engine rejeita o seu pedido. - Se não fornecer uma impressão digital, é feita uma verificação de consistência e o seu pedido de atualização não é bem-sucedido. Isto funciona de modo que só é possível fazer um pedido de cada vez, o que evita colisões. Este comportamento corresponde ao - instances().setMetadata, em que é sempre necessária uma impressão digital.- Para obter a impressão digital atual dos metadados zonais, faça um - GETpedido ao método- instanceSettings().get.- GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings - Substitua o seguinte: - PROJECT_ID: o ID do seu projeto
- ZONE: a zona onde quer definir os metadados zonais.
 - Segue-se um exemplo de resultado para este pedido: - { "fingerprint": "VlRIl8dx9vk=", "metadata": { ... } }
- Para adicionar ou atualizar os metadados zonais, faça um pedido - PATCHao método- instanceSettings().patch. Tem de fornecer o seguinte com o seu pedido:- Uma máscara de atualização. Use o parâmetro de consulta - update_mask. A máscara de atualização tem de conter as chaves de metadados para o seguinte:- Os novos metadados zonais personalizados que quer adicionar
- Os metadados zonais personalizados existentes para os quais quer atualizar os valores
 - Tem de adicionar a string - metadata.items.como prefixo para cada chave, por exemplo,- metadata.items.key1,metadata.items.key3.
- No corpo do pedido, indique o seguinte: - As chaves e os valores de metadados para os novos metadados zonais personalizados que quer adicionar
- As chaves e os valores de metadados para os metadados zonais personalizados existentes que quer atualizar
- O valor da impressão digital atual
 
 - PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings?update_mask=PREFIXED_METADATA_KEYS { "fingerprint": "FINGER_PRINT", "metadata": { "items": { "KEY1": "VALUE1", "KEY2": "VALUE2", ... } } }- Substitua o seguinte: - PROJECT_ID: o ID do projeto.
- ZONE: a zona onde quer definir os metadados zonais.
- PREFIXED_METADATA_KEYS: a lista de chaves de metadados para o seguinte, em que cada chave tem o prefixo da string- metadata.items.:- Os novos metadados zonais personalizados que quer adicionar
- Os metadados zonais personalizados existentes para os quais quer atualizar os valores
 - Por exemplo, suponha que as chaves de metadados zonais atuais numa zona específica são - key-1e- key-2. Se quiser adicionar uma nova chave,- key-3, para metadados zonais nessa zona e também atualizar os metadados zonais de uma das chaves existentes,- key-1, a máscara de atualização tem de ter a seguinte string:- metadata.items.key1,metadata.items.key3
- FINGER_PRINT: o valor da impressão digital atual.
- KEY1,- KEY2...: as chaves de metadados zonais personalizadas para as quais quer adicionar ou atualizar valores. Especifique todas as chaves de metadados zonais personalizadas que especificou na máscara de atualização.
- VALUE1,- VALUE2...: os valores de metadados zonais que quer definir para as chaves de metadados personalizadas existentes e novas. Consoante a chave e o valor dos metadados personalizados, ocorre uma das seguintes situações:- Se a chave de metadados personalizada correspondente for uma chave existente que tenha metadados do projeto, na zona especificada, o Compute Engine substitui o valor dos metadados do projeto da chave pelo valor dos metadados zonais especificado. Todas as VMs na zona especificada no projeto herdam estes metadados zonais recém-especificados para essa chave, e as VMs noutras zonas continuam a reter os respetivos valores de metadados zonais ou de projeto prevalecentes. Se fizer atualizações futuras ao valor de metadados do projeto para esta chave, as VMs nesta zona no projeto permanecem inalteradas e continuam a usar o valor de metadados zonais para esta chave.
- Se a chave de metadados personalizada correspondente for uma nova chave de metadados que não seja usada para metadados zonais ou de projetos existentes, o Compute Engine cria a chave de metadados personalizada e define este valor como os metadados zonais na zona especificada.
- Se a chave de metadados personalizada correspondente for uma chave de metadados existente com um valor de metadados zonal na zona especificada: 
- Se o valor dos metadados especificado for diferente do valor existente, o Compute Engine atualiza a entrada dos metadados zonais com o novo valor. 
- Se o valor de metadados especificado for igual ao valor existente, a entrada de metadados zonais permanece inalterada. 
 
 
 Exemplo: adicione uma nova entrada de metadados zonais personalizadosPor exemplo, considere um projeto denominado my-projectcom os seguintes metadados personalizados:- Metadados do projeto: "key-1":"value-a","key-2":"value-b"e"key-3":"value-c"
- Metadados zonais na zona us-central1-a:"key-1":"value-1"e"key-2":"value-2"
 Para adicionar "key-4":"value-4"como um novo par de metadados zonais personalizados na zonaus-central1-a, faça o seguinte pedidoPATCH:PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-4 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-4": "value-4" } } }Exemplo: atualize os valores de uma entrada de metadados zonais personalizada existenteConsidere o mesmo projeto de exemplo my-project, que agora tem os seguintes metadados personalizados:- Metadados do projeto: "key-1":"value-a","key-2":"value-b"e"key-3":"value-c"
- Metadados zonais na zona us-central1-a:"key-1":"value-1","key-2":"value-2"e"key-4":"value-4"
 Para atualizar os valores dos metadados zonais de key-1ekey-4na zonaus-cerntral1-acom novos valores, faça o seguinte pedidoPATCH:PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-1,metadata.items.key-4 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-1": "new-value-1", "key-4": "new-value-4" } } }Exemplo: substitua o valor de metadados do projeto para uma chave e defina um valor de metadados zonalConsidere o mesmo projeto de exemplo my-project, que agora tem os seguintes metadados personalizados:- Metadados do projeto: "key-1":"value-a","key-2":"value-b"e"key-3":"value-c"
- Metadados zonais na zona us-central1-a:"key-1":"new-value-1","key-2":"value-2"e"key-4":"new-value-4"
 Neste projeto de exemplo, considere key-3, que tem um valor de metadados do projeto devalue-c. Suponhamos que quer definir um valor de metadados zonaisvalue-3para esta chave para todas as VMs na zonaus-central1-a. Quando realiza a operação, para todas as VMs na zonaus-central1-a, o Compute Engine substitui os valores de metadados do projeto e usa os valores de metadados zonais. As VMs em todas as outras zonas do projeto mantêm os respetivos valores de metadados zonais ou do projeto prevalecentes parakey-3.Para substituir o valor de metadados do projeto para key-3e usar o valor de metadados zonalvalue-3, faça o seguinte pedidoPATCH:PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-3 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-3": "value-3" } } }Defina metadados de instância personalizadosPode adicionar ou atualizar os metadados personalizados de uma única instância de VM através da Google Cloud consola, da Google Cloud CLI ou da REST. Pode definir metadados de instância personalizados de uma das seguintes formas: - Para novas VMs, pode adicionar metadados personalizados quando a VM estiver a ser criada.
- Para VMs existentes, pode adicionar ou atualizar metadados personalizados quando a VM estiver em execução.
 Adicione metadados de instâncias personalizados durante a criação de VMsUse estas instruções para adicionar metadados a uma instância de VM específica no momento da respetiva criação. Consola- Na Google Cloud consola, aceda à página Criar uma instância. 
- Especifique os detalhes da VM. 
- Expanda a secção Opções avançadas e faça o seguinte: - Expanda a secção Gestão.
- Para adicionar vários pares de chave-valor aos metadados personalizados, na secção Metadados, clique em Adicionar item.
 
- Para criar a VM, clique em Criar. 
 gcloudPara definir metadados personalizados, use o comando gcloud compute instances createcom a flag--metadata.gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-project=IMAGE_PROJECT \ IMAGE_FLAG \ --metadata=KEY=VALUE Substitua o seguinte: - VM_NAME: o nome da sua VM
- ZONE: a zona na qual criar a VM
- IMAGE_PROJECT: o projeto que contém a imagem a usar para a VM
- IMAGE_FLAG: especifique uma das seguintes opções:- Use a flag - --image IMAGE_NAMEpara especificar uma versão específica de uma imagem pública.- Por exemplo, - --image debian-12-bookworm-v20241112.
- Use a flag - --image-family IMAGE_FAMILY_NAMEpara especificar uma família de imagens.- Isto cria a VM a partir da imagem do SO não descontinuada mais recente na família de imagens. Por exemplo, se especificar - --image-family debian-12, o Compute Engine usa a versão mais recente da imagem do SO na família de imagens do Debian 12.
 
- KEY: o nome da chave de metadados
- VALUE: o valor armazenado para esta chave
 Exemplo Por exemplo, para definir uma nova chave envcom um valortestnuma VM denominadaexample-instance, execute o seguinte comando:gcloud compute instances create example-instance \ --zone=us-central1-a --image-project=debian-cloud \ --image-family=debian-12 \ --metadata=env=test RESTUse o método instances.inserte forneça os metadados personalizados como parte da propriedademetadatano seu pedido:POST https://compute.googleapis.com/compute/v1/projects/ PROJECT_ID/zones/ZONE/instances { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "...": [ { } ], "metadata": { "items": [ { "key": "KEY", "value": "VALUE" } ] }, .. }Substitua o seguinte: - PROJECT_ID: o ID do seu projeto
- ZONE: zona na qual criar a VM
- MACHINE_TYPE: tipo de máquina, predefinido ou personalizado, para a nova VM
- VM_NAME: name da nova VM
- KEY: o nome da chave de metadados
- VALUE: o valor armazenado para esta chave
 Adicione ou atualize metadados de instâncias personalizados numa VM existenteUse estas instruções para atualizar os metadados numa instância de VM específica que já existe. Consola- Na Google Cloud consola, aceda à página Instâncias de VM.
- Clique na instância para a qual quer atualizar os metadados.
- Clique no botão Editar na parte superior da página.
- Em Metadados personalizados, clique em Adicionar item ou edite as entradas de metadados existentes.
- Guarde as alterações.
 gcloudA atualização dos metadados da VM com a CLI gcloud é uma ação aditiva. Especifique apenas as chaves de metadados que quer adicionar ou alterar. Se já existir uma chave que forneceu, o valor dessa chave é atualizado com o novo valor. Use o comando instances add-metadata:gcloud compute instances add-metadata VM_NAME \ --metadata=KEY=VALUE,KEY=VALUESubstitua o seguinte: - VM_NAME: o nome da sua VM
- KEY: o nome da chave de metadados
- VALUE: o valor armazenado para esta chave
 Exemplos Se quiser adicionar a entrada foo=bar, use:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=barSe quiser alterar a entrada foo=barparafoo=bat, use:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=batREST- Obtenha a impressão digital atual e veja todos os pares de chave-valor existentes para a VM. Para tal, chame o método - instances().get.- Uma impressão digital é uma string aleatória de carateres gerada pelo Compute Engine e é usada para realizar o bloqueio otimista. Para atualizar a VM, tem de fornecer o valor da impressão digital correspondente. A impressão digital muda após cada pedido e, se fornecer uma impressão digital que não corresponda, o seu pedido é rejeitado. Isto funciona de modo que só é possível fazer uma atualização de cada vez, o que evita colisões. - GET https://compute.googleapis.com/compute/v1/projects/ - PROJECT_ID/zones/- ZONE/instances/VM_NAME- Substitua o seguinte: - PROJECT_ID: o ID do seu projeto
- ZONE: a zona onde a sua VM está localizada
- VM_NAME: nome da sua VM
 - O resultado é semelhante ao seguinte: - { ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "foo", "value": "bar" } ] }, ... }
- Faça um pedido ao método - instances().setMetadata. Forneça uma lista dos novos valores de metadados e o valor- fingerprintatual.- Se a VM tiver pares de chaves-valores existentes que quer manter, tem de os incluir neste pedido com os novos pares de chaves-valores. - Exemplo - POST https://compute.googleapis.com/compute/v1/projects/ - PROJECT_ID/zones/- ZONE/instances/VM_NAME/setMetadata { "fingerprint": "zhma6O1w2l8=", "items": [ { "key": "foo", "value": "bar" }, { "key": "baz", "value": "bat" } ] }- Substitua o seguinte: - PROJECT_ID: o ID do seu projeto
- ZONE: a zona onde a sua VM está localizada
- VM_NAME: nome da sua VM
 
 Remova metadados personalizados de VMsEsta secção fornece informações sobre como remover entradas de metadados personalizados para as suas VMs do Compute Engine de uma das seguintes formas: - Remova metadados personalizados do projeto, para remover metadados personalizados definidos para todas as VMs num projeto.
- Remova metadados zonais personalizados para remover metadados personalizados que foram definidos para todas as VMs numa zona específica num projeto.
- Remova os metadados personalizados da instância para remover os metadados da VM que foram definidos para uma VM específica.
 Remova metadados de projetos personalizadosPode remover metadados de projetos personalizados através da Google Cloud consola ou da CLI Google Cloud. Consola- Na Google Cloud consola, aceda à página Metadados. 
- Clique em Editar na parte superior da página. 
- Navegue para a entrada de metadados que quer remover e clique no botão de eliminação junto a essa entrada. - Repita este passo para cada entrada de metadados que quer remover. 
- Para concluir a remoção das entradas de metadados do projeto personalizados, clique em Guardar. 
 gcloudPara remover metadados do projeto personalizados, use o comando gcloud compute project-info remove-metadata.- Se quiser remover as entradas de metadados personalizados para chaves específicas, especifique essas chaves com a flag --keyse exclua os valores dessas chaves.
 gcloud compute project-info remove-metadata \ --keys=KEY1,KEY2,...- Se quiser remover todos os metadados personalizados da VM, especifique a flag --all.
 gcloud compute project-info remove-metadata \ --allSubstitua o seguinte: - KEY1,- KEY2...: as chaves de metadados de instâncias personalizadas que quer remover.
 Remova metadados zonais personalizadosPode remover metadados zonais personalizados através da CLI Google Cloud ou do REST. gcloudPara remover metadados zonais personalizados, use o comando gcloud compute project-zonal-metadata removee especifique todas as chaves de metadados que quer remover através da flag--keys.gcloud compute project-zonal-metadata remove \ --project=PROJECT_ID \ --zone=ZONE \ --keys=KEY1,KEY2,...Substitua o seguinte: - PROJECT_ID: o ID do seu projeto
- ZONE: a zona onde quer remover os metadados zonais.
- KEY1,- KEY2...: as chaves de metadados zonais personalizadas que quer remover.
 Depois de executar o comando, se alguma das chaves especificadas tiver valores de metadados do projeto disponíveis, as VMs na zona especificada herdam esses valores de metadados do projeto. Se a entrada de metadados tiver sido definida apenas ao nível zonal e não existir um valor de metadados do projeto correspondente para essa chave, as VMs nessa zona perdem essas informações de metadados. Exemplo:Considere um projeto de exemplo my-project, que tem os seguintes metadados do projeto personalizados:- Metadados do projeto: "key-1":"value-a","key-2":"value-b"e"key-3":"value-c"
- Metadados zonais na zona us-central1-a:"key-1":"new-value-1","key-2":"value-2","key-3":"value-3"e"key-4":"new-value-4"
 Para remover todos os metadados zonais na zona us-central1-a, execute o seguinte comando.gcloud compute project-zonal-metadata remove \ --metadata=key-1,key-2,key-3,key-4 \ --project=my-project \ --zone=us-central1-aDepois de executar o comando, as VMs na zona us-central1-atêm as seguintes entradas de metadados do projeto personalizados:- "key-1":"value-a"
- "key-2":"value-b"
- "key-3":"value-c"
 REST- Obtenha a impressão digital atual e veja todos os pares de chave-valor existentes para o projeto nessa zona. - Para realizar o bloqueio otimista, tem de fornecer uma impressão digital. Uma impressão digital é uma string aleatória de carateres gerada pelo Compute Engine. A impressão digital muda sempre que faz um pedido para adicionar, atualizar ou remover metadados zonais. Se fornecer uma impressão digital que não corresponda, o Compute Engine rejeita o seu pedido. - Se não fornecer uma impressão digital, é feita uma verificação de consistência e o seu pedido de eliminação não é bem-sucedido. Isto funciona de modo que só é possível fazer um pedido de cada vez, o que evita colisões. Este comportamento corresponde ao - instances().setMetadata, em que é sempre necessária uma impressão digital.- Para obter a impressão digital atual de um projeto, faça uma chamada ao método - instanceSettings().get.- GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings - Substitua o seguinte: - PROJECT_ID: o ID do seu projeto
- ZONE: a zona onde quer remover os metadados zonais.
 - Segue-se um exemplo de resultado para este pedido: - { "fingerprint": "FikclA7UBC0=", "metadata": { ... } }
- Para remover metadados zonais personalizados, faça um pedido ao - instanceSettings().patchmétodo excluindo as chaves de metadados para as quais quer remover os metadados zonais do corpo do pedido.- PATCHTem de fornecer o seguinte com o seu pedido:- Uma máscara de atualização. Use o parâmetro de consulta - update_mask. A máscara de atualização tem de conter todas as chaves de metadados personalizados existentes para as quais quer remover os metadados zonais. Tem de adicionar a string- metadata.items.como prefixo para cada chave. Por exemplo,- metadata.items.key1,metadata.items.key3.
- No corpo do pedido, indique apenas o valor da impressão digital atual. Excluir todas as chaves de metadados personalizados que especificou na máscara de atualização. Se incluir alguma das chaves de metadados na máscara de atualização e no corpo do pedido, o Compute Engine não remove os metadados zonais dessas chaves. 
 - PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings?update_mask=PREFIXED_METADATA_KEYS { "fingerprint": "FINGER_PRINT", "metadata": { "items": { } } }- Substitua o seguinte: - PROJECT_ID: o ID do projeto.
- ZONE: a zona onde quer remover os metadados zonais.
- PREFIXED_METADATA_KEYS: a lista de todas as chaves de metadados personalizadas existentes para as quais quer remover os metadados zonais, em que cada chave tem o prefixo da string- metadata.items.. Para garantir que o pedido de eliminação é bem-sucedido, exclua estas chaves de metadados do corpo do pedido. Se incluir alguma das chaves de metadados na máscara de atualização e no corpo do pedido, o Compute Engine não remove os metadados zonais dessas chaves.- Por exemplo, suponhamos que as suas chaves de metadados atuais com metadados zonais são - key-1,- key-2,- key-3e- key-4, e quer remover as entradas de metadados zonais para- key-1e- key-2. Nesse caso, a máscara de atualização tem de ter a seguinte string:- metadata.items.key1,metadata.items.key2
- FINGER_PRINT: o valor da impressão digital atual.
 
 Depois de fazer o pedido, se alguma das chaves especificadas tiver valores de metadados do projeto disponíveis, as VMs na zona especificada herdam esses valores de metadados do projeto. Se a chave de metadados tiver sido definida apenas ao nível da zona e não existir um valor de metadados do projeto correspondente para essa chave, então as VMs nessa zona perdem essas informações de metadados. Exemplo:Considere um projeto de exemplo my-project, que tem os seguintes metadados do projeto personalizados:- Metadados do projeto: "key-1":"value-a","key-2":"value-b"e"key-3":"value-c"
- Metadados zonais na zona us-central1-a:"key-1":"new-value-1","key-2":"value-2","key-3":"value-3"e"key-4":"new-value-4"
 Para remover os metadados zonais de key-1ekey-2na zonaus-central1-a, faça o seguinte pedidoPATCH.PATCH https://compute.googleapis.com/compute/beta/projects/my-project/zones/us-central1-a/instanceSettings?update_mask=metadata.items.key-1,metadata.items.key-2 { "fingerprint": "FikclA7UBC0=", "metadata": { "items": { } } }Após este pedido ser processado, as VMs na zona us-central1-atêm os seguintes metadados personalizados. As VMs herdam os valores de metadados do projeto parakey-1ekey-2, mas retêm os metadados zonais parakey-3ekey-4.- Metadados do projeto: "key-1":"value-a"e"key-2":"value-b"
- Metadados zonais na zona us-central1-a:"key-3":"value-3"e"key-4":"new-value-4"
 Remova metadados de instâncias personalizadasPode remover metadados de instâncias personalizadas através da Google Cloud consola, da Google Cloud CLI ou da API REST. Consola- Na Google Cloud consola, aceda à página Instâncias de VM.
- Na coluna Nome, clique no nome da MV para a qual quer remover metadados.
- Clique em Editar na parte superior da página.
- Na secção Metadados, clique em Eliminar item para cada uma das entradas de metadados que quer remover.
- Para confirmar as alterações e remover os metadados de instância personalizados, clique em Guardar.
 gcloudPara remover metadados de instâncias personalizadas, use o comando gcloud compute instances remove-metadata.- Se quiser remover as entradas de metadados personalizados para chaves específicas, especifique essas chaves com a flag --keyse exclua os valores dessas chaves.
 gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --keys=KEY1,KEY2,...- Se quiser remover todos os metadados personalizados da VM, especifique a flag --all.
 gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --allSubstitua o seguinte: - PROJECT_ID: o ID do seu projeto.
- ZONE: a zona da sua VM.
- VM_NAME: nome da sua VM
- KEY1,- KEY2...: as chaves de metadados de instâncias personalizadas que quer remover.
 REST- Obtenha a impressão digital atual e veja todos os pares de chave-valor existentes para a VM. Para tal, chame o método - instances().get.- Uma impressão digital é uma string aleatória de carateres gerada pelo Compute Engine e é usada para realizar o bloqueio otimista. Para atualizar a VM, tem de fornecer o valor da impressão digital correspondente. A impressão digital muda após cada pedido e, se fornecer uma impressão digital que não corresponda, o seu pedido é rejeitado. Isto funciona de modo que só é possível fazer uma atualização de cada vez, o que evita colisões. - GET https://compute.googleapis.com/compute/v1/projects/ - PROJECT_ID/zones/- ZONE/instances/VM_NAME- Substitua o seguinte: - PROJECT_ID: o ID do seu projeto.
- ZONE: a zona da sua VM.
- VM_NAME: nome da sua VM
 - O resultado é semelhante ao seguinte: - { ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "key-1", "value": "value-1" } { "key": "key-2", "value": "value-2" } ] }, ... }
- Faça um pedido ao método - instances().setMetadata. Tem de incluir o valor da impressão digital dos metadados atual para que o pedido seja bem-sucedido.- Para remover todos os pares de chave-valor de metadados personalizados de uma VM, na propriedade - items, exclua as chaves de metadados para as quais quer remover valores de metadados.- POST https://compute.googleapis.com/compute/v1/projects/ - PROJECT_ID/zones/- ZONE/instances/VM_NAME/setMetadata { "fingerprint": "FINGER_PRINT" "items": [ { "key": "KEY1" "value": "VALUE1" } { "key": "KEY2" "value": "VALUE2" } ... ] }
- Para remover todos os metadados de instância personalizados na VM, exclua a propriedade - itemspor completo.- POST https://compute.googleapis.com/compute/v1/projects/ - PROJECT_ID/zones/- ZONE/instances/VM_NAME/setMetadata { "fingerprint": FINGER_PRINT }
 - Substitua o seguinte: - PROJECT_ID: o ID do seu projeto.
- ZONE: a zona da sua VM.
- VM_NAME: nome da sua VM
- FINGER_PRINT: o valor da impressão digital atual.
- KEY1,- KEY2...: as chaves de metadados de instâncias personalizadas que quer remover.
- VALUE1,- VALUE2...: os valores das chaves de metadados de instâncias personalizadas que quer remover.
 
 O que se segue?- Saiba como ver e consultar metadados.
- Saiba mais sobre como executar scripts de arranque ou scripts de encerramento no servidor de metadados.
 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. -