Olá pessoal, bem-vindos de volta à nossa Jornada Cloud. Vamos agora falar de mais um serviço da AWS que pode ser muito útil para nós no nosso ecossistema, na nossa arquitetura do dia a dia. Vamos estar falando aqui do Amazon Event Bridge. O que é isso? Ele é um barramento de eventos na AWS que eu posso programar coisas a serem feitas, posso programar integrações para acontecer. Então eu posso, por exemplo, vou dar aqui um exemplo mais prático para a gente, eu posso, dentro do Event Bridge, determinar o início e fim de horário de instâncias dentro da minha conta ou serviços do ECS. Vou dar um exemplo prático pra vocês. Vamos dizer que você trabalha numa empresa, o seu horário de trabalho da sua equipe é das 9 da manhã às 18 horas da tarde e nesse período vocês estão ali desenvolvendo no dia a dia e vocês estão trabalhando com a AWS e você tem ali um cluster ECS com serviços cadastrados com as suas tasks rodando na AWS a gente paga por uso então Então, vai acontecer de, no seu ambiente produtivo, você ter que trabalhar 24 horas por 7 dias. Suas máquinas vão ficar cobrando o dia inteiro, vão ficar trabalhando o dia inteiro. Você tem escalabilidade na horizontal, você tem alarmes, você tem alertas e tudo mais. Só que será que isso seria verdade no seu ambiente de desenvolvimento e de homologação? Muito provável que não, porque você tem um horário de trabalho para desenvolver. Sua equipe desenvolve das 9 da manhã às 18 horas da tarde. Então eu preciso ficar pagando lá no Fargate, pagando máquinas, durante todo esse período de tempo, bom, objetivamente eu não tenho essa necessidade. Eu poderia criar aqui um evento no WeftBridge, programando por exemplo, para que ele ligue os meus serviços todo dia às 8h30 e desligue às 18h30. Eu vou ter aí quantas horas de economia WES no meu ambiente de desenvolvimento, talvez no ambiente de homologação. Dado que eu pago por uso, se eu não estou usando, então também não estou pagando. E isso é uma forma de economizar. Mas não apenas isso. Vamos dizer que você tem uma base de dados pensando aqui em um dos usos do evento rede que é o agendamento tá bom vamos ver se tem uma base de dados ali é uma base produtiva bom então você está ali armazenando seus itens salvando os itens na base de dados todos os dias, todos os dias, todos os dias, você está salvando ali, você não está no modelo Dynamo Stream, você está armazenando, porque o que você trouxe para a cloud, por exemplo, foi uma aplicação legada, que você já tinha na cloud privada e você trouxe para a cloud pública, e esse modelo agora, você permanece com os mesmos agendamentos, mas nessa migração, embora o serviço seja o mesmo, você falou, poxa, eu não vou usar ali, por exemplo, os crons em máquina, porque agora eu não tenho mais aquela máquina física, onde iria cadastrar minhas crons, não que eu não pudesse fazer isso em EC2, mas vamos dizer que você mudou a sua estratégia, já começou a modernizar o seu produto e começou a trazer conceitos mais serverless para ele. Aí você tem ali um consumo de base de dados, produzindo dados durante o dia e à noite você precisa gerar um relatório. Você precisa gerar um relatório a partir dos dados dessa base. relatório a partir dos dados dessa base. Eu posso criar um evento no EvityBridge que ele vai todos os dias, por exemplo, postar um item em uma fila, vai todos os dias postar algo e consumir uma lambda que vai estartar o processo dentro do teu ecossistema e gerar esse relatório, salvar em um bucket, então ele nada mais é do que um barramento de eventos, tá bom? Serverless, sem servidor, que eu posso fazer várias coisas com ele, inclusive chamar outras aplicações, tá? Então, ele é muito robusto, ele é muito simples de usar e ele também não é nada caro. Quando eu vou falar de recursos, por exemplo, eu posso trabalhar ele com recursos de integração para servidor aqui em pipeline, integrar com mais de 14 serviços da AWS. Posso usar o Event Bridge Channel, que é esse exemplo que eu estou dando para vocês, acho que é o mais próximo do nosso dia a dia, operacionalmente falando, que é trabalhar com agendamentos. Eu posso colocar destinos para integração de APIs, então eu cadastro um evento e falo, eu chamo essa API em tal e tal hora, entendeu? Então, é muita forma de uso, tá bom? E aí você me fala, poxa, isso deve ter algum preço acelado. Ele tem o seu nível gratuito, que todos os eventos de mudança de estado pelos produtos da AWS são gratuitos, ele não vai te cobrar pra você consumir as coisas lá dentro você tem ali os serviços que você pode personalizar e aí ele vai cobrar não pelo cadastro mas pelo evento da personalização um dólar por milhões de eventos aí personalizados e publicados. E aqui ele pode, eventos dentre as contas, um dólar por milhões de eventos enviados. Então, eu posso fazer um evento cross-account também dentro, porque ele está no modelo service, eu posso fazer um modelo cross-account, tá bom? porque ele está no modelo service, eu posso fazer um modelo cross-account, tá bom? Mais uma vez, para você entender bem o quanto você vai pagar, tá bom? É indicado que você use, vai depender, como ele tem várias possibilidades de uso, tá bom? Então vai depender muito do que você está usando eu vou pedir pra você que use novamente a ws calculator para você chegar em um custo final para esse produto tá porque ele tem muitas formas de uso posso trabalhar com destinos de apre reproduzir eventos registrar esquemas assim o uso é bem grande e variável. O mais comum é o agendador, que é o que faz mais parte do dia a dia da maior parte dos desenvolvedores, trabalhar com agendamentos. Então, as invocações, um dólar por milhão de invocações programadas por mês, após 14 milhões de invocações gratuitas então ele vai te cobrar por um milhão tá é o evento em si ele não cobra o cadastro e cobra por execução bom é na a não ser que o seu cadastro seja muito personalizado aí vai depender do modelo de uso tá vamos fazer um exemplo disso na prática? Eu tenho aqui uma máquina EC2 que é o meu bastion host. Meu bastion host em desenvolvimento eu não quero que ele fique rodando o dia inteiro. Eu quero que ele pare de rodar em determinado momento, em determinada hora. Então vamos lá. O que é que eu vou ter que fazer aqui? Eu vou precisar de um EventBridge. Vou criar aqui o EventBridge. Eu vou precisar de uma Lambda. O que eu quero fazer então vamos lá vou chamar essa lambda aqui de lambda start barra stop o meu event bridge ele vai vir para minha lambda, a minha lambda vai parar o meu Vou guardar aqui no CloudWatch. E ela vai guardar o log de 5 a 5. Vou colocar aqui em cima. Isso aqui, fazer curva na seta. É isso. Então, essa aqui vai ser a nossa arquitetura do nosso agendador hoje. E aí a gente chega... Como que a gente bota na prática né primeiramente vamos para o evento bridge amazon event bridge essa é a telinha do EditBridge. Primeira coisa que você tem que fazer é criar regras. A gente vai agendar, então é programação, tá bom? Mas vou criar pelo CriarRegraDepot porque tem um caminho por lá que você pode entender também. Isso aqui, antes ele era junto dentro do AWS, ele era uma coisa só, hoje eles estão ali na mesma feature, mesmo serviço, mas em um menu diferente. Mas eu posso simplesmente vir aqui em regras, criar regras, clicar em programação e ele te manda para lá. Ou eu posso ir direto para a programação. Bom, nome do cronograma. Bom, nome do cronograma. Primeiramente, nome do cronograma eu vou colocar posso colocar a data e a hora que eu quero que ele execute. Janela flexível é para ele executar dentro de um período de tempo, a partir do início. Então, vamos dizer, a partir do momento que eu colocar ali, se ele vai rodar às 3 horas da tarde, se eu ligar a janela de tempo flexível para 15 minutos, ele tem até às 3h15 para executar. Mas não, eu quero recorrente, quero parar sempre, vou colocar baseado em crom, vou desligar o flexível e basear em crom, o que eu quero? que ele pare aos 10, aos 15 minutos das 16 horas, quando? Todos os dias, de todos os meses de todos os anos ele já vai me dar aqui próxima vez de execução a próxima execução a próxima execução esse aqui eu vou colocar como stop de C2 de stop de C2 tá bom? não preciso definir período de tempo vou para o próximo eu ainda não criei minha lambda bom não preciso definir período de tempo ou próximo eu ainda não criei a lâmpada mas olha o tanto de serviço que eu posso e aqui então antes de eu terminar de criar o meu evento aqui eu vou criar uma função do zero start stop c2 python vou usar a função que a gente já está acostumado vou criar a minha função criei minha função vou colocar meu código lá dentro vou fazer o deploy dele fiz aqui o deploy do meu código eu já estou aqui com o id da minha instância em execução se eu entrar aqui nesse 2 eu tenho embaixo um roxo, eu com o ID da minha instância em execução. Se eu entrar aqui nesse 2, eu tenho um bastion roxo, eu tenho o ID da instância. E ela está executando agora, neste momento. Criei minha Lambda, mas será que a Lambda já vai ter capacidade para fazer isso? Ainda não. Lembra, tudo que a gente vai encontrar de coisas novas na minha Lambda, eu preciso atualizar a role. Eu não tenho aqui uma policy para esse 2. Então, eu vou criar uma política. Tá bom? Vamos seguir aqui o caminho que a gente estava indo. Nome, seguido de policy. Então, eu vou criar aqui minha política, vou criar a política, vou colocar aqui como EC2 o serviço. Eu vou mudar, é muita coisa para a gente procurar no EC2, tá bom? Então, eu vou tentar colocar aqui no modelo JSON e aqui no modelo JSON eu vou colar uma política. Feito isso, exatamente, tudo que é start, tudo que é stop. Coloquei um asterisco aqui na frente de tudo, para a gente não ficar procurando ali na e tudo que é stop. Vou colocar um asterisco aqui na frente de tudo para a gente não ficar procurando ali na lista tudo que eu tenho que colocar. Vamos criar nome da política e C2 pólis Limitada a gravação, vou criar a política aqui. Agora eu vou lá na minha função da lambda vou adicionar, vou anexar a política aqui Feito Agora a minha Lambda Start Stop Tem a permissão para mexer No EC2 Bom, Lambda criada AWS em volta Função Lambda Start Stop EC2 O JSON que eu vou entrar aqui É conforme o meu código Tá pessoal O meu código eu vou entrar aqui é conforme o meu código, tá pessoal? O meu código eu estou pedindo uma entrada de um item chamado action. Então, aqui dentro do meu Amazon Event Bridge, eu vou colocar o corpo do que eu quero e aqui é o stop. Eu quero que ele pare todos os dias. Próximo. Nome. Após a conclusão, você escolhe delete o agendador. Escolherá automaticamente o agendamento após concluir e não tiver nenhuma emulação do destino futuro a planejar. Não vou mexer nisso aqui. Tem retentativa, vou manter, não vou trabalhar a criptografia. Próximo. Perfeito, confere, cria o cronograma. Bom. Está concluindo aqui as etapas Isso pode levar alguns minutos Isso pode levar um tempinho para a criação Mas já está aqui Se eu olhar lá na minha lista de regras Eu tenho aqui aquela que já é gerenciar E se eu olhar aqui para os meus cronogramas, olha só, stop C2. Ele vai rodar às 16h15 neste momento. Vamos ver que horário de Brasília. Olha, são 16h12 então daqui 3 minutinhos a gente volta acompanhando esse item voltando, passaram alguns minutos vamos ver 16h14 nossa SB2 está rodando ainda está executando e ainda não rodou o nosso agendamento vamos dar uma olhadinha no cloud watch quando aparecer no cloud watch um log dessa lambda nós teremos aqui a nossa execução finalizada, tá? Se eu olhar aqui no nosso grupo de logs, nós ainda não temos um grupo de logs para Lambda Start Stop, exatamente porque essa Lambda Start Stop ainda não executou, tá? Então, vamos conferir o nosso agendamento, você pode olhar aqui dentro, ó, tudo certo, as próximas datas, as horas que ele tem que executar, tá bom? E vamos ver aqui dentro se nossa Lambda está executando, né? Lembrando, dentro desse período de agendamento, não é no primeiro ou segundo, tá bom? não é no primeiro segundo tá bom é tem formas de você programar né então assim ele pode levar alguns segundos para fazer isso pra você então olha aí ó bem rápido vamos dar uma olhadinha no nosso log está aí terminando load function carregou fez toda a duração vamos ver se o C2 vai parar ainda está executando e interrompido. Viu? Basicamente, pessoal, funcionou o nosso agendamento. Eu não estou mais pagando aqui os minutos dessa máquina. Objetivamente, como eu não deletei a a máquina eu ainda pago o volume dela, então a AWS ainda está cobrando ali o custo do volume mas eu não estou mais pagando o custo da máquina né, dela estar explore possibilidades, tá bom? Como chamadas de API, criar mais grupos para programação, tá? Você poderia objetivamente, por exemplo, a partir de, se você quiser distribuir, um outro exemplo, resultados de relatório, você poderia fazer um agendamento, chamar uma lambda que leia a base, ele consolida um relatório, mas pode pegar um campo disso e distribuir por e-mail, por exemplo, você mandar para uma SNS, e essa SNS manda para os e-mails das pessoas que ele pode, inclusive, esse relatório com anexo. Está entendendo? é uma forma muito legal de trabalhar é uma ferramenta muito interessante recomendo muito que se use, tá? então é isso, esse foi o EventBridge agradeço muito a atenção de vocês e mais uma vez boa sorte e continuem aí nas tentativas