O blog da AWS

Exclua automaticamente os agendamentos após a conclusão com o Amazon EventBridge Scheduler

O Amazon EventBridge Scheduler agora oferece suporte à configuração da exclusão automática de programações após a conclusão. Agora você pode configurar agendamentos únicos e recorrentes com uma data de término a ser excluída automaticamente após a conclusão para evitar o gerenciamento de agendamentos individuais.O Amazon EventBridge Scheduler permite que você crie, execute e gerencie programações em grande escala. Usando o EventBridge Scheduler, você pode programar milhões de tarefas para invocar mais de 270 serviços da AWS e mais de 6.000 operações de API, como AWS Lambda, AWS Step Functions e Amazon SNS.

Por padrão, o EventBridge Scheduler permite que os clientes tenham 1 milhão de agendamentos por conta, que podem ser aumentados conforme necessário. No entanto, os agendamentos concluídos são contabilizados nos limites da cota da conta. Além disso, os agendamentos concluídos são visíveis ao listar os agendamentos e exigem que os clientes os removam. Alguns clientes criaram seus próprios padrões para remover automaticamente os agendamentos concluídos e, desde o anúncio do EventBridge Scheduler em novembro passado, esse foi um dos recursos mais solicitados pelos clientes.

Excluindo após a conclusão

Quando você configura a exclusão automática de um agendamento, o Agendador do EventBridge exclui o agendamento logo após sua última invocação de destino. Você pode configurar a exclusão automática ao criar a agenda ou pode atualizar as configurações da agenda a qualquer momento antes da última invocação.

Você pode definir essa configuração em agendas únicas e recorrentes.

  • Programações únicas: sua agenda é excluída após a agenda ter invocado sua meta uma vez.
  • Programações recorrentes: definidas com expressões de taxa ou cron, sua agenda é excluída após a última invocação.

Se todas as novas tentativas forem esgotadas devido à falha em um agendamento configurado com exclusão automática, o agendamento será excluído logo após a última tentativa malsucedida.

Console action after schedule completition

Com esse novo recurso, você pode economizar tempo, recursos e custos operacionais ao gerenciar seus cronogramas.

Configurando agendas para excluir após a conclusão

Você pode criar agendamentos de execução de processos que são excluídas automaticamente após a conclusão do AWS Management Console, do AWS SDK ou da AWS CLI em todas as regiões da AWS em que o EventBridge Scheduler está disponível.

Por exemplo, imagine que você é um desenvolvedor em uma plataforma que permite que os usuários finais recebam notificações quando uma tarefa é concluída. Você já está usando o EventBridge Scheduler para implementar esse recurso. Para cada tarefa que seus usuários criam em seu aplicativo, seu código cria uma nova agenda no EventBridge Scheduler. Agora você pode configurar todos esses agendamentos para serem excluídos automaticamente após a conclusão. E logo após a execução das programações, elas são removidas do Agendador do EventBridge, permitindo que você escale seu sistema e continue criando agendas, facilitando o gerenciamento de suas agendas ativas e limites de cotas.

Vamos ver como você pode implementar esse exemplo com o novo recurso do EventBridge Scheduler. Quando um usuário cria uma nova tarefa com um lembrete, uma função é acionada a partir do seu aplicativo. Essa função cria um agendamento único no EventBridge Scheduler.

Create a schedule diagram

Este exemplo mostra como você pode criar um novo cronograma único que é automaticamente excluído após a conclusão usando o AWS CLI e tem o SNS como destino. Certifique-se de atualizar o AWS CLI para a versão mais recente. Em seguida, você pode criar um novo cronograma com o parâmetro action-after-completion ‘DELETE’.

$ aws scheduler create-schedule --name SendEmailOnce \
--schedule-expression ”at(2023-08-02T17:35:00)",\ --schedule-expression-timezone "Europe/Helsinki" \ --flexible-time-window "{\"Mode\": \"OFF\"}" \ --target "{\"Arn\": \"arn:aws:sns:us-east-1:xxx:test-send-email\", \"RoleArn\": \" arn:aws:iam::xxxx:role/sam_scheduler_role\" }" \
--action-after-completion 'DELETE'
Bash

Esse comando cria uma agenda única com o nome SendEmailOnce, que é executada em uma data específica, definida na expressão do cronograma, e em um fuso horário específico, definido no fuso horário da expressão da agenda. Essa programação não está usando o recurso de janela de horário flexível. Em seguida, você deve definir a meta para esse cronograma. Este envia uma mensagem para um tópico do SNS.

Você pode validar se sua programação foi criada corretamente na AWS CLI com o comando get-schedule.

$ aws scheduler get-schedule --name sendEmailOnce 
 {
“actionAfterCompletion”: “DELETE”, “Arn”: “arn:aws:scheduler:us-east- 1:905614108351:schedule/default/sendEmailOnce”, 
 “CreationDate”: 1690874334.83, “FlexibleTimeWindow”: {“Mode”: “OFF”
}, “Groupe pName”: “default”, “lastModificationDate”: 1690874334.83, 
 “Nome”: “sendEmailOnce3", “scheduleExpression”: “at (2023-08-02T 17:35:00)”, 
 “scheduleExpressionTimezone”: 
 “Europa/Helsinque”, “Estado”: “HABILITADO”, 
  “Target”: {“Arn”: 
 “arn:aws:sns:us-east-1:xxxx:test-send-email”, “retryPolicy”: {“MaximumEventageInSeconds”: 86400, “MaximumRetryAttempts”: 185}, 
 “RoLearn”: “arn:aws:iam: 
 :xxxx:role/scheduler_role”}} 
Bash

Além disso, você pode ver os detalhes do cronograma no Console de Gerenciamento da AWS.

Schedule details

Agora, quando a data da notificação chega, o EventBridge Scheduler invoca o alvo configurado na agenda, neste caso, o SNS, e envia uma notificação por e-mail ao cliente.

Schedule starts

Logo após a conclusão dessa agenda, se você listar as agendas, verá que a agenda foi excluída e não está mais listada.

$ aws scheduler list-schedules 
 {
“Agendas”: []
} 
Bash

Benefícios da automação

Tradicionalmente, muitos problemas que o EventBridge Scheduler resolve eram resolvidos usando processos em lote e modelos baseados em pull.

Algumas organizações estão usando o EventBridge Scheduler para substituir seus modelos baseados em pull por um modelo mais dinâmico baseado em push. Antes de implementar o Scheduler, eles confiavam no cliente para solicitar os dados quando precisassem. Agora, com o EventBridge Scheduler, eles estão criando cronogramas para informar seus clientes em momentos críticos de sua jornada.

Por exemplo, uma companhia aérea pode usar o EventBridge Scheduler para criar horários únicos 24 horas, 4 horas e 2 horas antes do voo, para manter seus passageiros atualizados com o status do voo. Os clientes recebem uma notificação com o link para o check-in on-line, o número do balcão de check-in, informações de retirada de bagagem e quaisquer alterações de voo que ocorram. Dessa forma, os passageiros estão sempre atualizados sobre o status do voo e podem tomar medidas imediatas. Esse modelo dinâmico não só ajuda a melhorar a experiência do cliente, mas também melhora a eficiência operacional da companhia aérea.

Outras organizações usam o EventBridge Scheduler para substituir as operações em lote, pois você pode configurar uma programação que inicia um processo em lote na hora do dia que você precisar. Além disso, você pode aproveitar os fusos horários do EventBridge Scheduler e executar os processos no horário que fizer sentido para seu cliente final.

Por exemplo, considere uma instituição financeira internacional que deve enviar aos clientes um extrato de sua conta no final do dia. Você pode usar o EventBridge Scheduler para configurar uma programação recorrente para cada um de seus clientes que envia um relatório no final do dia do fuso horário de seus clientes. Dessa forma, você pode melhorar a experiência do cliente, pois agora o sistema está personalizado de acordo com suas configurações, e também reduzir a sobrecarga operacional, pois as operações de processamento são distribuídas ao longo do dia.

Além disso, o EventBridge Scheduler resolve muitos novos casos de uso para clientes. Por exemplo, se você for uma instituição financeira que administra pagamentos, poderá criar um cronograma único para cada grande transação que precise de confirmação. Se a transação não for confirmada quando a programação for executada, você poderá cancelar a transação. Isso diminui o risco de lidar com transações, melhora a experiência do cliente e também melhora a automação de seus processos, tornando-os em tempo real.

Outro caso de uso é lidar com as datas de vencimento do cartão de crédito. Você pode criar uma agenda única que envie um e-mail ao cliente para atualizar as informações do cartão de crédito um mês antes da data de expiração. Essa solução elimina a sobrecarga operacional em comparação com a implementação tradicional do uso de servidores e processos em lote.

Conclusão

Nos casos de uso listados anteriormente, a automação e o agendamento de tarefas melhoram a experiência do usuário final, eliminam o trabalho pesado indiferenciado e se beneficiam do uso do novo recurso de remover agendamentos após sua conclusão.

Esta postagem do blog apresenta o novo recurso do Amazon EventBridge Scheduler que exclui automaticamente as programações concluídas. Esse recurso simplifica o uso do EventBridge Scheduler, reduz a sobrecarga operacional do gerenciamento de agendamentos em grande escala e permite que você escale ainda mais. Na página de documentação desse recurso, você pode encontrar mais informações.

Para começar a usar o EventBridge Scheduler, visite Serverless Land patterns, onde você pode encontrar mais de 20 padrões usando esse serviço.

 

Este artigo foi traduzido do Blog da AWS em Inglês.

 


Sobre a autora

Marcia Villalba é Principal Developer Advocate na AWS.

 

 

 

 

Tradutor

Daniel Abib é Enterprise Solution Architect na AWS, com mais de 25 anos trabalhando com gerenciamento de projetos, arquiteturas de soluções escaláveis, desenvolvimento de sistemas e CI/CD, microsserviços, arquitetura Serverless & Containers e segurança. Ele trabalha apoiando clientes corporativos, ajudando-os em sua jornada para a nuvem.

https://www.linkedin.com/in/danielabib/