Este documento explica como ativar o encerramento controlado numa instância do Compute Engine nova ou existente. Para saber mais sobre o encerramento controlado, consulte o artigo Vista geral do encerramento controlado.
Quando ativa o encerramento normal numa instância, pode dar ao respetivo SO convidado até uma hora para encerrar corretamente quando para ou elimina a instância. Isto ajuda a evitar uma potencial perda de dados ou sistemas de ficheiros danificados.
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.
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. 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.
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 ativar o encerramento controlado numa instância de computação, peça ao seu administrador para lhe conceder a função IAM Administrador de instâncias do Compute (v1) (
roles/compute.instanceAdmin.v1
) no seu 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 ativar o encerramento controlado numa instância de computação. 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 ativar o encerramento normal numa instância de computação:
-
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 um modelo de instância:
compute.instanceTemplates.create
no projeto -
Para ativar o encerramento controlado numa instância existente:
compute.instances.update
na instância
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Ative o encerramento elegante
Para ativar o encerramento controlado numa instância de computação, use um dos seguintes métodos:
Ative o encerramento normal durante a criação de uma instância
Ative o encerramento normal durante a criação de instâncias em massa
Ative o encerramento elegante ao criar um modelo de instância
Ative o encerramento elegante numa instância existente
Pode ativar o encerramento controlado numa instância de computação existente sem a parar nem reiniciar. O período de encerramento normal predefinido é de 10 minutos, mas pode especificar um período de encerramento personalizado entre um segundo e uma hora.
Para ativar o encerramento controlado numa instância existente, selecione uma das seguintes opções:
Consola
Na Google Cloud consola, aceda à página Instâncias de VM.
Na coluna Nome, clique no nome da instância na qual quer ativar o encerramento elegante.
É apresentada a página de detalhes da instância.
Clique em
Editar.Na secção Gestão, faça o seguinte:
Selecione a caixa de verificação Encerrar a VM normalmente.
Opcional: para especificar um período de encerramento normal personalizado, especifique uma duração no campo Duração máxima.
Clique em Guardar.
gcloud
Para ativar o encerramento normal numa instância existente, use o comando
gcloud beta compute instances update
com a flag--graceful-shutdown
:gcloud beta compute instances update INSTANCE_NAME \ --graceful-shutdown \ --zone=ZONE
Substitua o seguinte:
INSTANCE_NAME
: o nome da instância.ZONE
: a zona onde a instância está localizada.
Opcionalmente, para especificar um período de encerramento normalizado personalizado, inclua a flag
--graceful-shutdown-max-duration
:gcloud beta compute instances update INSTANCE_NAME \ --graceful-shutdown \ --graceful-shutdown-max-duration=MAX_DURATION \ --zone=ZONE
Substitua
MAX_DURATION
por uma duração para o período de encerramento. O valor tem de estar formatado como o número de horas, minutos ou segundos, seguido deh
,m
es
, respetivamente. Por exemplo, especifique1h
durante uma hora ou20m10s
durante 20 minutos e 10 segundos.REST
Crie um ficheiro JSON vazio.
Para ver as propriedades de uma instância existente, faça um pedido
GET
ao método betainstances.get
:GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde a instância está localizada.ZONE
: a zona onde a instância está localizada.INSTANCE_NAME
: o nome de uma instância existente.
No ficheiro JSON vazio que criou nos passos anteriores, faça o seguinte:
Introduza os detalhes da configuração da instância a partir do resultado do pedido
GET
.No campo
scheduling
, adicione o campogracefulShutdown
da seguinte forma:{ ... "scheduling": { ... "gracefulShutdown": { "enabled": true } }, ... }
Opcionalmente, para especificar um período de encerramento normalizado personalizado, inclua o campo
maxDuration
:{ ... "scheduling": { ... "gracefulShutdown": { ... "enabled": true, "maxDuration": { "seconds": "MAX_DURATION" } } }, ... }
Substitua
MAX_DURATION
por uma duração em segundos para o período de encerramento gradual. O valor tem de estar compreendido entre1
e3600
, que corresponde a 3600 segundos (uma hora).
Para atualizar a instância e reiniciá-la, faça um pedido
PUT
ao métodoinstances.update
beta. Na solicitação, faça o seguinte:No URL do pedido, inclua o parâmetro de consulta
mostDisruptiveAllowedAction
definido comoRESTART
.No corpo do pedido, inclua as propriedades da instância do ficheiro JSON que criou e atualizou nos passos anteriores.
O pedido
PUT
para atualizar a instância é semelhante ao seguinte:PUT https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME?mostDisruptiveAllowedAction=RESTART { ... "scheduling": { ... "gracefulShutdown": { "enabled": true } }, ... }
Para mais informações sobre a atualização das propriedades de uma instância, consulte o artigo Atualize as propriedades da instância.
Ative o encerramento correto durante a criação de uma instância
Quando cria uma instância de computação com o encerramento elegante ativado, o período de encerramento predefinido é de 10 minutos. Opcionalmente, pode especificar um período de encerramento personalizado entre um segundo e uma hora.
Para criar uma instância com o encerramento elegante ativado, selecione uma das seguintes opções:
Consola
Na Google Cloud consola, aceda à página Instâncias de VM.
Clique em Criar instância.
É apresentada a página Criar uma instância.
Especifique um Nome para a instância.
Especifique a Região e a Zona nas quais criar a instância.
Especifique um tipo de máquina para a instância.
No menu de navegação, clique em Avançadas.
Expanda a secção
Definições avançadas do modelo de aprovisionamento de VMs e, em seguida, faça o seguinte:Selecione a caixa de verificação Encerrar a VM normalmente.
Opcional: para especificar um período de encerramento normal personalizado, especifique uma duração no campo Duração máxima.
Clique em Criar.
gcloud
Para criar uma instância com o encerramento elegante ativado, use o comando
gcloud beta compute instances create
com a flag--graceful-shutdown
:gcloud beta compute instances create INSTANCE_NAME \ --graceful-shutdown \ --machine-type=MACHINE_TYPE \ --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.
Opcionalmente, para especificar um período de encerramento normalizado personalizado, inclua a flag
--graceful-shutdown-max-duration
:gcloud beta compute instances create INSTANCE_NAME \ --graceful-shutdown \ --graceful-shutdown-max-duration=MAX_DURATION \ --machine-type=MACHINE_TYPE \ --zone=ZONE
Substitua
MAX_DURATION
por uma duração para o período de encerramento elegante. O valor tem de ser formatado como o número de horas, minutos ou segundos, seguido deh
,m
es
, respetivamente. Por exemplo, especifique1h
para uma hora ou20m10s
para 20 minutos e 10 segundos.REST
Para criar uma instância com o encerramento elegante ativado, faça um
POST
pedido ao métodobeta.instances.insert
. No corpo do pedido, inclua o campogracefulShutdown
:POST https://compute.googleapis.com/compute/beta/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" } ], "scheduling": { "gracefulShutdown": { "enabled": true } } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto no qual 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 da instância.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, 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
. Esta formatação especifica a imagem do SO mais recente e não descontinuada. 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.
Opcionalmente, para especificar um período de encerramento normal personalizado, inclua o campo
maxDuration
no corpo do pedido:POST https://compute.googleapis.com/compute/beta/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" } ], "scheduling": { "gracefulShutdown": { "enabled": true, "maxDuration": { "seconds": "MAX_DURATION" } } } }
Substitua
MAX_DURATION
por uma duração em segundos para o período de encerramento gradual. O valor tem de estar compreendido entre1
e3600
, que é 3600 segundos (uma hora).Para mais opções de configuração ao criar uma instância, consulte o artigo Crie e inicie uma instância do Compute Engine.
Ative o encerramento elegante durante a criação de instâncias em massa
Quando cria instâncias de computação em massa com o encerramento elegante ativado, o período de encerramento predefinido é de 10 minutos. Opcionalmente, pode especificar um período de encerramento personalizado entre um segundo e uma hora.
Para criar instâncias em massa com o encerramento elegante ativado, selecione uma das seguintes opções:
gcloud
Para criar instâncias em massa com o encerramento simples ativado, use o comando
gcloud beta compute instances bulk create
com a flag--graceful-shutdown
.Por exemplo, para criar instâncias em massa numa única zona e especificar um padrão de nome para as instâncias, execute o seguinte comando:
gcloud beta compute instances bulk create \ --count=COUNT \ --graceful-shutdown \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --zone=ZONE
Substitua o seguinte:
COUNT
: o número de instâncias a criar.MACHINE_TYPE
: o tipo de máquina 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.
Opcionalmente, para especificar um período de encerramento normalizado personalizado, inclua a flag
--graceful-shutdown-max-duration
:gcloud beta compute instances bulk create \ --count=COUNT \ --graceful-shutdown \ --graceful-shutdown-max-duration=MAX_DURATION \ --machine-type=MACHINE_TYPE \ --name-pattern="NAME_PATTERN" \ --zone=ZONE
Substitua
MAX_DURATION
por uma duração para o período de encerramento elegante. O valor tem de ser formatado como o número de horas, minutos ou segundos, seguido deh
,m
es
, respetivamente. Por exemplo, especifique1h
para uma hora ou20m10s
para 20 minutos e 10 segundos.REST
Para criar instâncias em massa com o encerramento controlado ativado, faça um pedido ao método beta
instances.bulkInsert
.POST
No corpo do pedido, inclua o campogracefulShutdown
.Por exemplo, para criar instâncias em massa numa única zona e especificar um padrão de nome para as instâncias, faça um pedido
POST
da seguinte forma:POST https://compute.googleapis.com/compute/beta/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" } ], "scheduling": { "gracefulShutdown": { "enabled": true } } } }
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 para as instâncias.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, 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
. Esta formatação especifica a imagem do SO mais recente e não descontinuada. 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.
ZONE
: a zona na qual criar instâncias em massa.
Opcionalmente, para especificar um período de encerramento normal personalizado, inclua o campo
maxDuration
no corpo do pedido:POST https://compute.googleapis.com/compute/beta/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" } ], "scheduling": { "gracefulShutdown": { "enabled": true, "maxDuration": { "seconds": "MAX_DURATION" } } } } }
Substitua
MAX_DURATION
por uma duração em segundos para o período de encerramento gradual. O valor tem de estar compreendido entre1
e3600
, que é 3600 segundos (uma hora).Para ver mais opções de configuração quando cria instâncias em massa, consulte o artigo Crie VMs em massa.
Ative o encerramento elegante durante a criação de um modelo de instância
Quando cria um modelo de instância com o encerramento elegante ativado, o período de encerramento predefinido é de 10 minutos. Opcionalmente, pode especificar um período de encerramento personalizado entre um segundo e uma hora.
Todas as instâncias de computação criadas com o modelo de instância têm o encerramento normal ativado.
Para criar um modelo de instância com o encerramento elegante ativado, selecione uma das seguintes opções:
Consola
Na Google Cloud consola, aceda à página Modelos de instâncias.
Clique em Criar modelo de instância.
É apresentada a página Criar um modelo de instância.
No campo Nome, introduza um nome para o modelo de instância.
Selecione a Localização da seguinte forma:
Para reduzir a dependência entre regiões através da criação de um modelo de instância regional, faça o seguinte:
Escolha Regional, se ainda não estiver selecionado.
No campo Região, selecione a região na qual criar o modelo de instância.
Caso contrário, para usar o modelo de instância em várias regiões, escolha Global.
Na secção Configuração da máquina, especifique um tipo de máquina.
Expanda a secção
Definições avançadas do modelo de aprovisionamento de VMs e, em seguida, faça o seguinte:Selecione a caixa de verificação Encerrar a VM normalmente.
Opcional: para especificar um período de encerramento normal personalizado, especifique uma duração no campo Duração máxima.
Clique em Criar.
gcloud
Para criar um modelo de instância com o encerramento elegante ativado, use o comando
gcloud beta compute instance-templates create
com a flag--graceful-shutdown
.Por exemplo, para criar um modelo de instância regional com o encerramento elegante ativado, execute o seguinte comando:
gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --graceful-shutdown \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE
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 para as instâncias criadas com o modelo de instância.
Opcionalmente, para especificar um período de encerramento normalizado personalizado, inclua a flag
--graceful-shutdown-max-duration
.gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --graceful-shutdown \ --graceful-shutdown-max-duration=MAX_DURATION \ --instance-template-region=REGION \ --machine-type=MACHINE_TYPE
Substitua
MAX_DURATION
por uma duração para o período de encerramento. O valor tem de estar formatado como o número de horas, minutos ou segundos, seguido deh
,m
es
, respetivamente. Por exemplo, especifique1h
durante uma hora ou20m10s
durante 20 minutos e 10 segundos.REST
Para criar um modelo de instância com o encerramento elegante ativado, faça um pedido
POST
a um dos seguintes métodos:Para criar um modelo de instância global: método beta
instanceTemplates.insert
.Para criar um modelo de instância regional: método beta
regionInstanceTemplates.insert
.
Por exemplo, para criar um modelo de instância regional com o encerramento elegante ativado, faça um pedido
POST
da seguinte forma:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "gracefulShutdown": { "enabled": true } } } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto onde criar o modelo de instância.REGION
: a região onde criar o modelo de instância.INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.IMAGE_PROJECT
: o projeto de imagem que contém a imagem, 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
. Esta formatação especifica a imagem do SO mais recente e não descontinuada. 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.
MACHINE_TYPE
: o tipo de máquina para as instâncias criadas com o modelo de instância.
Opcionalmente, para especificar um período de encerramento gradual personalizado, inclua o campo
maxDuration
no corpo do pedido.POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ], "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default" } ], "scheduling": { "gracefulShutdown": { "enabled": true, "maxDuration": { "seconds": "MAX_DURATION" } } } } }
Substitua
MAX_DURATION
por uma duração em segundos para o período de encerramento. O valor tem de estar compreendido entre1
e3600
, que corresponde a 3600 segundos (uma hora).Para mais opções de configuração ao criar um modelo de instância, consulte o artigo Crie modelos de instâncias.
O que se segue?
Veja o encerramento controlado numa instância do Compute Engine
Desative o encerramento elegante numa instância do Compute Engine
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-19 UTC.
-