O Vertex AI oferece dois tipos de notebooks: os gerenciados pelo Google e os gerenciados pelo usuário.
Os notebooks gerenciados pelo Google desligam sozinhos após um período de inatividade, o que ajuda a economizar e a evitar sustos na fatura. Só que, até pouco tempo atrás, não existia uma forma nativa de fazer o mesmo com os notebooks gerenciados pelo usuário — até agora.
Graças ao Jose Brache, dá para adicionar uma funcionalidade parecida aos notebooks gerenciados pelo usuário em poucos passos.
Vale lembrar que há uma diferença de comportamento entre os notebooks gerenciados pelo Google e a solução do Jose. Os notebooks gerenciados desligam após um período de inatividade, enquanto a solução do Jose desliga depois de um tempo predefinido, independentemente de haver atividade ou não. Tenha isso em mente.

Configuração
A implementação usa um Cloud Scheduler e uma Cloud Function.
O Cloud Scheduler roda a cada 5 minutos e aciona a Cloud Function, que verifica quais notebooks atingiram o horário de desligamento.
Por padrão, a Cloud Function verifica os notebooks do Vertex AI na região us-central1. Se precisar, adicione outras regiões na lista de regiões.
Para colocar tudo no ar, basta seguir o passo a passo do repositório no GitHub. A configuração é rápida e caprichada, feita com Terraform.
Permissões e papéis necessários
Vale destacar que a service account da Cloud Function precisa das seguintes permissões para parar os notebooks e listar os projetos.
roles/browserno nível da organização, para percorrer todos os projetos de uma organização específica. Não é necessário se você quiser executar a função apenas no mesmo projeto em que a Cloud Function está implantada.roles/notebooks.serviceAgentpara listar e parar os notebooks nos projetos. Se quiser desligar notebooks em vários projetos, defina essa permissão em…