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:

Marque On e preencha três campos:
- Scheduled shutdown: o horário do desligamento, por exemplo 7:00:00 PM.
- Time zone: escolha (UTC-03:00) Brasilia. Sem isso, o horário vale em outro fuso.
- 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:

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

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.

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:

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
- Auto-shutdown de VMs (Microsoft Learn)
- az vm auto-shutdown (Microsoft Learn)
- Start/Stop VMs v2 (Microsoft Learn)
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.