Este documento explica como ativar o desligamento suave em uma instância nova ou existente do Compute Engine. Para saber mais sobre o desligamento automático, consulte Visão geral do desligamento automático.
Ao ativar o desligamento suave em uma instância, você pode dar ao SO convidado até uma hora para ser encerrado corretamente quando você interromper ou excluir a instância. Isso ajuda a evitar a perda de dados ou a corrupção de sistemas de arquivos.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud .
Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no
Compute Engine selecionando uma das seguintes opções:
Select the tab for how you plan to use the samples on this page:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
-
Funções exigidas
Para receber as permissões necessárias para ativar o desligamento suave em uma instância de computação,
peça ao administrador para conceder a você o
papel do IAM de Administrador da instância da computação (v1) (roles/compute.instanceAdmin.v1
) no projeto.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém as permissões necessárias para ativar o desligamento suave em uma instância de computação. Para conferir 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 ativar o desligamento suave em uma 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 - Usar um snapshot para criar a VM:
compute.snapshots.useReadOnly
no snapshot - Usar um modelo de instância para criar a VM:
compute.instanceTemplates.useReadOnly
no modelo de instância - Atribuir uma rede legada à VM:
compute.networks.use
no projeto - Especificar um endereço IP estático para a VM:
compute.addresses.use
no projeto - Atribuir um endereço IP externo à VM ao usar uma rede legada:
compute.networks.useExternalIp
no projeto - Especificar uma sub-rede para a VM:
compute.subnetworks.use
no projeto ou na sub-rede escolhida - Atribuir um endereço IP externo à VM ao usar uma rede VPC:
compute.subnetworks.useExternalIp
no projeto ou na sub-rede escolhida - Definir os metadados da instância de VM para a VM:
compute.instances.setMetadata
no projeto - Definir tags para a VM:
compute.instances.setTags
na VM - Definir rótulos para a VM:
compute.instances.setLabels
na VM - Definir uma conta de serviço para a VM usar:
compute.instances.setServiceAccount
na VM - Criar um disco para a VM:
compute.disks.create
no projeto - Anexar um disco atual no modo somente leitura ou de leitura e gravação:
compute.disks.use
no disco - Anexar um disco atual no modo somente leitura:
compute.disks.useReadOnly
no disco
-
Para criar um modelo de instância:
compute.instanceTemplates.create
no projeto -
Para ativar o encerramento tranquilo em uma instância atual:
compute.instances.update
na instância
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Ativar o desligamento normal
Para ativar o desligamento suave em uma instância de computação, use um dos seguintes métodos:
Ativar o desligamento normal em uma instância
É possível ativar o desligamento suave em uma instância de computação sem interromper ou reiniciar. O período de desligamento suave padrão é de 10 minutos, mas você pode especificar um período de desligamento personalizado entre um segundo e uma hora.
Para ativar o desligamento suave em uma instância, selecione uma das seguintes opções:
No console do Google Cloud, acesse a página Instâncias de VMs.
Na coluna Nome, clique no nome da instância em que você quer ativar o desligamento suave.
A página de detalhes da instância é aberta.
Clique em
Editar.Na seção Gerenciamento, faça o seguinte:
Marque a caixa de seleção Desligar a VM normalmente.
Opcional: para especificar um período de desligamento suave personalizado, especifique uma duração no campo Duração máxima.
Clique em Salvar.
Para ativar o desligamento suave em uma instância atual, 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:
INSTANCE_NAME
: o nome da instância.ZONE
: a zona em que a instância está localizada.
Se quiser, para especificar um período de desligamento suave 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 desligamento. O valor precisa ser formatado como o número de horas, minutos ou
segundos, seguido por h
, m
e s
, respectivamente. Por exemplo, especifique
1h
para uma hora ou 20m10s
para 20 minutos e 10 segundos.
Crie um arquivo JSON vazio.
Para conferir as propriedades de uma instância, faça uma solicitação
GET
para o métodoinstances.get
beta:GET https://compute.googleapis.com/compute/beta/projects/
PROJECT_ID /zones/ZONE /instances/INSTANCE_NAME Substitua:
PROJECT_ID
: o ID do projeto em que a instância está localizada.ZONE
: a zona em que a instância está localizada.INSTANCE_NAME
: o nome de uma instância
No arquivo JSON vazio que você criou nas etapas anteriores, faça o seguinte:
Insira os detalhes de configuração da instância da saída da solicitação
GET
.No campo
scheduling
, adicione o campogracefulShutdown
da seguinte forma:{ ... "scheduling": { ... "gracefulShutdown": { "enabled": true } }, ... }
Como opção, para especificar um período de desligamento suave 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 desligamento normal. O valor precisa estar entre1
e3600
, que é 3.600 segundos (uma hora).
Para atualizar e reiniciar a instância, faça uma solicitação
PUT
para o métodoinstances.update
Beta. Na solicitação, faça o seguinte:No URL da solicitação, inclua o parâmetro de consulta
mostDisruptiveAllowedAction
definido comoRESTART
.No corpo da solicitação, inclua as propriedades da instância do arquivo JSON criado e atualizado nas etapas anteriores.
A solicitação
PUT
para atualizar a instância é semelhante a esta: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 como atualizar as propriedades de uma instância, consulte Atualizar propriedades da instância.
Ativar o desligamento normal ao criar uma instância
Quando você cria uma instância de computação com o desligamento suave ativado, o período de desligamento padrão é de 10 minutos. Como alternativa, é possível especificar um período de desligamento personalizado entre um segundo e uma hora.
Para criar uma instância com o desligamento suave ativado, selecione uma das seguintes opções:
No console do Google Cloud, acesse a página Instâncias de VMs.
Clique em Criar instância.
A página Criar uma instância será aberta.
Especifique um Nome para a instância.
Especifique a Região e a Zona em que a instância será criada.
Especifique um tipo de máquina para a instância.
No menu de navegação, clique em Avançado.
Abra a seção
Configurações avançadas do modelo de provisionamento de VM e faça o seguinte:Marque a caixa de seleção Desligar a VM normalmente.
Opcional: para especificar um período de desligamento suave personalizado, especifique uma duração no campo Duração máxima.
Clique em Criar.
Para criar uma instância com o desligamento suave 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:
INSTANCE_NAME
: o nome da instância.MACHINE_TYPE
: o tipo de máquina a ser usado para a instância.ZONE
: a zona em que a instância será criada.
Se quiser, para especificar um período de desligamento suave 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 desligamento
normal. O valor precisa ser formatado como o número de horas,
minutos ou segundos, seguido por h
, m
e s
, respectivamente. Por exemplo,
especifique 1h
para uma hora ou 20m10s
para 20 minutos e 10 segundos.
Para criar uma instância com o desligamento suave ativado, faça uma solicitação POST
para o
método beta.instances.insert
.
No corpo da solicitação, inclua o campo gracefulShutdown
:
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:
PROJECT_ID
: o ID do projeto em que a instância será criada.ZONE
: a zona em que a instância será criada.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 imagem com suporte, consulte Imagens públicas.IMAGE
: especifique uma destas opções:Uma versão específica da imagem do SO. Por exemplo:
debian-12-bookworm-v20240617
Uma família de imagens, que precisa ser formatada como
family/IMAGE_FAMILY
. Essa formatação especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-12
, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.
Opcionalmente, para especificar um período de desligamento suave personalizado, inclua o
campo maxDuration
no corpo da solicitação:
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 desligamento normal. O valor precisa estar entre 1
e 3600
, que é
3.600 segundos (uma hora).
Para mais opções de configuração ao criar uma instância, consulte Criar e iniciar uma instância do Compute Engine.
Ativar o encerramento suave ao criar instâncias em massa
Quando você cria instâncias de computação em massa com o desligamento suave ativado, o período de desligamento padrão é de 10 minutos. Como alternativa, é possível especificar um período de desligamento personalizado entre um segundo e uma hora.
Para criar instâncias em massa com o desligamento suave ativado, selecione uma das seguintes opções:
Para criar instâncias em massa com o desligamento suave ativado, use o
comando gcloud beta compute instances bulk create
com a flag --graceful-shutdown
.
Por exemplo, para criar instâncias em massa em uma única zona e especificar um padrão de nome para elas, 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:
COUNT
: o número de instâncias a serem criadas.MACHINE_TYPE
: o tipo de máquina das instâncias.NAME_PATTERN
: o padrão de nome das instâncias. Para substituir uma sequência de números no nome de uma instância, use uma sequência de caracteres hash (#
). Por exemplo, usarinstance-#
para o padrão de nome gera instâncias com nomes que começam cominstance-1
,instance-2
e continuam até o número de instâncias especificado porCOUNT
.ZONE
: a zona em que as instâncias serão criadas em massa.
Se quiser, para especificar um período de desligamento suave 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 desligamento
normal. O valor precisa ser formatado como o número de horas,
minutos ou segundos, seguido por h
, m
e s
, respectivamente. Por exemplo,
especifique 1h
para uma hora ou 20m10s
para 20 minutos e 10 segundos.
Para criar instâncias em massa com o desligamento suave ativado, faça uma
solicitação POST
para o
método instances.bulkInsert
Beta.
No corpo da solicitação, inclua o campo gracefulShutdown
.
Por exemplo, para criar instâncias em massa em uma única zona e especificar um padrão
de nome para elas, faça uma solicitação POST
da seguinte maneira:
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:
PROJECT_ID
: o ID do projeto em que as instâncias serão criadas em massa.ZONE
: a zona em que as instâncias serão criadas em massa.COUNT
: o número de instâncias a serem criadas.NAME_PATTERN
: o padrão de nome das instâncias. Para substituir uma sequência de números no nome de uma instância, use uma sequência de caracteres hash (#
). Por exemplo, usarinstance-#
para o padrão de nome gera instâncias com nomes que começam cominstance-1
,instance-2
e continuam até o número de instâncias especificado porCOUNT
.MACHINE_TYPE
: o tipo de máquina das 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 imagem com suporte, consulte Imagens públicas.IMAGE
: especifique uma destas opções:Uma versão específica da imagem do SO. Por exemplo:
debian-12-bookworm-v20240617
Uma família de imagens, que precisa ser formatada como
family/IMAGE_FAMILY
. Essa formatação especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-12
, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.
ZONE
: a zona em que as instâncias serão criadas em massa.
Opcionalmente, para especificar um período de desligamento suave personalizado, inclua o
campo maxDuration
no corpo da solicitação:
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 desligamento normal. O valor precisa estar entre 1
e 3600
, que é
3.600 segundos (uma hora).
Para mais opções de configuração ao criar instâncias em massa, consulte Criar VMs em massa.
Ativar o desligamento suave ao criar um modelo de instância
Quando você cria um modelo de instância com o desligamento suave ativado, o período de desligamento padrão é de 10 minutos. Como alternativa, é possível especificar um período de desligamento personalizado entre um segundo e uma hora.
Todas as instâncias de computação criadas usando o modelo de instância têm o desligamento suave ativado.
Para criar um modelo de instância com o desligamento suave ativado, selecione uma das seguintes opções:
No Console do Google Cloud, acesse a página Modelos de instância.
Clique em Criar modelo de instância.
A página Criar um modelo de instância é aberta.
No campo Nome, insira um nome para o modelo de instância.
Selecione o Local da seguinte forma:
Para reduzir a dependência entre regiões criando 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 em que o modelo de instância será criado.
Caso contrário, para usar o modelo de instância em várias regiões, escolha Global.
Na seção Configuração da máquina, especifique um tipo de máquina.
Abra a seção
Configurações avançadas do modelo de provisionamento de VM e faça o seguinte:Marque a caixa de seleção Desligar a VM normalmente.
Opcional: para especificar um período de desligamento suave personalizado, especifique uma duração no campo Duração máxima.
Clique em Criar.
Para criar um modelo de instância com o desligamento suave 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 desligamento gradual 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:
INSTANCE_TEMPLATE_NAME
: o nome do modelo de instância.REGION
: a região em que o modelo de instância será criado.MACHINE_TYPE
: o tipo de máquina das instâncias criadas usando o modelo de instância.
Se quiser, inclua a flag --graceful-shutdown-max-duration
para especificar um período de desligamento suave personalizado.
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 desligamento. O valor precisa ser formatado como o número de horas, minutos ou
segundos, seguido por h
, m
e s
, respectivamente. Por exemplo, especifique
1h
para uma hora ou 20m10s
para 20 minutos e 10 segundos.
Para criar um modelo de instância com o desligamento suave ativado, faça uma
solicitação POST
para um dos seguintes métodos:
Para criar um modelo de instância global: método
instanceTemplates.insert
beta.Para criar um modelo de instância regional: método
regionInstanceTemplates.insert
beta.
Por exemplo, para criar um modelo de instância regional com o desligamento
gradual ativado, faça uma solicitação POST
da seguinte maneira:
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:
PROJECT_ID
: o ID do projeto em que o modelo de instância será criado.REGION
: a região em que o modelo de instância será criado.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 imagem com suporte, consulte Imagens públicas.IMAGE
: especifique uma destas opções:Uma versão específica da imagem do SO. Por exemplo:
debian-12-bookworm-v20240617
Uma família de imagens, que precisa ser formatada como
family/IMAGE_FAMILY
. Essa formatação especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-12
, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.
MACHINE_TYPE
: o tipo de máquina das instâncias criadas usando o modelo de instância.
Opcionalmente, para especificar um período de desligamento suave personalizado, inclua o
campo maxDuration
no corpo da solicitação.
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 desligamento. O valor precisa estar entre 1
e 3600
, que é 3.600
segundos (uma hora).
Para mais opções de configuração ao criar um modelo de instância, consulte Criar modelos de instância.
A seguir
Conferir o desligamento suave em uma instância do Compute Engine
Desativar o desligamento suave em uma instância do Compute Engine