123/A, Miranda City Likaoli
Prikano, Dope
+0989 7876 9865 9
+(090) 8765 86543 85
Desligar uma instancia EC2 todos os dias das 00:00 até as 08:00, ou seja, não preciso da instancia ligada o dia todo. Para fazer isto de forma automática iremos utilizar uma função LAMBDA.
Neste exemplo temos as seguintes condições:
Instancia: poc-lambda
Ligar: 08:00 (No GMT -2 ) / Todos os dias
Desligar: 00:00 (No GMT -2 ) / Todos os dias
Os scripts utilizados neste tutorial estão disponíveis em meu Git:StartStopEc2
Vamos começar criando a função que ira dar um Start ou Stop na instancia.
Clique em “Create Function”
Em “Name” preencha o nome da função (Para nosso teste, irei chamar de “Auto-StartStop”)
Em “Runtime” selecione “Python 3.8”
Preencha o “Role Name” com o nome da Role (Para nosso teste, irei chamar de “Auto-StartStop-Role”)
Clique em Create Function.
Agora foi aberto uma janela, onde precisamos editar a ROLE que ira permitir a função LAMBDA ter acesso as instancias.
Clique em Create Policy
Precisamos agora copiar o script em Python para Ligar e Desligar a instancia que desejamos.
Bom, já temos a Rule, já temos a função, porem precisamos tornar as chamadas a esta função automáticas!
Clique em Events, Rules e Create Rule
Abaixo será aberto alguns campos:
Em “Rule type” selecione “Recurring Schedule” e “Cron-Based schedule”
Na próxima página, precisamos definir o gatilho de execução da Função Lambda.
Na lista Invoke, selesiona o função Lambda criada, versão 1.
No payload copiar o conteúdo do arquivo payload.json (Git : StartStopEc2)
Na próxima página, em RoleName defina o nome do Agendamento
Até aqui tudo bem né? Para criar o processo de start, é so reproduzir o #Create Schedule
Clique em Events, Rules e Create Rule
Em “Rule name” preencha um nome para este evento (Para nosso teste, irei chamar de “chamada_00hrs”)
Em “Rule type” selecione “Recurring Schedule” e “Cron-Based schedule”
Confira o timezone
Em target api, clique em AWS Lambda
Na lista Invoke, selesiona o função Lambda criada, versão 1.
No payload copiar o conteúdo do arquivo payload.json (Git : StartStopEc2) **agora você tem que copiar o star.
Na próxima página, em RoleName defina o nome do Agendamento
E por último, Clique em “Save”:
Certifique-se de substituir a tag_key
e tag_value
pelas informações da tag que você deseja usar para filtrar as instâncias. O código acima liga ou desliga a instância EC2 ou RDS com base no estado atual da instância. Se a instância estiver em execução, ela será desligada. Caso contrário, ela será ligada. Se você quiser verificar o status da instância após a ligação ou desligação, pode usar o método describe_instances()
para obter informações sobre a instância EC2 e o método describe_db_instances()
para obter informações sobre a instância RDS.