Cada entrada de metadados é armazenada no servidor de metadados como pares de chave-valor. As chaves de metadados diferenciam maiúsculas de minúsculas. Suas chaves podem ser predefinidas ou personalizadas.
Com os metadados personalizados, é possível criar e usar seus próprios pares de chave-valor de metadados em uma VM individual ou um projeto. É possível adicionar novas chaves de metadados personalizadas, atualizar os valores das chaves existentes e remover entradas de metadados personalizados quando não precisar delas. Definir metadados personalizados é útil para transmitir valores arbitrários às VMs em um projeto. Também é útil para criar scripts de inicialização e desligamento.
Este documento contém informações sobre como fazer o seguinte:
Antes de começar
- Revise os conceitos básicos de como os metadados de VM para o Compute Engine são definidos, categorizados e organizados. Para mais informações, consulte Sobre metadados da VM.
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud.
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine da seguinte maneira.
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
Administrador da instância da computação (v1) (
roles/compute.instanceAdmin.v1
) na VM ou no projeto -
Se as VMs usam contas de serviço:
Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço ou no projeto -
Se as VMs usarem contas de serviço:
iam.serviceAccounts.actAs
-
Para adicionar, atualizar ou remover metadados personalizados do projeto, faça o seguinte:
-
compute.projects.get
-
compute.projects.setCommonInstanceMetadata
-
-
Para adicionar, atualizar ou remover metadados personalizados de zona, faça o seguinte:
-
compute.instanceSettings.get
-
compute.instanceSettings.update
-
-
Para adicionar, atualizar ou remover metadados de instâncias personalizadas:
-
compute.instances.get
-
compute.instances.setMetadata
-
- Cada metadado
key
tem um limite máximo de 128 bytes. Cada metadado
key
diferencia maiúsculas de minúsculasNo caso de metadados de zona, o Compute Engine não permite criar duas chaves de metadados separadas com a mesma string, mesmo que elas sejam gravadas em casos diferentes. Por exemplo, se você tiver uma chave atual de metadados personalizados para metadados de zona chamada
project-zonal-metadata-key
, não será possível criar novas chaves de metadados para os metadados de zona nessa zona, comoProject-Zonal-Metadata-Key
,PROJECT-ZONAL-METADATA-KEY
ou quaisquer outras variações da mesma string.Cada metadado
value
tem um limite máximo de 256 KB.Cada metadado
value
diferencia maiúsculas de minúsculas, exceto valores booleanos.- Defina metadados personalizados do projeto para adicioná-los ou atualizá-los para todas as VMs do projeto.
- Defina metadados personalizados de zona para adicionar ou atualizar metadados personalizados com um escopo de zona para as VMs no projeto.
- Definir metadados de instância personalizados para adicionar ou atualizar metadados de instância personalizados para uma VM específica.
No Console do Google Cloud, acesse a página Metadados.
Clique em
Editar no topo da página.Para adicionar novas entradas de metadados personalizados do projeto, faça o seguinte:
- Navegue até a parte inferior da página e clique em Adicionar item.
- No campo Chave, insira o nome da chave de metadados personalizados.
- No campo Valor, insira o valor dos metadados personalizados do projeto.
- Opcional. Para adicionar mais entradas de metadados personalizados do projeto, repita as etapas anteriores para cada entrada que você quer adicionar.
- Para concluir a adição das entradas de metadados personalizados do projeto, clique em Salvar.
Para editar as entradas atuais de metadados personalizados do projeto, faça o seguinte:
- Navegue até a entrada de metadados que você quer editar.
- Para atualizar o nome de uma chave específica de metadados personalizados, no campo Chave da entrada, digite o novo nome.
- Para atualizar o valor de uma entrada de metadados personalizados do projeto, insira o novo valor no campo Valor da entrada.
- Opcional. Para remover uma entrada específica de metadados personalizados do projeto, clique no ícone de exclusão ao lado da entrada.
- Para editar várias entradas de metadados personalizados do projeto, repita as etapas anteriores para cada entrada que você quer editar.
- Para concluir a edição das entradas de metadados personalizados do projeto, clique em Salvar.
KEY
: o nome da chave de metadadosVALUE
: o valor armazenado para esta chaveOpcional. Para realizar um bloqueio otimista, você tem a opção de fornecer uma impressão digital.
Uma impressão digital é uma string aleatória de caracteres gerados pelo Compute Engine. A impressão digital muda após cada solicitação. Se você fornecer uma impressão digital incompatível, sua solicitação será rejeitada.
Se você não fornecer uma impressão digital, nenhuma verificação de consistência será realizada e a solicitação
projects().setCommonInstanceMetadata
será realizada. Esse comportamento é diferente dos métodosinstances().setMetadata
einstanceSettings().patch
, em que uma impressão digital é sempre necessária.Para receber a impressão digital atual de um projeto, chame o método
project().get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID
A saída será assim:
{ "name": "myproject", "commonInstanceMetadata": { "kind": "compute#metadata", "fingerprint": "FikclA7UBC0=", ... } }
Faça uma solicitação para o método
projects().setCommonInstanceMetadata
e defina 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" } ] }
- Crie chaves de metadados personalizados para uma zona específica em um projeto e defina metadados para todas as VMs nessa zona no projeto.
- Atualize os valores das entradas atuais de metadados personalizados de zona para todas as VMs em uma zona específica de um projeto.
- Para chaves atuais de metadados personalizados que têm valores de metadados do projeto, substitua esses valores em zonas específicas e defina metadados de zona. Depois de definir metadados de zona para essas chaves em uma zona específica, todas as VMs nessa zona do projeto usarão os valores de metadados de zona para as chaves.
- Se você adicionar um valor de metadados de zona a uma chave de metadados que já
tenha um valor de metadados do projeto, o Compute Engine vai substituir o valor de
metadados do projeto nas VMs da zona especificada e atualizar o diretório
/project
com o valor da zona. - Se você adicionar um novo valor de metadados para todo o projeto a uma chave de metadados
que já tenha um valor de metadados de zona, nada será alterado. O Compute Engine mantém o
valor de metadados de zona no diretório
/project
da zona específica. - Se você não especificar um valor de metadados de zona para uma chave de metadados personalizada em uma zona específica, mas a chave tiver um valor de metadados do projeto, as VMs continuarão tendo os valores de metadados do projeto nessas zonas.
Para adicionar ou atualizar metadados personalizados de zona, 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:
PROJECT_ID
: ID do projetoZONE
: a zona em que você quer adicionar ou atualizar os metadados de zona.KEY1
,KEY2
...: as chaves de metadados personalizados em que você quer adicionar ou atualizar valores de metadados de zona.VALUE1
,VALUE2
...: os valores de metadados de zona que você quer definir para as chaves atuais e novas de metadados personalizados. Dependendo do valor e da chave de metadados personalizados, acontece uma das seguintes situações:Se a chave de metadados personalizados correspondente for uma chave atual com metadados do projeto, o Compute Engine substituirá o valor de metadados do projeto da chave na zona especificada pelo valor de metadados de zona especificado. Todas as VMs na zona especificada do projeto herdam esses metadados de zona recém-especificados para a chave, e as VMs em outras zonas continuam a manter os valores de metadados de zona ou de projeto predominantes. Se você fizer atualizações futuras no valor dos metadados do projeto para essa chave, as VMs nessa zona do projeto permanecerão inalteradas e continuarão a usar o valor de metadados de zona da chave.
Se a chave de metadados personalizados correspondente for uma nova chave de metadados que não é usada para metadados atuais de projeto ou zona, o Compute Engine criará a chave de metadados personalizados e definirá esse valor como os metadados de zona na zona especificada.
Se a chave de metadados personalizados correspondente for uma chave de metadados atual com um valor de metadados de zona na zona especificada:
- Se o valor de metadados especificado for diferente do valor atual, o Compute Engine atualizará a entrada de metadados de zona com o novo valor.
- Se o valor de metadados especificado for igual ao valor atual, a entrada de metadados de zona permanecerá inalterada.
- Metadados do projeto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadados de zona na zona
us-central1-a
:"key-1":"value-1"
e"key-2":"value-2"
- Metadados do projeto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadados de zona na zona
us-central1-a
:"key-1":"value-1"
,"key-2":"value-2"
e"key-4":"value-4"
- Metadados do projeto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadados de zona na zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
e"key-4":"new-value-4"
Encontre a impressão digital atual e confira os pares de chave-valor existentes para o projeto nessa zona.
Para realizar o bloqueio otimista, é necessário fornecer uma impressão digital. Uma impressão digital é uma string aleatória de caracteres gerados pelo Compute Engine. A impressão digital é alterada sempre que você faz uma solicitação para adicionar, atualizar ou remover metadados de zona. Se você fornecer uma impressão digital incompatível, o Compute Engine rejeitará a solicitação.
Se você não fornecer uma impressão digital, uma verificação de consistência será realizada e a solicitação de atualização não será concluída. Isso funciona para que apenas uma atualização possa ser feita por vez, evitando colisões. Esse comportamento corresponde a
instances().setMetadata
, em que uma impressão digital é sempre necessária.Para conseguir a impressão digital atual dos metadados de zona, faça uma solicitação
GET
ao métodoinstanceSettings().get
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings
Substitua:
PROJECT_ID
: ID do projetoZONE
: a zona em que você quer definir os metadados de zona.
Este é um exemplo de saída para essa solicitação:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { ... } }
Para adicionar ou atualizar os metadados de zona, faça uma solicitação
PATCH
ao métodoinstanceSettings().patch
. Forneça os seguintes itens com sua solicitação:Uma máscara de atualização. Use o parâmetro de consulta
update_mask
. A máscara de atualização precisa conter as chaves de metadados para:- Os novos metadados personalizados de zona que você quer adicionar
- Os metadados personalizados de zona atuais com os valores que você quer atualizar
É preciso adicionar a string
metadata.items.
como prefixo para cada chave. Por exemplo,metadata.items.key1,metadata.items.key3
.No corpo da solicitação, informe o seguinte:
- As chaves e os valores dos novos metadados personalizados de zona que você quer adicionar
- As chaves e os valores dos metadados personalizados de zona atuais que você quer atualizar
- O valor atual da impressão digital
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:
PROJECT_ID
: o ID do projeto.ZONE
: a zona em que você quer definir os metadados de zona.PREFIXED_METADATA_KEYS
: a lista de chaves de metadados para o seguinte, em que cada chave é prefixada com a stringmetadata.items.
:- Os novos metadados personalizados de zona que você quer adicionar
- Os metadados personalizados de zona atuais com os valores que você quer atualizar
Por exemplo, suponha que as chaves atuais de metadados de zona em uma zona específica sejam
key-1
ekey-2
. Se você quiser adicionar uma nova chave,key-3
, aos metadados de zona nessa zona e também atualizar os metadados de zona em uma das chaves atuais,key-1
, a máscara de atualização deverá ter a seguinte string:metadata.items.key1,metadata.items.key3
FINGER_PRINT
: o valor atual da impressão digital.KEY1
,KEY2
...: as chaves de metadados personalizados de zona em que você quer adicionar ou atualizar valores. Especifique todas as chaves de metadados personalizados de zona especificadas na máscara de atualização.VALUE1
,VALUE2
...: os valores de metadados de zona que você quer definir para as chaves atuais e novas de metadados personalizados. Dependendo do valor e da chave de metadados personalizados, acontece uma das seguintes situações:- Se a chave de metadados personalizados correspondente for uma chave atual com metadados do projeto, o Compute Engine substituirá o valor de metadados do projeto da chave na zona especificada pelo valor de metadados de zona especificado. Todas as VMs na zona especificada do projeto herdam esses metadados de zona recém-especificados para a chave, e as VMs em outras zonas continuam a manter os valores de metadados de zona ou de projeto predominantes. Se você fizer atualizações futuras no valor dos metadados do projeto para essa chave, as VMs nessa zona do projeto permanecerão inalteradas e continuarão a usar o valor de metadados de zona da chave.
- Se a chave de metadados personalizados correspondente for uma nova chave de metadados que não é usada para metadados atuais de projeto ou zona, o Compute Engine criará a chave de metadados personalizados e definirá esse valor como os metadados de zona na zona especificada.
Se a chave de metadados personalizados correspondente for uma chave de metadados atual com um valor de metadados de zona na zona especificada:
Se o valor de metadados especificado for diferente do valor atual, o Compute Engine atualizará a entrada de metadados de zona com o novo valor.
Se o valor de metadados especificado for igual ao valor atual, a entrada de metadados de zona permanecerá inalterada.
- Metadados do projeto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadados de zona na zona
us-central1-a
:"key-1":"value-1"
e"key-2":"value-2"
- Metadados do projeto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadados de zona na zona
us-central1-a
:"key-1":"value-1"
,"key-2":"value-2"
e"key-4":"value-4"
- Metadados do projeto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadados de zona na zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
e"key-4":"new-value-4"
- Para novas VMs, adicione metadados personalizados quando elas estiverem sendo criadas.
- Para VMs atuais, adicione ou atualize metadados personalizados quando a VM estiver em execução.
No console do Google Cloud, acesse a página Criar uma instância.
Especifique os detalhes da VM.
Expanda a seção Opções avançadas e faça isto:
- Expanda a seção Gerenciamento.
- Para adicionar vários pares de chave-valor aos seus metadados personalizados, na seção Metadados, clique em Adicionar item.
Para criar a VM, clique em Criar.
VM_NAME
: o nome da VMKEY
: o nome da chave de metadadosVALUE
: o valor armazenado para esta chavePROJECT_ID
: ID do projetoZONE
: zona em que a VM será criadaMACHINE_TYPE
: tipo de máquina, predefinida ou personalizada, para a nova VMVM_NAME
: nome da nova VMKEY
: o nome da chave de metadadosVALUE
: o valor armazenado para esta chave- No console do Google Cloud, acesse a página Instâncias de VMs.
- Clique na instância em que estão os metadados que você quer atualizar.
- Clique no botão Editar, na parte superior da página.
- Em Metadados personalizados, clique em Adicionar item ou edite as entradas de metadados atuais.
- Salve as alterações.
VM_NAME
: o nome da VMKEY
: o nome da chave de metadadosVALUE
: o valor armazenado para esta chaveEncontre a impressão digital atual e veja os pares de chave-valor atuais da VM. Para fazer isso, chame o método
instances().get
.Impressão digital é uma string de caracteres aleatória, gerada pelo Compute Engine e usada para executar o bloqueio otimista. Para atualizar a VM, forneça o valor da impressão digital correspondente. A impressão digital é alterada após cada solicitação. Se você fornecer uma impressão digital não correspondente, sua solicitação será rejeitada. Isso funciona para que apenas uma atualização possa ser feita por vez, evitando colisões.
GET https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMESubstitua:
PROJECT_ID
: ID do projetoZONE
: a zona em que a VM está localizada.VM_NAME
: o nome da VM.
O resultado será assim:
{ ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "foo", "value": "bar" } ] }, ... }
Faça uma solicitação ao método
instances().setMetadata
. Forneça uma lista dos novos valores de metadados e o valor atual defingerprint
Se houver pares de chave-valor que você quer manter na VM, eles precisarão ser incluídos na solicitação com os novos pares de chave-valor.
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:
PROJECT_ID
: ID do projetoZONE
: a zona em que a VM está localizada.VM_NAME
: o nome da VM.
- Remover os metadados personalizados do projeto, para remover os metadados personalizados definidos para todas as VMs em um projeto.
- Remover os metadados personalizados de zona, para remover os metadados personalizados definidos para todas as VMs em uma zona específica de um projeto.
- Remova metadados de instâncias personalizadas para remover metadados de VM que foram definidos para uma VM específica.
No Console do Google Cloud, acesse a página Metadados.
Clique em
Editar no topo da página.Navegue até a entrada de metadados que você quer remover e clique no botão "Excluir"
ao lado da entrada.Repita essa etapa para cada entrada de metadados que você quer remover.
Para concluir a remoção das entradas de metadados personalizados do projeto, clique em Salvar.
- Se você quiser remover as entradas de metadados personalizados de chaves específicas, especifique essas chaves usando a sinalização
--keys
e exclua os valores delas. - Se você quiser remover todos os metadados personalizados da VM, especifique a sinalização
--all
. KEY1
,KEY2
...: as chaves de metadados da instância personalizada que você quer remover.PROJECT_ID
: ID do projetoZONE
: a zona de onde você quer remover os metadados de zona.KEY1
,KEY2
...: as chaves de metadados personalizados de zona que você quer remover.- Metadados do projeto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadados de zona na zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
,"key-3":"value-3"
e"key-4":"new-value-4"
"key-1":"value-a"
"key-2":"value-b"
"key-3":"value-c"
Encontre a impressão digital atual e confira os pares de chave-valor existentes para o projeto nessa zona.
Para realizar o bloqueio otimista, é necessário fornecer uma impressão digital. Uma impressão digital é uma string aleatória de caracteres gerados pelo Compute Engine. A impressão digital é alterada sempre que você faz uma solicitação para adicionar, atualizar ou remover metadados de zona. Se você fornecer uma impressão digital incompatível, o Compute Engine rejeitará a solicitação.
Se você não fornecer uma impressão digital, uma verificação de consistência será realizada e a solicitação de exclusão não será concluída. Isso funciona para que apenas uma atualização possa ser feita por vez, evitando colisões. Esse comportamento corresponde a
instances().setMetadata
, em que uma impressão digital é sempre necessária.Para encontrar a impressão digital atual de um projeto, chame o método
instanceSettings().get
.GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings
Substitua:
PROJECT_ID
: ID do projetoZONE
: a zona de onde você quer remover os metadados de zona.
Este é um exemplo de saída para essa solicitação:
{ "fingerprint": "FikclA7UBC0=", "metadata": { ... } }
Para remover metadados personalizados de zona, faça uma solicitação
PATCH
ao métodoinstanceSettings().patch
excluindo as chaves de metadados, das quais você quer remover os metadados de zona, do corpo da solicitação. Forneça os seguintes itens com sua solicitação:Uma máscara de atualização. Use o parâmetro de consulta
update_mask
. A máscara de atualização precisa conter todas as chaves atuais de metadados personalizados das quais você quer remover os metadados de zona. É preciso adicionar a stringmetadata.items.
como prefixo para cada chave. Por exemplo,metadata.items.key1,metadata.items.key3
.No corpo da solicitação, forneça apenas o valor atual da impressão digital. Exclua todas as chaves de metadados personalizados que você especificou na máscara de atualização. Se você incluir uma das chaves de metadados na máscara de atualização e no corpo da solicitação, o Compute Engine não vai remover os metadados de zona 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:
PROJECT_ID
: o ID do projeto.ZONE
: a zona de onde você quer remover os metadados de zona.PREFIXED_METADATA_KEYS
: a lista de todas as chaves atuais de metadados personalizados das quais você quer remover metadados de zona, em que cada chave é prefixada com a stringmetadata.items.
. Para garantir que sua solicitação de exclusão seja bem-sucedida, exclua essas chaves de metadados do corpo da solicitação. Se você incluir uma das chaves de metadados na máscara de atualização e no corpo da solicitação, o Compute Engine não vai remover os metadados de zona dessas chaves.Por exemplo, suponha que as chaves de metadados atuais com metadados de zona sejam
key-1
,key-2
,key-3
ekey-4
, e você queira remover as entradas de metadados de zona dekey-1
ekey-2
. Nesse caso, a máscara de atualização deverá ter a seguinte string:metadata.items.key1,metadata.items.key2
FINGER_PRINT
: o valor atual da impressão digital.
- Metadados do projeto:
"key-1":"value-a"
,"key-2":"value-b"
e"key-3":"value-c"
- Metadados de zona na zona
us-central1-a
:"key-1":"new-value-1"
,"key-2":"value-2"
,"key-3":"value-3"
e"key-4":"new-value-4"
- Metadados do projeto:
"key-1":"value-a"
e"key-2":"value-b"
- Metadados de zona na zona
us-central1-a
:"key-3":"value-3"
e"key-4":"new-value-4"
- No console do Google Cloud, acesse a página Instâncias de VMs.
- Na coluna Nome, clique no nome da VM com os metadados que você quer remover.
- Clique em Editar no topo da página.
- Na seção Metadados, clique em Excluir item para cada uma das entradas de metadados que você quer remover.
- Para confirmar as mudanças e remover os metadados personalizados da instância, clique em Salvar.
- Se você quiser remover as entradas de metadados personalizados de chaves específicas, especifique essas chaves usando a sinalização
--keys
e exclua os valores delas. - Se você quiser remover todos os metadados personalizados da VM, especifique a sinalização
--all
. PROJECT_ID
: o ID do projeto.ZONE
: a zona da VM;VM_NAME
: o nome da VM.KEY1
,KEY2
...: as chaves de metadados da instância personalizada que você quer remover.Encontre a impressão digital atual e veja os pares de chave-valor atuais da VM. Para fazer isso, chame o método
instances().get
.Impressão digital é uma string de caracteres aleatória, gerada pelo Compute Engine e usada para executar o bloqueio otimista. Para atualizar a VM, forneça o valor da impressão digital correspondente. A impressão digital é alterada após cada solicitação. Se você fornecer uma impressão digital não correspondente, sua solicitação será rejeitada. Isso funciona para que apenas uma atualização possa ser feita por vez, evitando colisões.
GET https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMESubstitua:
PROJECT_ID
: o ID do projeto.ZONE
: a zona da VM;VM_NAME
: o nome da VM.
O resultado será assim:
{ ... "name": "example-instance", "metadata": { "kind": "compute#metadata", "fingerprint": "zhma6O1w2l8=" "items": [ { "key": "key-1", "value": "value-1" } { "key": "key-2", "value": "value-2" } ] }, ... }
Faça uma solicitação ao método
instances().setMetadata
. É necessário incluir o valor atual da impressão digital de metadados para que sua solicitação seja bem-sucedida.Para remover todos os pares de chave-valor de metadados personalizados de uma VM, na propriedade
items
, exclua as chaves de metadados de que você quer remover valores.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 da instância personalizada na VM, exclua completamente a propriedade
items
.POST https://compute.googleapis.com/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAME/setMetadata { "fingerprint": FINGER_PRINT }
Substitua:
PROJECT_ID
: o ID do projeto.ZONE
: a zona da VM;VM_NAME
: o nome da VM.FINGER_PRINT
: o valor atual da impressão digital.KEY1
,KEY2
...: as chaves de metadados da instância personalizada que você quer remover.VALUE1
,VALUE2
...: os valores das chaves de metadados da instância personalizada que você quer remover.
- Saiba mais sobre os metadados da VM.
- Saiba como acessar e consultar metadados.
- Saiba mais sobre como executar scripts de inicialização ou scripts de encerramento no servidor de metadados.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções exigidas
Para ter as permissões necessárias para definir ou remover metadados personalizados nas VMs, peça ao administrador para conceder a você os seguintes papéis do IAM:
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para definir ou remover metadados personalizados das VMs. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para definir ou remover metadados personalizados nas VMs:
Também é possível conseguir essas permissões com papéis personalizados ou outros papéis predefinidos.
Limitações
Com o Compute Engine, é possível impor um limite total combinado de 512 KB para todas as entradas de metadados. Os limites máximos de tamanho também são aplicados a
key
evalue
da seguinte maneira:Por exemplo, as chaves SSH são armazenadas como metadados personalizados na chave
ssh-keys
. Se ovalue
ou o conteúdo de metadados dessa chave ultrapassar o limite de 256 KB, você não poderá adicionar mais chaves SSH. Se isso ocorrer, remova as chaves não utilizadas para liberar espaço de metadados para novas chaves.Além disso, se você fornecer diretamente o conteúdo do script de inicialização ou desligamento, esse conteúdo também poderá ser armazenado como metadados personalizados e contribuir com essas limitações de tamanho. Para evitar isso, armazene o script de inicialização ou desligamento como um arquivo hospedado em um local externo, como o Cloud Storage, e forneça o URL do script de inicialização ao criar uma VM. Dessa forma, esses arquivos são transferidos por download para a VM e não são armazenados no servidor de metadados.
Valores booleanos
Em campos que aceitam valores booleanos,
TRUE
ouFALSE
, também é possível usar os seguintes valores:Status Valores alternativos TRUE
Y
,Yes
,1
FALSE
N
,No
,0
Valores booleanos não diferenciam maiúsculas de minúsculas. Por exemplo, para desativar um recurso, use
False
,false
ouFALSE
.Definir metadados personalizados em VMs
Nesta seção, você encontra informações sobre como adicionar ou atualizar metadados personalizados para as VMs do Compute Engine de uma das seguintes maneiras:
Definir metadados personalizados do projeto
É possível adicionar ou atualizar os metadados personalizados de todas as instâncias de um projeto usando o console do Google Cloud, a CLI do Google Cloud ou REST.
Use estas instruções para aplicar configurações de metadados a todas as VMs do projeto. Por exemplo, se você definir um par de metadados de
baz=bat
no projeto, esse par será aplicado automaticamente a todas as VMs do projeto.Console
gcloud
Use o comando
project-info add-metadata
.gcloud compute project-info add-metadata \ --metadata=KEY=VALUE
Substitua:
Exemplo
Por exemplo, para definir duas novas entradas
foo=bar
ebaz=bat
em um projeto, execute o seguinte comando:gcloud compute project-info add-metadata \ --metadata=foo=bar,baz=bat
Opcionalmente, é possível especificar um ou mais arquivos que terão os metadados lidos com o uso da sinalização
--metadata-from-file
.REST
Substitua
PROJECT_ID
pelo ID do projeto.Definir metadados personalizados de zona
Ao definir metadados personalizados de zona, você adiciona ou atualiza as entradas de metadados de zona das VMs em uma zona específica de um projeto. Você pode fazer o seguinte definindo metadados personalizados de zona:
O que você precisa levar em consideração ao definir metadados personalizados de zona
As entradas de metadados do projeto e da zona são armazenadas no mesmo diretório
project/
. Se você definir valores diferentes para as mesmas chaves de metadados personalizados em VMs no nível do projeto e no nível da zona, os valores de metadados de zona dessas chaves terão precedência sobre os metadados do projeto nas respectivas zonas.Procedimento
É possível adicionar ou atualizar metadados personalizados de zona em uma zona específica de um projeto usando a CLI do Google Cloud ou REST.
gcloud
Exemplo: adicionar uma nova entrada de metadados personalizados de zona
Por exemplo, considere um projeto chamado
my-project
com os seguintes metadados personalizados:Para adicionar
"key-4":"value-4"
como um novo par de metadados personalizados de zona na zonaus-central1-a
, execute o seguinte comando:gcloud compute project-zonal-metadata add \ --metadata=key-4=value-4 \ --project=my-project \ --zone=us-central1-a
Exemplo: atualizar os valores de uma entrada atual de metadados personalizados de zona
Considere o mesmo projeto de exemplo
my-project
, que agora tem os seguintes metadados personalizados:Para atualizar os valores de metadados de zona de
key-1
ekey-4
na zonaus-cerntral1-a
com novos valores, execute o comando a seguir.gcloud compute project-zonal-metadata add \ --metadata=key-1=new-value-1,key-4=new-value-4 \ --project=my-project \ --zone=us-central1-a
Exemplo: substituir o valor de metadados do projeto para uma chave e usar um valor de metadados de zona
Considere o mesmo projeto de exemplo
my-project
, que agora tem os seguintes metadados personalizados:Neste projeto de exemplo, considere
key-3
, que tem um valor de metadados do projeto devalue-c
. Suponha que você queira definir um valor de metadados de zonavalue-3
para essa chave em todas as VMs na zonaus-central1-a
. Quando você executa 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 de zona. As VMs em todas as outras zonas do projeto mantêm seus valores de metadados do projeto ou de zona predominantes parakey-3
.Para substituir o valor de metadados do projeto para
key-3
e definir um valor de metadados de zona, execute o seguinte comando:gcloud compute project-zonal-metadata add \ --metadata=key-3=value-3 \ --project=my-project \ --zone=us-central1-a
REST
Exemplo: adicionar uma nova entrada de metadados personalizados de zona
Por exemplo, considere um projeto chamado
my-project
com os seguintes metadados personalizados:Para adicionar
"key-4":"value-4"
como um novo par de metadados personalizados de zona na zonaus-central1-a
, crie a seguinte solicitaçãoPATCH
: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: atualizar os valores de uma entrada atual de metadados personalizados de zona
Considere o mesmo projeto de exemplo
my-project
, que agora tem os seguintes metadados personalizados:Para atualizar os valores de metadados de zona de
key-1
ekey-4
na zonaus-cerntral1-a
com novos valores, faça a seguinte solicitaçãoPATCH
: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: substituir o valor de metadados do projeto para uma chave e definir um valor de metadados de zona
Considere o mesmo projeto de exemplo
my-project
, que agora tem os seguintes metadados personalizados:Neste projeto de exemplo, considere
key-3
, que tem um valor de metadados do projeto devalue-c
. Suponha que você queira definir um valor de metadados de zonavalue-3
para essa chave em todas as VMs na zonaus-central1-a
. Quando você executa 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 de zona. As VMs em todas as outras zonas do projeto mantêm seus valores de metadados do projeto ou de zona predominantes parakey-3
.Para substituir o valor de metadados do projeto de
key-3
e usar o valor de metadados de zonavalue-3
, faça a seguinte solicitaçãoPATCH
: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" } } }
Definir metadados de instância personalizados
É possível adicionar ou atualizar os metadados personalizados de uma única instância de VM usando o console do Google Cloud, a CLI do Google Cloud ou REST.
É possível definir metadados de instância personalizados de uma das seguintes maneiras:
Adicionar metadados de instância personalizados durante a criação da VM
Use estas instruções para adicionar metadados a uma instância de VM específica no momento da criação.
Console
gcloud
Para definir metadados personalizados, use o comando
gcloud compute instances create
com a sinalização--metadata
.gcloud compute instances create VM_NAME \ --metadata=KEY=VALUE
Substitua:
Exemplo
Por exemplo, para definir uma nova chave
foo
que tenha o valorbar
em uma VM chamadaexample-instance
, execute o seguinte comando:gcloud compute instances create example-instance \ --metadata=foo=bar
REST
Use o método
instances.insert
e forneça os metadados personalizados como parte da propriedademetadata
na solicitação: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:
Adicionar ou atualizar metadados de instância personalizados em uma VM atual
Use estas instruções para atualizar metadados em uma instância de VM específica que já existe.
Console
gcloud
A atualização de metadados da VM com a CLI gcloud é uma ação aditiva. Especifique apenas as chaves de metadados que você quer adicionar ou mudar. Se você especificar uma chave atual, o valor dela será atualizado com o novo valor.
Use o comando
instances add-metadata
(em inglês).gcloud compute instances add-metadata VM_NAME \ --metadata=KEY=VALUE,KEY=VALUE
Substitua:
Exemplos
Se você quiser adicionar a entrada
foo=bar
, use:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bar
Se você quiser mudar a entrada
foo=bar
parafoo=bat
, use:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bat
REST
Remover metadados personalizados de VMs
Esta seção fornece informações sobre como remover entradas de metadados personalizados das VMs do Compute Engine de uma das seguintes maneiras:
Remover os metadados personalizados do projeto
É possível remover metadados personalizados do projeto usando o console do Google Cloud ou a CLI do Google Cloud.
Console
gcloud
Para remover metadados personalizados do projeto, use o comando
gcloud compute project-info remove-metadata
.gcloud compute project-info remove-metadata \ --keys=KEY1,KEY2,...
gcloud compute project-info remove-metadata \ --all
Substitua:
Remover metadados personalizados de zona
É possível remover metadados personalizados de zona usando a CLI do Google Cloud ou REST.
gcloud
Para remover metadados personalizados de zona, use o comando
gcloud compute project-zonal-metadata remove
e especifique todas as chaves de metadados que você quer remover usando a flag--keys
.gcloud compute project-zonal-metadata remove \ --project=PROJECT_ID \ --zone=ZONE \ --keys=KEY1,KEY2,...
Substitua:
Depois de executar o comando, se alguma das chaves especificadas tiver valores de metadados do projeto disponíveis, as VMs na zona especificada herdarão esses valores. Se a entrada de metadados tiver sido definida apenas no nível da zona e não houver um valor de metadados do projeto correspondente para a chave, as VMs nessa zona perderão as informações de metadados.
Exemplo:
Considere um exemplo de projeto
my-project
, que tem os seguintes metadados de projeto personalizado:Para remover todos os metadados de zona da zona
us-central1-a
, execute o comando a seguir.gcloud compute project-zonal-metadata remove \ --metadata=key-1,key-2,key-3,key-4 \ --project=my-project \ --zone=us-central1-a
Depois de executar o comando, as VMs na zona
us-central1-a
terão as seguintes entradas de metadados personalizados do projeto:REST
Depois de fazer a solicitação, se alguma das chaves especificadas tiver valores de metadados do projeto disponíveis, as VMs na zona especificada herdarão esses valores. Se a chave de metadados tiver sido definida apenas no nível da zona e não houver um valor de metadados do projeto correspondente para ela, as VMs nessa zona perderão as informações de metadados.
Exemplo:
Considere um exemplo de projeto
my-project
, que tem os seguintes metadados de projeto personalizado:Para remover os metadados de zona de
key-1
ekey-2
na zonaus-central1-a
, faça a solicitaçãoPATCH
a seguir.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": { } } }
Depois que essa solicitação for processada, as VMs na zona
us-central1-a
terão os metadados personalizados a seguir. As VMs herdam os valores de metadados do projeto parakey-1
ekey-2
, mas retêm os metadados de zona parakey-3
ekey-4
.Remover metadados de instâncias personalizadas
É possível remover metadados de instância personalizados usando o console do Google Cloud, a CLI do Google Cloud ou REST.
Console
gcloud
Para remover os metadados personalizados da instância, use o comando
gcloud compute instances remove-metadata
.gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --keys=KEY1,KEY2,...
gcloud compute instances remove-metadata VM_NAME \ --zone=ZONE \ --all
Substitua:
REST
A seguir
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 2024-11-22 UTC.
-