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 initSe estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
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.createno projeto -
Para criar instâncias:
compute.instances.createno projeto- Para usar uma imagem personalizada para criar a VM:
compute.images.useReadOnlyna imagem - Para usar um instantâneo para criar a VM:
compute.snapshots.useReadOnlyno instantâneo - Para usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnlyno modelo de instância - Para atribuir uma rede antiga à VM:
compute.networks.useno projeto - Para especificar um endereço IP estático para a VM:
compute.addresses.useno projeto - Para atribuir um endereço IP externo à VM quando usar uma rede antiga:
compute.networks.useExternalIpno projeto - Para especificar uma sub-rede para a VM:
compute.subnetworks.useno projeto ou na sub-rede escolhida - Para atribuir um endereço IP externo à VM quando usar uma rede VPC:
compute.subnetworks.useExternalIpno projeto ou na sub-rede escolhida - Para definir os metadados da instância de VM para a VM:
compute.instances.setMetadatano projeto - Para definir etiquetas para a VM:
compute.instances.setTagsna VM - Para definir etiquetas para a VM:
compute.instances.setLabelsna VM - Para definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccountna VM - Para criar um novo disco para a VM:
compute.disks.createno projeto - Para anexar um disco existente no modo de leitura ou leitura/escrita:
compute.disks.useno disco - Para anexar um disco existente no modo de leitura:
compute.disks.useReadOnlyno disco
-
Para criar modelos de instâncias:
compute.instanceTemplates.createno 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=ZONESubstitua 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
consumeReservationTypecomoNO_RESERVATION:reservationAffinity: consumeReservationType: NO_RESERVATIONPara atualizar a instância e reiniciá-la, use o comando
gcloud compute instances update-from-filecom a flag--most-disruptive-allowed-actiondefinida comoRESTART:gcloud compute instances update-from-file INSTANCE_NAME \ --most-disruptive-allowed-action=RESTART \ --source=YAML_FILE \ --zone=ZONESubstitua 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
GETao métodoinstances.get:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAMESubstitua 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
GETnum ficheiro ou num editor de texto. Modifique o resultado copiado para alterar o campoconsumeReservationTypeparaNO_RESERVATION:{ ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }Para atualizar a instância e reiniciá-la, faça um pedido
PUTao métodoinstances.update. Na solicitação, faça o seguinte:No URL do pedido, inclua o parâmetro de consulta
mostDisruptiveAllowedActiondefinido comoRESTART.Para o corpo do pedido, use o resultado do pedido
GETque 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 createcom a flag--reservation-affinitydefinida comonone:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none \ --zone=ZONESubstitua 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
POSTao métodoinstances.insert. No corpo do pedido, inclua o campoconsumeReservationTypedefinido 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 createcom a flag--reservation-affinitydefinida 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=ZONESubstitua 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
POSTpedido ao métodoinstances.bulkInsert. No corpo do pedido, inclua o campoconsumeReservationTypedefinido 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 createcom a flag--reservation-affinitydefinida 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=noneSubstitua 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
POSTa um dos seguintes métodos:Para criar um modelo de instância global:
instanceTemplates.insertmethod.Para criar um modelo de instância regional:
regionInstanceTemplates.insertmethod.
No corpo do pedido, inclua o campo
consumeReservationTypee 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-10-19 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-10-19 UTC."],[],[]] -