Configurando o auto-shutdown em uma VM Azure

Configurando o auto-shutdown em uma VM Azure, você tem uma das formas mais rápidas de cortar custo de ambientes de desenvolvimento, teste e laboratório. Uma VM esquecida ligada fica 730 horas por mês consumindo computação. Se ela só é usada em horário comercial, desligar às 19:00 nos dias úteis já tira mais da metade dessas horas da fatura.

Neste artigo eu refiz o passo a passo num lab real em outubro de 2026: configurei pelo portal, repeti pelo Azure CLI, esperei o horário agendado e conferi a VM sendo desalocada. No caminho apareceram duas pegadinhas do CLI que quase nenhum tutorial menciona.

Como funciona o auto-shutdown em uma VM Azure

O auto-shutdown não é uma propriedade da VM. Quando você ativa, o Azure cria um recurso separado do tipo Microsoft.DevTestLab/schedules, com o nome shutdown-computevm-<nome-da-vm>, no mesmo resource group. É ele que guarda o horário, o fuso e a notificação.

No horário agendado, a VM é desalocada, e não apenas desligada pelo sistema operacional. Essa diferença importa: VM em Stopped (deallocated) não cobra computação. Os discos continuam cobrando, porque o armazenamento continua existindo.

Configurando pelo portal

Na VM, abra Operations > Auto-shutdown. Por padrão a opção vem desligada:

Tela Auto-shutdown de uma VM Azure com a opção Enabled em Off
Auto-shutdown desativado, o padrão de toda VM nova

Marque On e preencha três campos:

  1. Scheduled shutdown: o horário do desligamento, por exemplo 7:00:00 PM.
  2. Time zone: escolha (UTC-03:00) Brasilia. Sem isso, o horário vale em outro fuso.
  3. Send notification before auto-shutdown: aviso 30 minutos antes do desligamento.

Se você marcar a notificação, o portal exige um e-mail ou um webhook. Sem um dos dois, o botão Save fica bloqueado:

Portal do Azure exigindo e-mail ou webhook para a notificação do auto-shutdown
Notificação ativa exige e-mail ou webhook

Com tudo preenchido, a configuração fica assim. Depois do Save, o recurso de agendamento já aparece no resource group:

Auto-shutdown configurado para 19:00 no fuso de Brasília com notificação por e-mail
Desligamento diário às 19:00, horário de Brasília, com aviso por e-mail

O webhook é útil para mandar o aviso para um canal do Teams ou do Slack, ou para uma Logic App que decide se a VM pode mesmo desligar.

Configurando pelo Azure CLI (e as duas pegadinhas)

Pelo CLI é um comando só:

az vm auto-shutdown \
  --resource-group rg-lab \
  --name vm-lab \
  --time 2200 \
  --email [email protected]

Pegadinha 1: o CLI grava o horário em UTC. O parâmetro --time não tem fuso. Rodei o comando depois de configurar 19:00 de Brasília no portal, e o agendamento passou para (UTC) Coordinated Universal Time. Para desligar às 19:00 de Brasília, informe 2200, porque Brasília está em UTC-3.

Pegadinha 2: o comando substitui a configuração inteira. Numa segunda execução, sem --email, a notificação que eu tinha ligado no portal voltou para No. O CLI não faz alteração parcial: o que você não informa, ele desliga.

Auto-shutdown depois do Azure CLI: fuso em UTC e notificação desligada
Depois do CLI: fuso trocado para UTC e notificação desligada

Para remover o agendamento pelo CLI, use az vm auto-shutdown --off com o mesmo resource group e nome da VM.

Testando de verdade

Para não esperar até a noite, agendei o desligamento para sete minutos à frente e acompanhei o estado da VM com az vm get-instance-view. Ela ficou VM running até o minuto agendado e então passou para VM deallocating. Trinta segundos depois estava em VM deallocated, sem nenhuma ação manual:

VM Azure com status Stopped (deallocated) depois do auto-shutdown
VM desalocada pelo auto-shutdown no minuto agendado

Limitações que você precisa conhecer

  • Só desliga, não liga. Alguém precisa ligar a VM de manhã. Para ligar e desligar em horários definidos, use o Start/Stop VMs v2.
  • O horário vale para todos os dias. Não existe agenda por dia da semana. No fim de semana a VM desliga no mesmo horário, se estiver ligada.
  • É configuração por VM. Em dezenas de VMs, fazer pelo portal não escala. O caminho é automatizar com Terraform ou com Azure Policy DeployIfNotExists. A versão em Terraform, com módulo reutilizável, vai ganhar um artigo próprio na série de FinOps.
  • Disco continua cobrando. Desalocar zera a computação, não o armazenamento.

Quanto dá para economizar

Uma VM de desenvolvimento ligada das 8:00 às 19:00 nos dias úteis fica 11 horas por dia, cinco dias por semana: 55 das 168 horas da semana. Com o auto-shutdown às 19:00 e alguém ligando de manhã, a computação cai cerca de dois terços em relação a deixar a VM ligada direto.

A economia precisa aparecer na fatura. Para acompanhar, combine o auto-shutdown com um Budget com alertas de custo, o Cost Management Export e uma governança de tags que identifique quais VMs são de dev/test.

Vídeo

O vídeo original deste post mostra a configuração pelo portal:

Conclusão

O auto-shutdown em uma VM Azure leva dois minutos para configurar e funciona no minuto agendado. Os cuidados estão no fuso horário, que o CLI troca para UTC, e na notificação, que some quando o comando é executado sem o e-mail. Para ambientes maiores, trate o desligamento como política e não como ajuste manual VM por VM.

Referências oficiais

Interessado em saber mais sobre artigos relacionados a Microsoft Azure CLIQUE AQUI

🚀 Vamos nos conectar?

Não perca nenhuma oportunidade! Cadastre-se nas minhas redes e no canal do YouTube para receber conteúdos de TI, Cloud, Azure, AWS, Kubernetes e DevOps em primeira mão.

Dica: no Facebook, todos os artigos do blog são publicados automaticamente. Vale a pena curtir!


💬 Dúvidas ou problemas?

Com o intuito de ajudar a comunidade, caso você tenha dúvidas ou encontre problemas na execução dos comandos deste artigo, deixe um comentário abaixo. Responderei o mais breve possível!

Muito obrigado pela visita e até o próximo post!

Jefferson Castilho Especialista em Cloud & DevOps.

Este guia técnico é exclusivo do Blog do Castilho. Explore mais conteúdos sobre Cloud e DevOps.

Deixe um comentário

Descubra mais sobre Blog do Castilho - Tecnologia | FinOps | DevOps | Cloud

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continuar lendo