Este documento explica como evitar que instâncias do Compute Engine consumam reservas. Para saber mais sobre reservas, consulte Reservas de recursos zonais do Compute Engine .
As reservas consumidas automaticamente permitem que instâncias com propriedades que correspondam às reservas as consumam automaticamente. Para evitar que as instâncias consumam uma reserva, siga um destes procedimentos:
Configure instâncias para não consumir reservas, conforme descrito neste documento.
Crie ou atualize instâncias com propriedades que não correspondam à reserva.
Você pode evitar o consumo de reservas quando quiser usar suas instâncias para tarefas como testes, depuração ou implantações isoladas.
Limitações
Você só poderá atualizar uma instância existente para não consumir reservas se a instância estiver configurada para consumir reservas correspondentes automaticamente.
Antes de começar
- 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.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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, confirm that you have configured the gcloud CLI to use Workforce Identity Federation.
- 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 legada à 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 ao usar uma rede legada:
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 ao usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida - Para definir metadados de instância de VM para a VM:
compute.instances.setMetadata
no projeto - Para definir tags para a VM:
compute.instances.setTags
na VM - Para definir rótulos 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 somente leitura ou leitura-gravação:
compute.disks.use
no disco - Para anexar um disco existente no modo somente leitura:
compute.disks.useReadOnly
no disco
-
- Para criar modelos de instância:
compute.instanceTemplates.create
no projeto Crie um arquivo YAML vazio.
Para exportar as propriedades de uma instância para o arquivo YAML que você 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 arquivo YAML vazio que você criou na etapa anterior.ZONE
: a zona onde a instância existe.
No arquivo de configuração YAML, configure
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 sinalização--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 arquivo YAML com os dados de configuração que você modificou na etapa anterior.ZONE
: a zona onde a instância existe.
Para visualizar as propriedades de uma instância existente, faça uma solicitação
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 você criou a instância.ZONE
: a zona onde a instância existe.INSTANCE_NAME
: o nome da instância.
Armazene a saída da solicitação
GET
em um arquivo ou editor de texto. Modifique a saída copiada para alterar o campoconsumeReservationType
paraNO_RESERVATION
:{ ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
Para atualizar a instância e reiniciá-la, faça uma solicitação
PUT
ao métodoinstances.update
. Na solicitação, faça o seguinte:No URL de solicitação, inclua o parâmetro de consulta
mostDisruptiveAllowedAction
definido comoRESTART
.Para o corpo da solicitação, use a saída da solicitação
GET
editada na etapa anterior.
A solicitação é semelhante ao exemplo a seguir:
PUT https://compute.googleapis.com/compute/v1/projects/example-project/zones/us-central-1/instances/instance-01?mostDisruptiveAllowedAction=RESTART { ... "reservationAffinity": { "consumeReservationType": "NO_RESERVATION" }, ... }
No console do Google Cloud, acesse a página Criar uma instância .
No campo Nome , insira um nome para a instância.
Nas listas Região e Zona , selecione a região e a zona nas quais deseja criar a instância.
Especifique o tipo de máquina a ser usado para a instância.
No menu de navegação, clique em Avançado .
Na seção Reservas , selecione Não usar uma reserva .
Clique em Criar .
INSTANCE_NAME
: o nome da instância.MACHINE_TYPE
: o tipo de máquina a ser usado para a instância.ZONE
: a zona na qual criar a instância.PROJECT_ID
: o ID do projeto onde você deseja 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 ser usado para a instância.IMAGE_PROJECT
: o projeto de imagem que contém a imagem do SO; por exemplo,debian-cloud
. Para obter mais informações sobre os projetos de imagem suportados, consulte Imagens públicas .IMAGE
: especifique um dos seguintes:Uma versão específica da imagem do sistema operacional; por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens , que deve ser formatada como
family/ IMAGE_FAMILY
. Isso especifica a imagem do sistema operacional mais recente e não obsoleta. Por exemplo, se você especificarfamily/debian-12
, a versão mais recente da família de imagens Debian 12 será usada. Para obter mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens .
COUNT
: o número de instâncias a serem criadas.MACHINE_TYPE
: o tipo de máquina a ser usado para as instâncias.NAME_PATTERN
: o padrão de nome para as instâncias. Para substituir uma sequência de números em um nome de instância, use uma sequência de caracteres hash (#
). Por exemplo, usarinstance-#
para o padrão de nome gera instâncias com nomes começando cominstance-1
,instance-2
e continuando até o número de instâncias especificado porCOUNT
.ZONE
: a zona na qual criar instâncias em massa.PROJECT_ID
: o ID do projeto no qual serão criadas instâncias em massa.ZONE
: a zona na qual criar instâncias em massa.COUNT
: o número de instâncias a serem criadas.NAME_PATTERN
: o padrão de nome para as instâncias. Para substituir uma sequência de números em um nome de instância, use uma sequência de caracteres hash (#
). Por exemplo, usarinstance-#
para o padrão de nome gera instâncias com nomes começando cominstance-1
,instance-2
e continuando até o número de instâncias especificado porCOUNT
.MACHINE_TYPE
: o tipo de máquina a ser usado para as instâncias.IMAGE_PROJECT
: o projeto de imagem que contém a imagem do SO; por exemplo,debian-cloud
. Para obter mais informações sobre os projetos de imagem suportados, consulte Imagens públicas .IMAGE
: especifique um dos seguintes:Uma versão específica da imagem do sistema operacional; por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens , que deve ser formatada como
family/ IMAGE_FAMILY
. Isso especifica a imagem do sistema operacional mais recente e não obsoleta. Por exemplo, se você especificarfamily/debian-12
, a versão mais recente da família de imagens Debian 12 será usada. Para obter mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens .
Evite que as instâncias de computação em um grupo gerenciado de instâncias (MIG) consumam reservas ao fazer o seguinte:
No console do Google Cloud, acesse a página Criar um modelo de instância .
No campo Nome , insira um nome para o modelo de instância.
Na seção Localização , especifique se deseja criar um modelo de instância regional (padrão) ou global.
Na seção Configuração da máquina , especifique o tipo de máquina a ser usado para as instâncias criadas usando o modelo.
Expanda a seção Opções avançadas e faça o seguinte:
Expanda a seção Gerenciamento .
Na seção Reservas , selecione Não usar uma reserva .
Clique em Criar .
INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.REGION
: a região na qual o modelo de instância será criado.MACHINE_TYPE
: o tipo de máquina a ser usado para as instâncias criadas usando o modelo de instância.Para criar um modelo de instância global: método
instanceTemplates.insert
.Para criar um modelo de instância regional: método
regionInstanceTemplates.insert
.PROJECT_ID
: o ID do projeto no qual será criado o modelo de instância.INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.MACHINE_TYPE
: o tipo de máquina a ser usado para as instâncias criadas usando o modelo de instância.IMAGE_PROJECT
: o projeto de imagem que contém a imagem do SO; por exemplo,debian-cloud
. Para obter mais informações sobre os projetos de imagem suportados, consulte Imagens públicas .IMAGE
: especifique um dos seguintes:Uma versão específica da imagem do sistema operacional; por exemplo,
debian-12-bookworm-v20240617
.Uma família de imagens , que deve ser formatada como
family/ IMAGE_FAMILY
. Isso especifica a imagem do sistema operacional mais recente e não obsoleta. Por exemplo, se você especificarfamily/debian-12
, a versão mais recente da família de imagens Debian 12 será usada. Para obter mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens .
Go
Para usar os exemplos Go desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
Java
Para usar os exemplos Java desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
Node.js
Para usar os exemplos Node.js desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
Python
Para usar os exemplos Python desta página em um ambiente de desenvolvimento local, instale e inicialize o gcloud CLI e e configure o Application Default Credentials com suas credenciais de usuário.
Confira mais informações em Set up authentication for a local development environment.
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 evitar que uma instância de computação consuma reservas, peça ao administrador para conceder a você a função do IAM Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1
) no projeto. Para obter mais informações sobre a concessão de funções, consulte Gerenciar acesso a projetos, pastas e organizações .Esta função predefinida contém as permissões necessárias para evitar que uma instância de computação consuma reservas. 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 evitar que uma instância de computação consuma reservas:
Você também poderá obter essas permissões com funções personalizadas ou outras funções predefinidas .
Evitar o consumo de reservas
Para evitar que uma instância de computação consuma reservas, defina sua 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 evitar que uma ou mais instâncias consumam reservas, use um dos seguintes métodos:
Impedir o consumo em uma instância existente
Você pode atualizar uma instância em execução para que ela não consuma mais reservas automaticamente. Você deve reiniciar a instância para que as alterações tenham efeito, conforme descrito nesta seção.
Para evitar que uma instância existente consuma reservas, selecione uma das seguintes opções:
gcloud
DESCANSAR
Para obter mais informações sobre como atualizar uma instância, consulte Atualizar propriedades da instância .
Impedir o consumo ao criar uma instância
Para criar uma instância de computação que não possa consumir reservas, selecione uma das seguintes opções:
Console
gcloud
Para criar uma instância que não pode consumir reservas, use o comando
gcloud compute instances create
com a sinalização--reservation-affinity
definida comonone
:gcloud compute instances create INSTANCE_NAME \ --machine-type=MACHINE_TYPE \ --reservation-affinity=none \ --zone=ZONE
Substitua o seguinte:
Ir
Para criar uma instância que não pode consumir reservas, use o seguinte exemplo de código:
Java
Para criar uma instância que não pode consumir reservas, use o seguinte exemplo de código:
Node.js
Para criar uma instância que não pode consumir reservas, use o seguinte exemplo de código:
Pitão
Para criar uma instância que não pode consumir reservas, use o seguinte exemplo de código:
DESCANSAR
Para criar uma instância que não possa consumir reservas, faça uma solicitação
POST
para o métodoinstances.insert
. No corpo da solicitação, 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:
Para mais informações sobre como criar uma instância, consulte Criar e iniciar uma instância do Compute Engine .
Evite o consumo ao criar instâncias em massa
Para criar instâncias de computação em massa que não possam 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 sinalização--reservation-affinity
definida comonone
.Por exemplo, para criar instâncias em massa em uma ú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:
DESCANSAR
Para criar instâncias em massa que não podem consumir reservas, faça uma solicitação
POST
para o métodoinstances.bulkInsert
. No corpo da solicitação, inclua o campoconsumeReservationType
definido comoNO_RESERVATION
.Por exemplo, para criar instâncias em massa em uma única zona e especificar um padrão de nome, faça uma solicitação 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:
Para obter mais informações sobre como criar instâncias em massa, consulte Criar VMs em massa .
Evite o consumo ao criar um modelo de instância
Depois de criar um modelo de instância que configure as instâncias para não consumirem reservas, você poderá usar o modelo para fazer o seguinte:
Para criar um modelo de instância que configure instâncias para não consumirem reservas, selecione uma das seguintes opções:
Console
gcloud
Para criar um modelo de instância que configure instâncias para não consumirem reservas, use o comando
gcloud compute instances-templates create
com a sinalização--reservation-affinity
definida comonone
.Para criar um modelo de instância regional que configure instâncias para não consumir reservas, execute o comando a seguir. Se você deseja criar um modelo de instância global, use o mesmo comando sem o sinalizador
--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:
Ir
Para criar um modelo de instância que configure instâncias para não consumirem reservas, use o seguinte exemplo de código:
Java
Para criar um modelo de instância que configure 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 instâncias para não consumirem reservas, use o seguinte exemplo de código:
Pitão
Para criar um modelo de instância que configure instâncias para não consumirem reservas, use o seguinte exemplo de código:
DESCANSAR
Para criar um modelo de instância que configure instâncias para não consumirem reservas, faça uma solicitação
POST
para um dos seguintes métodos:No corpo da solicitação, inclua o campo
consumeReservationType
e defina-o comoNO_RESERVATION
.Por exemplo, para criar um modelo de instância regional e especificar que não consumirá reservas, faça uma solicitação 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:
Para obter mais informações sobre como criar modelos de instância, consulte Criar modelos de instância .
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.
-