#Tutorial completo (para VM Windows)
Para fins de economia, quando não é necessário deixar uma VM ligada o tempo todo, existe a possibilidade de agendar desligamento durante as madrugadas e finais de semana por exemplo.
Gcloud Instance Compute
Scheduler
PubSub
Gcloud Functions
Referência: https://cloud.google.com/scheduler/docs/start-and-stop-compute-engine-instances-on-a-schedule
Executar todos os comandos abaixo dentro do Cloud Shell ativado no console do GCP
https://console.cloud.google.com (abrir cloud shell)
n1-standard-1 ---> 1 vCPU, 3.75 GB Memory
n1-standard-2 ---> 2 vCPU, 7.5 GB Memory
n1-standard-4 ---> 4 vCPU, 15 GB Memory
(...)
1 - criar VM windows: (ref.: https://cloud.google.com/compute/docs/instances/windows/creating-managing-windows-instances)
--image-project windows-cloud \
--image-family windows-2016 \
--machine-type f1-micro \
--zone us-central1-a \
--labels=env=dev
2 - Criar os pubsub's que irão ‘triggar’ o stop/start:
gcloud pubsub topics create stop-instance-event
3 - Clonar o repo oficial onde estão os scripts em node:
```gcloud functions deploy startInstancePubSub \
--trigger-topic start-instance-event \
--runtime nodejs8
--trigger-topic stop-instance-event \
--runtime nodejs8
cd -
#Checar status da máquina:
1 - Ligar de segunda a sexta às 8:00:
--schedule '0 8 * * 1-5' \
--topic start-instance-event \
--message-body '{"zone":"us-central1-a", "label":"env=dev"}' \
--time-zone 'America/Sao_Paulo'
2 - Desligar de segunda a sexta as 18:30:
--schedule '30 18 * * 1-5' \
--topic stop-instance-event \
--message-body '{"zone":"us-central1-a", "label":"env=dev"}' \
--time-zone 'America/Sao_Paulo'