Header Ads

Como usar os eventos do CloudWatch para automação da AWS

O CloudWatch é comumente usado para processamento e monitoramento de log de seus recursos da AWS, mas também possui ferramentas poderosas para automação na sua conta. Mostraremos como configurar e trabalhar com os eventos do CloudWatch.

O que são os eventos do CloudWatch?

O CloudWatch Events é um serviço da AWS que basicamente mapeia a causa usando as ações que acontecem na sua conta. Ele pode rotear eventos da API, como uma interrupção da instância do EC2 ou um objeto sendo carregado em um bucket S3, e enviá-los para outros serviços, como funções Lambda ou filas de mensagens.

Usando regras simples, você pode combinar eventos com base no serviço de origem. Eventos são objetos JSON, enviados ao CloudWatch devido a ações que acontecem na sua conta. Por exemplo, um evento para encerrar uma instância do EC2 pode se parecer com o seguinte:

 {"versão": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "tipo de detalhe": "Notificação de alteração de estado da instância EC2", "fonte": "aws. ec2", "account": "111122223333", "time": "2017-12-22T18: 43: 48Z", "region": "us-west-1", "resources": ["arn: aws: ec2: us-west-1: 123456789012: instance / i-1234567890abcdef0 "]," detail ": {" instance-id ":" i-1234567890abcdef0 "," state ":" terminated "}} 

Você pode ouvir esses eventos e enviá-los para outros serviços chamados destinos. Essas podem ser funções do Lambda criadas para lidar com essa carga, um tópico do SNS, uma fila do SQS ou outras ações como tarefas do ECS e CodePipeline. Com a capacidade de rotear para o Lambda, você pode programar qualquer funcionalidade que desejar, tornando este um recurso muito útil para automação de contas.

Por exemplo, se você deseja executar uma tarefa ECS, como processamento de foto ou vídeo, sempre que um objeto é carregado em um bucket S3, é possível fazer isso com o CloudWatch Events com bastante facilidade. Basta definir a origem do evento para corresponder às operações PutObject e enviar o evento para uma tarefa do ECS para processamento.

Muitas outras ferramentas da AWS também usarão eventos do CloudWatch, portanto você já deve ter algumas regras configuradas. Se você estiver usando o CodePipeline, ele usa um evento CloudWatch para monitorar o repositório de origem quanto a alterações e acionar o pipeline de CI / CD em resposta.

Os eventos não precisam ser acionados a partir de uma ação em sua conta. Como alternativa, você pode configurar o evento para ser executado em um intervalo de tempo fixo, atuando essencialmente como o cron da AWS. Você pode usar isso para agendar funções do Lambda para serem executadas automaticamente.

Configurando uma regra de evento

No Console do CloudWatch, clique em "Regras" ” na barra lateral e crie uma nova regra.

A menos que você queira que esse evento seja executado automaticamente, defina a Origem do evento como "Padrão de evento". ” Você pode escolher um nome de serviço aqui para filtrar por diferentes tipos de eventos.

No S3, você pode escolher “ Operações no Nível do Objeto ” e selecione um tipo de operação específico, como PutObject. Você também pode escolher um intervalo específico (ou intervalos) por nome.

À direita, você pode selecionar o alvo. O padrão é "Função Lambda", ” você só precisará selecionar uma função criada para lidar com o evento.

Para o Lambda, o evento é passado como a variável de evento. Você pode usar isso para acessar detalhes sobre a operação PutObject, como uma referência ao próprio objeto que você pode usar para acessá-lo.

Se você está apenas testando o CloudWatch Events, pode usar uma função como a seguinte para simplesmente registrar o evento passado para ele. Você encontrará os logs da função Lambda sob o “ Monitoramento ” guia para a função.

 'use strict'; export. handler = (evento, contexto, retorno de chamada) = > {console. log ('LogCloudWatchEvent'); console. log ('Evento recebido:', JSON. stringify (evento, nulo, 2)); retorno de chamada (nulo, 'Finalizado'); };[/PRÉ]

Você, obviamente, não está limitado às funções do Lambda. Para uma computação mais intensa, você pode rotear o evento para uma tarefa do ECS, que pode usar todo o poder do Fargate e do EC2 para executar aplicativos em contêineres.

Outras opções também estão disponíveis, geralmente relacionadas ao roteamento do evento em outro lugar, como um fluxo Kinesis, um tópico SNS ou uma fila SQS.

As regras são gerenciáveis ​​no console do CloudWatch, incluindo uma guia de monitoramento para mostrar métricas de quantas vezes a regra é invocada.

Via: How to Geek

Nenhum comentário