Este documento explica como impedir que as instâncias do Compute Engine consumam reservas. Para saber mais sobre as reservas, consulte o artigo Reservas de recursos zonais do Compute Engine.
As reservas consumidas automaticamente permitem que as instâncias com propriedades que correspondem às reservas as consumam automaticamente. Para impedir que as instâncias consumam uma reserva, faça o seguinte:
Configure as instâncias para não consumirem reservas, conforme descrito neste documento.
Criar ou atualizar instâncias com propriedades que não correspondem à reserva.
Pode evitar o consumo de reservas quando quiser usar as suas instâncias para tarefas como testes, depuração ou implementações isoladas.
Limitações
Só pode atualizar uma instância existente para não consumir reservas se a instância estiver configurada para consumir automaticamente reservas correspondentes.
Antes de começar
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud init
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
Ir
Para usar os Go exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Set up authentication for a local development environment.
Java
Para usar os Java exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Set up authentication for a local development environment.
Node.js
Para usar os Node.js exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Set up authentication for a local development environment.
Python
Para usar os Python exemplos nesta página num ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e, em seguida, configure as Credenciais predefinidas da aplicação com as suas credenciais de utilizador.
Instale a CLI Google Cloud.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Para mais informações, consulte Set up authentication for a local development environment.
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.
Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.
Funções necessárias
Para receber as autorizações de que precisa para impedir que uma instância de computação consuma reservas, peça ao seu administrador para lhe conceder a função IAM Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
) no projeto. Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.Esta função predefinida contém as autorizações necessárias para impedir que uma instância de computação consuma reservas. 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 impedir que uma instância de computação consuma reservas:
-
Para criar reservas:
compute.reservations.create
no projeto -
Para criar instâncias:
compute.instances.create
no projeto- Para usar uma imagem personalizada para criar a VM:
compute.images.useReadOnly
na imagem - Para usar um instantâneo para criar a VM:
compute.snapshots.useReadOnly
no instantâneo - Para usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnly
no modelo de instância - Para atribuir uma rede antiga à VM:
compute.networks.use
no projeto - Para especificar um endereço IP estático para a VM:
compute.addresses.use
no projeto - Para atribuir um endereço IP externo à VM quando usar uma rede antiga:
compute.networks.useExternalIp
no projeto - Para especificar uma sub-rede para a VM:
compute.subnetworks.use
no projeto ou na sub-rede escolhida - Para atribuir um endereço IP externo à VM quando usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida - Para definir os metadados da instância de VM para a VM:
compute.instances.setMetadata
no projeto - Para definir etiquetas para a VM:
compute.instances.setTags
na VM - Para definir etiquetas para a VM:
compute.instances.setLabels
na VM - Para definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccount
na VM - Para criar um novo disco para a VM:
compute.disks.create
no projeto - Para anexar um disco existente no modo de leitura ou leitura/escrita:
compute.disks.use
no disco - Para anexar um disco existente no modo de leitura:
compute.disks.useReadOnly
no disco
-
Para criar modelos de instâncias:
compute.instanceTemplates.create
no projeto
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Impeça o consumo de reservas
Para impedir que uma instância de computação consuma reservas, defina a respetiva propriedade de afinidade de reserva (
reservationAffinity
) para não consumir reservas. Esta propriedade controla se uma instância pode consumir reservas correspondentes, uma reserva específica ou nenhuma reserva.Para impedir que uma ou mais instâncias consumam reservas, use um dos seguintes métodos:
Impedir o consumo numa instância existente
Pode atualizar uma instância em execução para que deixe de consumir automaticamente reservas. Tem de reiniciar a instância para que as alterações entrem em vigor, conforme descrito nesta secção.
Para impedir que uma instância existente consuma reservas, selecione uma das seguintes opções:
gcloud
Crie um ficheiro YAML vazio.
Para exportar as propriedades de uma instância para o ficheiro YAML que acabou de criar, use o comando
gcloud compute instances export
:gcloud compute instances export INSTANCE_NAME \ --destination=YAML_FILE \ --zone=ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.YAML_FILE
: o caminho para o ficheiro YAML vazio que criou no passo anterior.ZONE
: a zona onde a instância existe.
No ficheiro de configuração YAML, defina
consumeReservationType
comoNO_RESERVATION
:reservationAffinity: consumeReservationType: NO_RESERVATION
Para atualizar a instância e reiniciá-la, use o comando
gcloud compute instances update-from-file
com a flag--most-disruptive-allowed-action
definida comoRESTART
:gcloud compute instances update-from-file INSTANCE_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.YAML_FILE
: o caminho para o ficheiro YAML com os dados de configuração que modificou no passo anterior.ZONE
: a zona onde a instância existe.
REST
Para ver as propriedades de uma instância existente, faça um pedido
GET
ao métodoinstances.get
:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde criou a instância.ZONE
: a zona onde a instância existe.INSTANCE_NAME
: o nome da instância.
Armazene o resultado do pedido
GET
num ficheiro ou num editor de texto. Modifique o resultado copiado para alterar o campoconsumeReservationType
paraNO_RESERVATION
:{ ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Para atualizar a instância e reiniciá-la, faça um pedido
PUT
ao métodoinstances.update
. Na solicitação, faça o seguinte:No URL do pedido, inclua o parâmetro de consulta
mostDisruptiveAllowedAction
definido comoRESTART
.Para o corpo do pedido, use o resultado do pedido
GET
que editou num passo anterior.
O pedido é semelhante ao seguinte exemplo:
PUT https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central-1/instances/instance-01?mostDisruptiveAllowedAction=RESTART { ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Para mais informações sobre a atualização de uma instância, consulte o artigo Atualize as propriedades da instância.
Impeça o consumo durante a criação de uma instância
Para criar uma instância de computação que não possa consumir reservas, selecione uma das seguintes opções:
Consola
Na Google Cloud consola, aceda à página Criar uma instância.
No campo Nome, introduza um nome para a instância.
Nas listas Região e Zona, selecione a região e a zona nas quais criar a instância.
Especifique o tipo de máquina a usar para a instância.
No menu de navegação, clique em Avançadas.
Na secção Reservas, selecione Não usar reserva.
Clique em Criar.
gcloud
Para criar uma instância que não possa consumir reservas, use o comando
gcloud compute instances create
com a flag--reservation-affinity
definida comonone
:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none \ --zone=ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.MACHINE_TYPE
: o tipo de máquina a usar para a instância.ZONE
: a zona na qual criar a instância.
Ir
Para criar uma instância que não possa consumir reservas, use o seguinte exemplo de código:
Java
Para criar uma instância que não possa consumir reservas, use o seguinte exemplo de código:
Node.js
Para criar uma instância que não possa consumir reservas, use o seguinte exemplo de código:
Python
Para criar uma instância que não possa consumir reservas, use o seguinte exemplo de código:
REST
Para criar uma instância que não possa consumir reservas, faça um pedido
POST
ao métodoinstances.insert
. No corpo do pedido, inclua o campoconsumeReservationType
definido comoNO_RESERVATION
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "INSTANCE_NAME", "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde quer criar a instância.ZONE
: a zona na qual criar a instância.INSTANCE_NAME
: o nome da instância.MACHINE_TYPE
: o tipo de máquina a usar para a instância.IMAGE_PROJECT
: o projeto de imagem que contém a imagem do SO; por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.IMAGE
: especifique uma das seguintes opções:Uma versão específica da imagem do SO; por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens, que tem de estar formatada como
family/IMAGE_FAMILY
. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificarfamily/debian-12
, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.
Para mais informações sobre como criar uma instância, consulte o artigo Crie e inicie uma instância do Compute Engine.
Impeça o consumo enquanto cria instâncias em massa
Para criar instâncias de computação em massa que não podem consumir reservas, selecione uma das seguintes opções:
gcloud
Para criar instâncias em massa que não podem consumir reservas, use o comando
gcloud compute instances bulk create
com a flag--reservation-affinity
definida comonone
.Por exemplo, para criar instâncias em massa numa única zona e especificar um padrão de nome, execute o seguinte comando:
gcloud compute instances bulk create \ --count=COUNT \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --reservation-affinity=none \ --zone=ZONE
Substitua o seguinte:
COUNT
: o número de instâncias a criar.MACHINE_TYPE
: o tipo de máquina a usar para as instâncias.NAME_PATTERN
: o padrão de nome para as instâncias. Para substituir uma sequência de números num nome de instância, use uma sequência de carateres de cardinal (#
). Por exemplo, usarinstance-#
para o padrão de nome gera instâncias com nomes que começam porinstance-1
,instance-2
, e continuam até ao número de instâncias especificado porCOUNT
.ZONE
: a zona na qual criar instâncias em massa.
REST
Para criar instâncias em massa que não podem consumir reservas, faça um
POST
pedido ao métodoinstances.bulkInsert
. No corpo do pedido, inclua o campoconsumeReservationType
definido comoNO_RESERVATION
.Por exemplo, para criar instâncias em massa numa única zona e especificar um padrão de nome, faça um pedido da seguinte forma:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert { "count": COUNT, "namePattern": "NAME_PATTERN", "instanceProperties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto no qual criar instâncias em massa.ZONE
: a zona na qual criar instâncias em massa.COUNT
: o número de instâncias a criar.NAME_PATTERN
: o padrão de nome para as instâncias. Para substituir uma sequência de números num nome de instância, use uma sequência de carateres de cardinal (#
). Por exemplo, usarinstance-#
para o padrão de nome gera instâncias com nomes que começam porinstance-1
,instance-2
, e continuam até ao número de instâncias especificado porCOUNT
.MACHINE_TYPE
: o tipo de máquina a usar para as instâncias.IMAGE_PROJECT
: o projeto de imagem que contém a imagem do SO; por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.IMAGE
: especifique uma das seguintes opções:Uma versão específica da imagem do SO; por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens, que tem de estar formatada como
family/IMAGE_FAMILY
. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificarfamily/debian-12
, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.
Para mais informações sobre como criar instâncias em massa, consulte o artigo Crie VMs em massa.
Impeça o consumo durante a criação de um modelo de instância
Depois de criar um modelo de instância que configure as instâncias para não consumirem reservas, pode usar o modelo para fazer o seguinte:
Impedir que as instâncias de computação num grupo de instâncias geridas (MIG) consumam reservas quando fizer o seguinte:
Para criar um modelo de instância que configure as instâncias para não consumirem reservas, selecione uma das seguintes opções:
Consola
Na Google Cloud consola, aceda à página Criar um modelo de instância.
No campo Nome, introduza um nome para o modelo de instância.
Na secção Localização, especifique se quer criar um modelo de instância regional (predefinição) ou global.
Na secção Configuração da máquina, especifique o tipo de máquina a usar para as instâncias criadas com o modelo.
Expanda a secção Opções avançadas e, de seguida, faça o seguinte:
Expanda a secção Gestão.
Na secção Reservas, selecione Não usar reserva.
Clique em Criar.
gcloud
Para criar um modelo de instância que configure as instâncias para não consumirem reservas, use o comando
gcloud compute instances-templates create
com a flag--reservation-affinity
definida comonone
.Para criar um modelo de instância regional que configure as instâncias para não consumirem reservas, execute o seguinte comando. Se quiser criar um modelo de instância global, use o mesmo comando sem a flag
--instance-template-region
.gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none
Substitua o seguinte:
INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.REGION
: a região na qual criar o modelo de instância.MACHINE_TYPE
: o tipo de máquina a usar para as instâncias criadas com o modelo de instância.
Ir
Para criar um modelo de instância que configure as instâncias para não consumirem reservas, use o seguinte exemplo de código:
Java
Para criar um modelo de instância que configure as instâncias para não consumirem reservas, use o seguinte exemplo de código:
Node.js
Para criar um modelo de instância que configure as instâncias para não consumirem reservas, use o seguinte exemplo de código:
Python
Para criar um modelo de instância que configure as instâncias para não consumirem reservas, use o seguinte exemplo de código:
REST
Para criar um modelo de instância que configure as instâncias para não consumirem reservas, faça um pedido
POST
a um dos seguintes métodos:Para criar um modelo de instância global:
instanceTemplates.insert
method.Para criar um modelo de instância regional:
regionInstanceTemplates.insert
method.
No corpo do pedido, inclua o campo
consumeReservationType
e defina-o comoNO_RESERVATION
.Por exemplo, para criar um modelo de instância regional e especificar que não use reservas, faça um pedido da seguinte forma:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/InstanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "networkInterfaces": [ { "network": "global/networks/default" } ], "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" } } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto no qual criar o modelo de instância.INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.MACHINE_TYPE
: o tipo de máquina a usar para as instâncias criadas com o modelo de instância.IMAGE_PROJECT
: o projeto de imagem que contém a imagem do SO; por exemplo,debian-cloud
. Para mais informações sobre os projetos de imagens suportados, consulte o artigo Imagens públicas.IMAGE
: especifique uma das seguintes opções:Uma versão específica da imagem do SO; por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens, que tem de estar formatada como
family/IMAGE_FAMILY
. Isto especifica a imagem do SO não descontinuada mais recente. Por exemplo, se especificarfamily/debian-12
, é usada a versão mais recente na família de imagens do Debian 12. Para mais informações sobre a utilização de famílias de imagens, consulte o artigo Práticas recomendadas para famílias de imagens.
Para mais informações sobre como criar modelos de instâncias, consulte o artigo Crie modelos de instâncias.
O que se segue?
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.
-