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 Trusted Cloud by S3NS 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:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
- Set a default region and zone.
REST
Para 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 e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.
Funções necessárias
Para 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árias
Sã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ções
As entradas de metadados de VMs têm as seguintes limitações.
Limitações de tamanho
O 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
key
evalue
da seguinte forma:- Cada metadado
key
tem um limite máximo de 128 bytes. - Cada metadado
value
tem um limite máximo de 256 KB.
Por exemplo, as chaves SSH são armazenadas como metadados personalizados na chave
ssh-keys
key. Se o conteúdo dos metadados ouvalue
desta 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-key
para metadados zonais numa zona específica, não pode criar novas chaves de metadados zonais que sejam variações da mesma string, comoZonal-Metadata-Key
ouZONAL-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 booleanos
Para campos que aceitam valores booleanos,
TRUE
ouFALSE
, também pode usar os seguintes valores:Estado Valores alternativos TRUE
Y
,Yes
,1
FALSE
N
,No
,0
Os valores booleanos não são sensíveis a maiúsculas e minúsculas. Por exemplo, pode usar
False
,false
ouFALSE
para desativar uma funcionalidade.Defina metadados personalizados em VMs
Esta 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 projeto
Pode 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. Trusted 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 Trusted 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.
gcloud
Use o comando
project-info add-metadata
.gcloud compute project-info add-metadata \ --metadata=KEY=VALUE
Substitua o seguinte:
KEY
: o nome da chave de metadadosVALUE
: o valor armazenado para esta chave
Exemplo
Por exemplo, para definir duas novas entradas
foo=bar
ebaz=bat
num projeto, execute o seguinte comando:gcloud compute project-info add-metadata \ --metadata=foo=bar,baz=bat
Opcionalmente, 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étodosinstances().setMetadata
einstanceSettings().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.s3nsapis.fr/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().setCommonInstanceMetadata
e defina os seus pares de chave-valor de metadados personalizados:POST https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/setCommonInstanceMetadata { "fingerprint": "FikclA7UBC0=", "items": [ { "key": "foo", "value": "bar" } ] }
Substitua
PROJECT_ID
pelo ID do seu projeto.Defina metadados zonais personalizados
Quando 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 personalizados
As 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
/project
com 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
/project
na 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.
Procedimento
Pode 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 projetoZONE
: 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 personalizados
Por exemplo, considere um projeto denominado
my-project
com 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-a
Exemplo: atualize os valores de uma entrada de metadados zonais personalizada existente
Considere 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-1
ekey-4
na zonaus-cerntral1-a
com 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-a
Exemplo: substitua o valor de metadados do projeto para uma chave e use um valor de metadados zonal
Considere 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-3
para 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-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
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 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
GET
pedido ao métodoinstanceSettings().get
.GET https://compute.s3nsapis.fr/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceSettings
Substitua o seguinte:
PROJECT_ID
: o ID do seu projetoZONE
: 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
PATCH
ao métodoinstanceSettings().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.s3nsapis.fr/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 stringmetadata.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-1
ekey-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 personalizados
Por exemplo, considere um projeto denominado
my-project
com 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.s3nsapis.fr/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 existente
Considere 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-1
ekey-4
na zonaus-cerntral1-a
com novos valores, faça o seguinte pedidoPATCH
:PATCH https://compute.s3nsapis.fr/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 zonal
Considere 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-3
para 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-3
e usar o valor de metadados zonalvalue-3
, faça o seguinte pedidoPATCH
:PATCH https://compute.s3nsapis.fr/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 personalizados
Pode adicionar ou atualizar os metadados personalizados de uma única instância de VM através da Trusted 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 VMs
Use estas instruções para adicionar metadados a uma instância de VM específica no momento da respetiva criação.
Consola
Na Trusted 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.
gcloud
Para definir metadados personalizados, use o comando
gcloud compute instances create
com 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 VMZONE
: a zona na qual criar a VMIMAGE_PROJECT
: o projeto que contém a imagem a usar para a VMIMAGE_FLAG
: especifique uma das seguintes opções:Use a flag
--image IMAGE_NAME
para 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_NAME
para 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 metadadosVALUE
: o valor armazenado para esta chave
Exemplo
Por exemplo, para definir uma nova chave
env
com um valortest
numa 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
REST
Use o método
instances.insert
e forneça os metadados personalizados como parte da propriedademetadata
no seu pedido:POST https://compute.s3nsapis.fr/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 projetoZONE
: zona na qual criar a VMMACHINE_TYPE
: tipo de máquina, predefinido ou personalizado, para a nova VMVM_NAME
: name da nova VMKEY
: o nome da chave de metadadosVALUE
: o valor armazenado para esta chave
Adicione ou atualize metadados de instâncias personalizados numa VM existente
Use estas instruções para atualizar os metadados numa instância de VM específica que já existe.
Consola
- Na Trusted 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.
gcloud
A 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=VALUE
Substitua o seguinte:
VM_NAME
: o nome da sua VMKEY
: o nome da chave de metadadosVALUE
: o valor armazenado para esta chave
Exemplos
Se quiser adicionar a entrada
foo=bar
, use:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bar
Se quiser alterar a entrada
foo=bar
parafoo=bat
, use:gcloud compute instances add-metadata VM_NAME \ --metadata=foo=bat
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.s3nsapis.fr/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMESubstitua o seguinte:
PROJECT_ID
: o ID do seu projetoZONE
: a zona onde a sua VM está localizadaVM_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 valorfingerprint
atual.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.s3nsapis.fr/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 projetoZONE
: a zona onde a sua VM está localizadaVM_NAME
: nome da sua VM
Remova metadados personalizados de VMs
Esta 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 personalizados
Pode remover metadados de projetos personalizados através da Trusted Cloud consola ou da CLI Google Cloud.
Consola
Na Trusted 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.
gcloud
Para 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
--keys
e 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 \ --all
Substitua o seguinte:
KEY1
,KEY2
...: as chaves de metadados de instâncias personalizadas que quer remover.
Remova metadados zonais personalizados
Pode remover metadados zonais personalizados através da CLI Google Cloud ou do REST.
gcloud
Para remover metadados zonais personalizados, use o comando
gcloud compute project-zonal-metadata remove
e 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 projetoZONE
: 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-a
Depois de executar o comando, as VMs na zona
us-central1-a
tê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.s3nsapis.fr/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceSettings
Substitua o seguinte:
PROJECT_ID
: o ID do seu projetoZONE
: 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().patch
método excluindo as chaves de metadados para as quais quer remover os metadados zonais do corpo do pedido.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 todas as chaves de metadados personalizados existentes para as quais quer remover os metadados zonais. Tem de adicionar a stringmetadata.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.s3nsapis.fr/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 stringmetadata.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-3
ekey-4
, e quer remover as entradas de metadados zonais parakey-1
ekey-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-1
ekey-2
na zonaus-central1-a
, faça o seguinte pedidoPATCH
.PATCH https://compute.s3nsapis.fr/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-a
têm 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
.- 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 personalizadas
Pode remover metadados de instâncias personalizadas através da Trusted Cloud consola, da Google Cloud CLI ou da API REST.
Consola
- Na Trusted 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.
gcloud
Para 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
--keys
e 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 \ --all
Substitua o seguinte:
PROJECT_ID
: o ID do seu projeto.ZONE
: a zona da sua VM.VM_NAME
: nome da sua VMKEY1
,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.s3nsapis.fr/compute/v1/projects/
PROJECT_ID
/zones/ZONE
/instances/VM_NAMESubstitua 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.s3nsapis.fr/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
items
por completo.POST https://compute.s3nsapis.fr/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 VMFINGER_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-09-30 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-30 UTC."],[],[],null,[]] -