Cada entrada de metadados é armazenada no servidor de metadados como pares de valores-chave. As chaves de metadados diferenciam maiúsculas de minúsculas. Suas chaves podem ser chaves de metadados predefinidas ou personalizadas.
Os metadados personalizados permitem que você crie e use seus próprios pares de valores-chave de metadados em uma VM individual ou em um projeto. Você 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. Definir metadados personalizados é útil para transmitir valores arbitrários para VMs em um projeto. Também é útil para criar scripts de inicialização e desligamento .
Este documento fornece informações sobre como fazer o seguinte:
Antes de começar
- Revise os princípios básicos de como os metadados de VM do Compute Engine são definidos, categorizados e organizados. Para obter mais informações, consulte Sobre metadados de VM .
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
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
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
- Administrador da instância do Compute (v1) (
roles/compute.instanceAdmin.v1
) na VM ou no projeto - Se suas VMs usarem contas de serviço: Usuário da conta de serviço (
roles/iam.serviceAccountUser
) na conta de serviço ou projeto - Se suas VMs usarem contas de serviço:
nas contas de serviço ou no projetoiam.serviceAccounts.actAs
- Para adicionar, atualizar ou remover metadados de projeto personalizados:
-
no projetocompute.projects.get
-
no projetocompute.projects.setCommonInstanceMetadata
-
- Para adicionar, atualizar ou remover metadados zonais personalizados:
-
nas configurações da instância na zona necessária no projetocompute.instanceSettings.get
-
nas configurações da instância na zona necessária no projetocompute.instanceSettings.update
-
- Para adicionar, atualizar ou remover metadados de instância personalizados:
-
na VMcompute.instances.get
-
na VMcompute.instances.setMetadata
-
- Cada
key
de metadados tem um limite máximo de 128 bytes. Cada
key
de metadados diferencia maiúsculas de minúsculas.Para metadados zonais, o Compute Engine não permite criar duas chaves de metadados separadas com a mesma string, mesmo que sejam gravadas em casos diferentes. Por exemplo, se você tiver uma chave de metadados personalizada existente para metadados zonais chamada
project-zonal-metadata-key
, então, para metadados zonais nessa zona, não será possível criar novas chaves de metadados, comoProject-Zonal-Metadata-Key
,PROJECT-ZONAL-METADATA-KEY
ou qualquer outra variação da mesma string.Cada
value
de metadados tem um limite máximo de 256 KB.Cada
value
de metadados diferencia maiúsculas de minúsculas, exceto valores booleanos.- Defina metadados de projeto personalizados para adicionar ou atualizar metadados de projeto personalizados para todas as VMs do seu projeto.
- Defina metadados zonais personalizados para adicionar ou atualizar metadados personalizados com escopo 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.
No console do Google Cloud, acesse a página Metadados .
Clique em
Editar na parte superior da página.Para adicionar novas entradas de metadados de projeto personalizados, faça o seguinte:
- Navegue até a parte inferior da página e clique em Adicionar item .
- No campo Chave , insira o nome da sua chave de metadados personalizada.
- No campo Valor , insira o valor dos metadados do projeto personalizado.
- Opcional. Para adicionar mais entradas de metadados de projeto personalizados, repita as etapas anteriores para cada entrada de metadados que você deseja adicionar.
- Para terminar de adicionar as entradas de metadados do projeto personalizado, clique em Salvar .
Para editar entradas de metadados de projeto personalizados existentes, faça o seguinte:
- Navegue até a entrada de metadados que você deseja editar.
- Para atualizar o nome de uma chave de metadados personalizada específica, no campo Chave dessa entrada, insira o novo nome.
- Para atualizar o valor de uma entrada de metadados de projeto personalizada, no campo Valor dessa entrada, insira o novo valor.
- Opcional. Para remover uma entrada de metadados de projeto personalizada específica, clique no ícone exclusão próximo à entrada de metadados.
- Para editar diversas entradas de metadados de projetos personalizados, repita as etapas anteriores para cada entrada de metadados que você deseja editar.
- Para terminar de editar as entradas de metadados do projeto personalizado, clique em Salvar .
-
KEY
: o nome da sua chave de metadados -
VALUE
: o valor armazenado para esta chave Opcional. Para realizar o bloqueio otimista, você pode fornecer opcionalmente uma impressão digital.
Uma impressão digital é uma sequência aleatória de caracteres gerada pelo Compute Engine. A impressão digital muda após cada solicitação e, 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á executada e a solicitação
projects().setCommonInstanceMetadata
será bem-sucedida. Esse comportamento é diferente dosinstances().setMetadata
einstanceSettings().patch
, onde uma impressão digital é sempre necessária.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
A saída é semelhante à seguinte:
{ "name": "myproject", "commonInstanceMetadata": { "kind": "compute#metadata", "fingerprint": "FikclA7UBC0=", ... } }
Faça uma solicitação ao método
projects().setCommonInstanceMetadata
e defina seus pares de valores-chave de metadados personalizados:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "fingerprint": "FikclA7UBC0=", "items": [ { "key": "foo", "value": "bar" } ] }
- Crie novas chaves de metadados personalizados para uma zona específica em um 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 em uma zona específica de um projeto.
- Para chaves de metadados personalizados existentes que tenham valores de metadados de projeto, substitua esses valores de metadados de projeto em zonas específicas e, em vez disso, defina metadados zonais. Depois de definir metadados zonais para essas chaves em uma zona específica, todas as VMs dessa zona nesse projeto usarão os valores de metadados zonais para essas chaves.
- Se você adicionar um valor de metadados zonal para uma chave de metadados que já tem um valor de metadados de projeto, o Compute Engine substituirá o valor de metadados do projeto para as VMs nesta zona especificada e atualizará o diretório
/project
com o valor zonal. - Se você adicionar um novo valor de metadados para todo o projeto para uma chave de metadados que já possui um valor de metadados zonal, nada será alterado. O Compute Engine retém o valor dos metadados zonais no diretório
/project
da zona específica. - Se você não especificar um valor de metadados zonal para uma chave de metadados personalizada em uma zona específica, mas a chave tiver um valor de metadados de projeto, suas VMs continuarão a ter os valores de metadados do projeto nessas zonas.
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 você deseja adicionar ou atualizar metadados zonais. -
KEY1
,KEY2
...: as chaves de metadados personalizados para as quais você deseja adicionar ou atualizar valores de metadados zonais. VALUE1
,VALUE2
...: os valores de metadados zonais que você deseja definir para suas chaves de metadados personalizados existentes e novos. Dependendo da sua chave e valor de metadados personalizados, ocorrerá uma das seguintes situações:Se a chave de metadados personalizada correspondente for uma chave existente que tenha metadados de projeto, então, na zona especificada, o Compute Engine substituirá o valor de metadados do projeto da chave pelo valor de metadados zonal especificado. Todas as VMs na zona especificada no projeto herdam esses metadados zonais recém-especificados para essa chave e as VMs em outras zonas continuam a reter seus valores de metadados zonais ou de projeto predominantes. Se você fizer atualizações futuras no valor de metadados do projeto para essa chave, as VMs nessa zona do projeto permanecerão inalteradas e continuarão a usar o valor de metadados zonais para essa chave.
Se a chave de metadados personalizada correspondente for uma nova chave de metadados que não é usada para projetos existentes ou metadados zonais, o Compute Engine criará a chave de metadados personalizada e definirá esse 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 atualizará a entrada de metadados zonais com o novo valor.
- Se o valor de metadados especificado for igual ao valor existente, a entrada de metadados zonais permanecerá inalterada.
-
- 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"
- 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"
- 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"
Obtenha a impressão digital atual e visualize quaisquer pares de valores-chave existentes para o projeto nessa zona.
Para realizar o bloqueio otimista, você deve fornecer uma impressão digital. Uma impressão digital é uma sequência aleatória de caracteres gerada pelo Compute Engine. A impressão digital muda sempre que você faz uma solicitação para adicionar, atualizar ou remover metadados zonais e, se você fornecer uma impressão digital incompatível, o Compute Engine rejeitará sua solicitação.
Se você não fornecer uma impressão digital, uma verificação de consistência será realizada e sua solicitação de atualização não será bem-sucedida. Isso funciona para que apenas uma solicitação possa ser feita por vez, evitando colisões. Esse comportamento corresponde
instances().setMetadata
, onde uma impressão digital é sempre necessária.Para obter a impressão digital atual dos metadados zonais, faça uma solicitação
GET
para o métodoinstanceSettings().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 você deseja definir os metadados zonais.
Veja a seguir um exemplo de saída para esta solicitação:
{ "fingerprint": "VlRIl8dx9vk=", "metadata": { ... } }
-
Para adicionar ou atualizar os metadados zonais, faça uma solicitação
PATCH
para o métodoinstanceSettings().patch
. Você deve fornecer o seguinte em sua solicitação:Uma máscara de atualização. Use o parâmetro de consulta
update_mask
. A máscara de atualização deve conter as chaves de metadados para o seguinte:- Os novos metadados zonais personalizados que você deseja adicionar
- Os metadados zonais personalizados existentes para os quais você deseja atualizar os valores
Você deve adicionar a sequência
metadata.items.
como um prefixo para cada chave — por exemplo,metadata.items.key1,metadata.items.key3
.No corpo da solicitação, forneça o seguinte:
- As chaves e os valores de metadados dos novos metadados zonais personalizados que você deseja adicionar
- As chaves e os valores de metadados dos metadados zonais personalizados existentes que você deseja 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 o seguinte:
-
PROJECT_ID
: o ID do projeto. -
ZONE
: a zona onde você deseja definir os metadados zonais. PREFIXED_METADATA_KEYS
: a lista de chaves de metadados para o seguinte, onde cada chave é prefixada com a stringmetadata.items.
:- Os novos metadados zonais personalizados que você deseja adicionar
- Os metadados zonais personalizados existentes para os quais você deseja atualizar os valores
Por exemplo, suponha que suas chaves de metadados zonais atuais em uma zona específica sejam
key-1
ekey-2
. Se você quiser adicionar uma nova chave,key-3
, para metadados zonais nessa zona e também atualizar os metadados zonais para uma das chaves existentes,key-1
, então sua 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 zonais personalizadas para as quais você deseja adicionar ou atualizar valores. Especifique todas as chaves de metadados zonais customizadas especificadas na máscara de atualização.VALUE1
,VALUE2
...: os valores de metadados zonais que você deseja definir para suas chaves de metadados personalizados existentes e novos. Dependendo da sua chave e valor de metadados personalizados, ocorrerá uma das seguintes situações:- Se a chave de metadados personalizada correspondente for uma chave existente que tenha metadados de projeto, então, na zona especificada, o Compute Engine substituirá o valor de metadados do projeto da chave pelo valor de metadados zonal especificado. Todas as VMs na zona especificada no projeto herdam esses metadados zonais recém-especificados para essa chave e as VMs em outras zonas continuam a reter seus valores de metadados zonais ou de projeto predominantes. Se você fizer atualizações futuras no valor de metadados do projeto para essa chave, as VMs nessa zona do projeto permanecerão inalteradas e continuarão a usar o valor de metadados zonais para essa chave.
- Se a chave de metadados personalizada correspondente for uma nova chave de metadados que não é usada para projetos existentes ou metadados zonais, o Compute Engine criará a chave de metadados personalizada e definirá esse 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 atualizará a entrada de metadados zonais com o novo valor.
Se o valor de metadados especificado for igual ao valor existente, a entrada de metadados zonais permanecerá inalterada.
- 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"
- 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"
- 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"
- Para novas VMs, você pode adicionar metadados personalizados quando a VM estiver sendo criada .
- Para VMs existentes, você pode adicionar ou atualizar 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 o seguinte:
- Expanda a seção Gerenciamento .
- Para adicionar vários pares de valores-chave aos seus metadados personalizados, na seção Metadados , clique em Adicionar item .
Para criar a VM, clique em Criar .
-
VM_NAME
: o nome da sua VM -
ZONE
: a zona para criar a VM -
IMAGE_PROJECT
: o projeto que contém a imagem a ser usada para a VM IMAGE_FLAG
: especifique um dos seguintes:Use o sinalizador
--image IMAGE_NAME
para especificar uma versão específica de uma imagem pública.Por exemplo,
--image debian-12-bookworm-v20241112
.Use o sinalizador
--image-family IMAGE_FAMILY_NAME
para especificar uma família de imagens .Isso cria a VM a partir da imagem de sistema operacional não obsoleta mais recente na família de imagens. Por exemplo, se você especificar
--image-family debian-12
, o Compute Engine usará a versão mais recente da imagem do sistema operacional na família de imagens Debian 12.
KEY
: o nome da sua chave de metadadosVALUE
: o valor armazenado para esta chave-
PROJECT_ID
: o ID do seu projeto -
ZONE
: zona para criar a VM -
MACHINE_TYPE
: tipo de máquina, predefinida ou customizada , para a nova VM -
VM_NAME
: nome da nova VM -
KEY
: o nome da sua chave de metadados -
VALUE
: o valor armazenado para esta chave - No console do Google Cloud, acesse a página de instâncias de VM .
- Clique na instância para a qual você deseja 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.
- Salve suas alterações.
-
VM_NAME
: o nome da sua VM -
KEY
: o nome da sua chave de metadados -
VALUE
: o valor armazenado para esta chave Obtenha a impressão digital atual e visualize quaisquer pares de valores-chave existentes para a VM. Para fazer isso, chame o método
instances().get
.Uma impressão digital é uma sequência aleatória de caracteres gerada pelo Compute Engine e é usada para realizar o bloqueio otimista. Para atualizar a VM, você precisa fornecer o valor da impressão digital correspondente. A impressão digital muda após cada solicitação e, se você fornecer uma impressão digital incompatível, 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 o seguinte:
-
PROJECT_ID
: o ID do seu projeto -
ZONE
: a zona onde sua VM está localizada -
VM_NAME
: nome da sua VM
A saída é semelhante à seguinte:
{ ... "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 do valor atualfingerprint
.Se a VM tiver pares de valores-chave existentes que você deseja manter, você deverá incluí-los nesta solicitação com os novos pares de valores-chave.
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 sua VM está localizada -
VM_NAME
: nome da sua VM
-
- Remover metadados personalizados do projeto para remover metadados personalizados que foram definidos para todas as VMs em um projeto.
- Remova metadados zonais personalizados para remover metadados personalizados que foram definidos para todas as VMs em uma zona específica de um projeto.
- Remova os metadados da instância personalizada para remover os metadados da VM que foram definidos para uma VM específica.
No console do Google Cloud, acesse a página Metadados .
Clique em
Editar na parte superior da página.Navegue até a entrada de metadados que deseja remover e clique no botão
ao lado dessa entrada.Repita esta etapa para cada entrada de metadados que você deseja remover.
Para concluir a remoção das entradas de metadados do projeto personalizado, clique em Salvar .
- Se desejar remover as entradas de metadados personalizados para chaves específicas, especifique essas chaves usando o sinalizador
--keys
e exclua os valores dessas chaves. - Se você quiser remover todos os metadados personalizados da VM, especifique o sinalizador
--all
. -
KEY1
,KEY2
...: as chaves de metadados da instância personalizada que você deseja remover. -
PROJECT_ID
: o ID do seu projeto -
ZONE
: a zona onde você deseja remover os metadados zonais. -
KEY1
,KEY2
...: as chaves de metadados zonais personalizados que você deseja remover. - 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"
-
"key-1":"value-a"
-
"key-2":"value-b"
-
"key-3":"value-c"
Obtenha a impressão digital atual e visualize quaisquer pares de valores-chave existentes para o projeto nessa zona.
Para realizar o bloqueio otimista, você deve fornecer uma impressão digital. Uma impressão digital é uma sequência aleatória de caracteres gerada pelo Compute Engine. A impressão digital muda sempre que você faz uma solicitação para adicionar, atualizar ou remover metadados zonais e, se você fornecer uma impressão digital incompatível, o Compute Engine rejeitará sua solicitação.
Se você não fornecer uma impressão digital, uma verificação de consistência será realizada e sua solicitação de exclusão não será bem-sucedida. Isso funciona para que apenas uma solicitação possa ser feita por vez, evitando colisões. Esse comportamento corresponde
instances().setMetadata
, onde uma impressão digital é sempre necessária.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 você deseja remover os metadados zonais.
Veja a seguir um exemplo de saída para esta solicitação:
{ "fingerprint": "FikclA7UBC0=", "metadata": { ... } }
-
Para remover metadados zonais personalizados, faça uma solicitação
PATCH
para oinstanceSettings().patch
excluindo as chaves de metadados, para as quais você deseja remover os metadados zonais, do corpo da solicitação. Você deve fornecer o seguinte em sua solicitação:Uma máscara de atualização. Use o parâmetro de consulta
update_mask
. A máscara de atualização deve conter todas as chaves de metadados personalizados existentes cujos metadados zonais você deseja remover. Você deve adicionar a sequênciametadata.items.
como um 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 especificadas na máscara de atualização. Se você incluir qualquer uma das chaves de metadados na máscara de atualização e no corpo da solicitação, o Compute Engine não removerá 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 você deseja remover os metadados zonais. PREFIXED_METADATA_KEYS
: a lista de todas as chaves de metadados personalizados existentes das quais você deseja remover metadados zonais, onde 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 qualquer uma das chaves de metadados na máscara de atualização e no corpo da solicitação, o Compute Engine não removerá os metadados zonais dessas chaves.Por exemplo, suponha que suas chaves de metadados atuais com metadados zonais sejam
key-1
,key-2
,key-3
ekey-4
, e você queira remover as entradas de metadados zonais parakey-1
ekey-2
, então sua 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 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"
- 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"
- No console do Google Cloud, acesse a página de instâncias de VM .
- Na coluna Nome , clique no nome da VM da qual você deseja remover metadados.
- Clique em Editar na parte superior da página.
- Na seção Metadados , clique em Excluir item para cada uma das entradas de metadados que você deseja remover.
- Para confirmar suas alterações e remover os metadados da instância personalizada, clique em Salvar .
- Se desejar remover as entradas de metadados personalizados para chaves específicas, especifique essas chaves usando o sinalizador
--keys
e exclua os valores dessas chaves. - Se você quiser remover todos os metadados personalizados da VM, especifique o sinalizador
--all
. -
PROJECT_ID
: seu ID do projeto. -
ZONE
: a zona da sua VM. -
VM_NAME
: nome da sua VM -
KEY1
,KEY2
...: as chaves de metadados da instância personalizada que você deseja remover. Obtenha a impressão digital atual e visualize quaisquer pares de valores-chave existentes para a VM. Para fazer isso, chame o método
instances().get
.Uma impressão digital é uma sequência aleatória de caracteres gerada pelo Compute Engine e é usada para realizar o bloqueio otimista. Para atualizar a VM, você precisa fornecer o valor da impressão digital correspondente. A impressão digital muda após cada solicitação e, se você fornecer uma impressão digital incompatível, 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 o seguinte:
-
PROJECT_ID
: seu ID do projeto. -
ZONE
: a zona da sua VM. -
VM_NAME
: nome da sua VM
A saída é semelhante à 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 uma solicitação ao método
instances().setMetadata
. Você deve incluir o valor atual da impressão digital de metadados para que sua solicitação seja bem-sucedida.Para remover todos os pares de valores-chave de metadados personalizados de uma VM, na propriedade
items
, exclua as chaves de metadados das quais você deseja 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 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 o seguinte:
-
PROJECT_ID
: seu ID do projeto. -
ZONE
: a zona da sua VM. -
VM_NAME
: nome da sua VM -
FINGER_PRINT
: o valor atual da impressão digital. -
KEY1
,KEY2
...: as chaves de metadados da instância personalizada que você deseja remover. -
VALUE1
,VALUE2
...: os valores das chaves de metadados da instância personalizada que você deseja remover.
- Saiba mais sobre metadados de VM .
- Saiba como visualizar e consultar metadados .
- Saiba mais sobre como executar scripts de inicialização ou scripts de desligamento 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.
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Funções obrigatórias
Para obter as permissões necessárias para definir ou remover metadados personalizados em VMs, peça ao administrador para conceder a você as seguintes funções do IAM:
Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .
Estas funções predefinidas contêm as permissões necessárias para definir ou remover metadados personalizados em VMs. Para ver as permissões exatas necessárias, expanda a seção Permissões necessárias :
Permissões necessárias
As seguintes permissões são necessárias para definir ou remover metadados personalizados em VMs:
Você também poderá obter essas permissões com funções personalizadas ou outras funções predefinidas .
Limitações
O Compute Engine impõe 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 cada
key
evalue
da seguinte maneira:Por exemplo, as chaves SSH são armazenadas como metadados personalizados na chave
ssh-keys
. Se o conteúdo ouvalue
dos metadados dessa chave exceder o limite de 256 KB, você não poderá adicionar mais chaves SSH. Se você atingir esse limite, considere remover chaves não utilizadas para liberar espaço de metadados para novas chaves.Além disso, se você fornecer o conteúdo do script de inicialização ou encerramento diretamente, o conteúdo desses scripts de inicialização e encerramento também poderá ser armazenado como metadados customizados e contado para 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 baixados na VM, em vez de armazenados no servidor de metadados.
Valores booleanos
Para campos que aceitam valores booleanos,
TRUE
ouFALSE
, os seguintes valores também podem ser utilizados:Status Valores alternativos TRUE
Y
,Yes
,1
FALSE
N
,No
,0
Os valores booleanos não diferenciam maiúsculas de minúsculas. Por exemplo, você pode usar
False
,false
ouFALSE
para desabilitar um recurso.Definir metadados personalizados em VMs
Esta seção fornece informações sobre como adicionar novos metadados personalizados ou atualizar valores de metadados personalizados existentes para suas VMs do Compute Engine de uma das seguintes maneiras:
Definir metadados de projeto personalizados
Você pode adicionar ou atualizar os metadados personalizados para 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 do projeto
baz=bat
, esse par de metadados 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 o seguinte:
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, você pode especificar um ou mais arquivos dos quais os metadados serão lidos usando o sinalizador
--metadata-from-file
.DESCANSAR
Substitua
PROJECT_ID
pelo ID do seu projeto.Definir metadados zonais personalizados
Ao definir metadados zonais personalizados, você adiciona ou atualiza as entradas de metadados zonais para suas VMs em uma zona específica de um projeto. Você pode fazer o seguinte definindo metadados zonais personalizados:
Coisas a serem observadas antes de definir metadados zonais personalizados
As entradas de metadados de projeto e de zona são armazenadas no mesmo diretório
project/
. Se você definir valores diferentes para as mesmas chaves de metadados personalizados para VMs em nível de projeto e em nível zonal, os valores de metadados zonais para essas chaves terão precedência sobre os valores de metadados do projeto nas respectivas zonas.Procedimento
Você pode adicionar ou atualizar os metadados zonais personalizados em uma zona específica de um projeto usando a Google Cloud CLI ou REST.
gcloud
Exemplo: Adicionar uma nova entrada de metadados zonais personalizados
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 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-a
Exemplo: Atualizar os valores de uma entrada de metadados zonais personalizados existente
Considere o mesmo projeto de exemplo
my-project
, que agora possui os seguintes metadados personalizados:Para atualizar os valores de metadados zonais 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: Substitua o valor de metadados do projeto por uma chave e use um valor de metadados zonal
Considere o mesmo projeto de exemplo
my-project
, que agora possui os seguintes metadados personalizados:Neste projeto de exemplo, considere
key-3
, que tem um valor de metadados de projeto devalue-c
. Suponha que você queira definir um valor de metadados zonalvalue-3
para esta chave para todas as VMs na zonaus-central1-a
. Ao realizar 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 retêm os valores predominantes de projeto ou metadados zonais parakey-3
.Para substituir o valor de metadados do projeto para
key-3
e 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-a
DESCANSAR
Exemplo: Adicionar uma nova entrada de metadados zonais personalizados
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 zonais personalizados na zonaus-central1-a
, 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-4 { "fingerprint": "VlRIl8dx9vk=", "metadata": { "items": { "key-4": "value-4" } } }
Exemplo: Atualizar os valores de uma entrada de metadados zonais personalizados existente
Considere o mesmo projeto de exemplo
my-project
, que agora possui os seguintes metadados personalizados:Para atualizar os valores de metadados zonais 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 dos metadados do projeto por uma chave e definir um valor de metadados zonal
Considere o mesmo projeto de exemplo
my-project
, que agora possui os seguintes metadados personalizados:Neste projeto de exemplo, considere
key-3
, que tem um valor de metadados de projeto devalue-c
. Suponha que você queira definir um valor de metadados zonalvalue-3
para esta chave para todas as VMs na zonaus-central1-a
. Ao realizar 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 retêm os valores predominantes de projeto ou metadados zonais parakey-3
.Para substituir o valor de metadados do projeto para
key-3
e usar o valor de metadados zonalvalue-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
Você pode adicionar ou atualizar os metadados personalizados para uma única instância de VM usando o console do Google Cloud, a CLI do Google Cloud ou REST.
Você pode definir metadados de instância personalizados de uma das seguintes maneiras:
Adicione metadados de instância personalizados durante a criação da VM
Use estas instruções para adicionar metadados em uma instância de VM específica no momento de sua 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 \ --zone=ZONE \ --image-project=IMAGE_PROJECT \ IMAGE_FLAG \ --metadata=KEY=VALUE
Substitua o seguinte:
Exemplo
Por exemplo, para definir um novo
env
de chave que tenha um valortest
em uma VM chamadaexample-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
DESCANSAR
Use o método
instances.insert
e forneça os metadados personalizados como parte da propriedademetadata
em sua 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 o seguinte:
Adicionar ou atualizar metadados de instância personalizados em uma VM existente
Use estas instruções para atualizar metadados em uma instância de VM específica que já existe.
Console
gcloud
A atualização dos metadados da VM com a CLI gcloud é uma ação adicional. Especifique apenas as chaves de metadados que você deseja adicionar ou alterar. Se uma chave fornecida já existir, o valor dessa chave será atualizado com o novo valor.
Use o comando
instances add-metadata
:gcloud compute instances add-metadata VM_NAME \ --metadata=KEY=VALUE,KEY=VALUE
Substitua o seguinte:
Exemplos
Se você quiser adicionar a entrada
foo=bar
, use:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bar
Se você quiser alterar a entrada
foo=bar
parafoo=bat
, use:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bat
DESCANSAR
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 metadados personalizados do projeto
Você pode 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 o seguinte:
Remover metadados zonais personalizados
Você pode remover metadados zonais personalizados usando a Google Cloud CLI ou REST.
gcloud
Para remover metadados zonais personalizados, use o comando
gcloud compute project-zonal-metadata remove
e especifique todas as chaves de metadados que você deseja remover usando a sinalização--keys
.gcloud compute project-zonal-metadata remove \ --project=PROJECT_ID \ --zone=ZONE \ --keys=KEY1,KEY2,...
Substitua o seguinte:
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 de metadados do projeto. Se a entrada de metadados tiver sido definida apenas a nível zonal e não houver um valor de metadados de projeto correspondente para essa chave, os VMs nessa zona perderão essas informações de metadados.
Exemplo:
Considere um projeto de exemplo
my-project
, que possui os seguintes metadados de projeto personalizados: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-a
Depois de executar o comando, as VMs na zona
us-central1-a
possuem as seguintes entradas de metadados de projeto personalizados:DESCANSAR
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 de metadados do projeto. Se a chave de metadados tiver sido definida apenas a nível zonal e não houver um valor de metadados de projeto correspondente para essa chave, os VMs nessa zona perderão essas informações de metadados.
Exemplo:
Considere um projeto de exemplo
my-project
, que possui os seguintes metadados de projeto personalizados:Para remover os metadados zonais para
key-1
ekey-2
na zonaus-central1-a
, faça a seguinte solicitaçãoPATCH
.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 a conclusão dessa solicitação, as VMs na zona
us-central1-a
possuem os seguintes metadados personalizados. As VMs herdam os valores de metadados do projeto parakey-1
ekey-2
, mas retêm os metadados zonais parakey-3
ekey-4
.Remover metadados de instância personalizados
Você pode remover metadados de instância personalizados usando o console do Google Cloud, a Google Cloud CLI ou REST.
Console
gcloud
Para remover metadados de instância personalizados, 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 o seguinte:
DESCANSAR
O que vem 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 2025-04-21 UTC.
-