Tutorial: Crie uma regra EventBridge programada para AWS Lambda funções - Amazon EventBridge

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Tutorial: Crie uma regra EventBridge programada para AWS Lambda funções

É possível configurar uma regra para executar uma função do AWS Lambda em uma programação. Este tutorial mostra como usar o AWS Management Console ou o AWS CLI para criar a regra. Se você quiser usar o, AWS CLI mas ainda não o instalou, consulte Instalando, atualizando e desinstalando a AWS CLI versão 2.

Para agendas, EventBridge não fornece precisão de segundo nível em expressões de agendamento. A melhor resolução ao usar uma expressão cron é um minuto. Devido à natureza distribuída EventBridge e aos serviços de destino, pode haver um atraso de vários segundos entre o momento em que a regra programada é acionada e o momento em que o serviço de destino executa o recurso de destino.

Etapa 1: criar uma função do Lambda

Crie uma função do Lambda para registrar os eventos programados.

Criar uma função do Lambda
  1. Abra o AWS Lambda console em https://console.aws.amazon.com/lambda/.

  2. Escolha Create function (Criar função).

  3. Escolha Author from scratch (Criar do zero).

  4. Digite um nome e uma descrição para a função Lambda. Por exemplo, atribua à função o nome LogScheduledEvent.

  5. Deixe o resto das opções como padrão e escolha Criar função.

  6. Na guia Código da página da função, clique duas vezes em index.js.

  7. Substitua o código existente pelo código a seguir.

    'use strict'; exports.handler = (event, context, callback) => { console.log('LogScheduledEvent'); console.log('Received event:', JSON.stringify(event, null, 2)); callback(null, 'Finished'); };
  8. Escolha Deploy (Implantar).

Etapa 2: Criar uma regra

Crie uma regra para executar a função do Lambda criada na etapa 1 em uma programação.

Você pode usar o console ou o AWS CLI para criar a regra. Para usar o AWS CLI, primeiro você concede à regra permissão para invocar sua função Lambda. Em seguida, você pode criar a regra e adicionar a função do Lambda como destino.

Para criar uma regra (console)
  1. Abra o EventBridge console da Amazon em https://console.aws.amazon.com/events/.

  2. No painel de navegação, escolha Regras.

  3. Escolha Create rule.

  4. Insira um nome e uma descrição para a regra.

    Uma regra não pode ter o mesmo nome que outra na mesma Região e barramento de eventos.

  5. Em Barramento de eventos, selecione o barramento de eventos que você deseja associar a essa regra. Se quiser que essa regra faça a correspondência com eventos provenientes da sua conta, escolha Barramento de eventos padrão da AWS . Quando um serviço da AWS em sua conta emite um evento, ele sempre vai para o barramento de eventos padrão da sua conta.

  6. Em Rule type (Tipo de regra), escolha Schedule (Programação).

  7. Escolha Próximo.

  8. Em Padrão de programação, escolha Uma programação que é executada em uma taxa regular, como a cada 10 minutos, insira 5 e escolha Minutos na lista suspensa.

  9. Selecione Next (Próximo).

  10. Em Tipos de destino, escolha Serviço da AWS .

  11. Em Selecionar um destino, escolha a função do Lambda na lista suspensa.

  12. Em Função, selecione a função do Lambda criada na seção Etapa 1: criar uma função do Lambda. Neste exemplo, selecione LogScheduledEvent.

  13. Escolha Próximo.

  14. Escolha Próximo.

  15. Analise os detalhes da regra e selecione Criar regra.

Para criar uma regra (AWS CLI)
  1. Para criar uma regra que seja executada em um cronograma, use o comando put-rule.

    aws events put-rule \ --name my-scheduled-rule \ --schedule-expression 'rate(5 minutes)'

    Quando essa regra é executada, ela cria um evento e o envia aos destinos. O comando a seguir é um exemplo de evento.

    { "version": "0", "id": "53dc4d37-cffa-4f76-80c9-8b7d4a4d2eaa", "detail-type": "Scheduled Event", "source": "aws.events", "account": "123456789012", "time": "2015-10-08T16:53:06Z", "region": "us-east-1", "resources": [ "arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule" ], "detail": {} }
  2. Para conceder permissão ao EventBridge service principal (events.amazonaws.com) para executar a regra, use o add-permission comando.

    aws lambda add-permission \ --function-name LogScheduledEvent \ --statement-id my-scheduled-event \ --action 'lambda:InvokeFunction' \ --principal events.amazonaws.com \ --source-arn arn:aws:events:us-east-1:123456789012:rule/my-scheduled-rule
  3. Crie o arquivo targets.json com o seguinte conteúdo.

    [ { "Id": "1", "Arn": "arn:aws:lambda:us-east-1:123456789012:function:LogScheduledEvent" } ]
  4. Para adicionar a função do Lambda que você criou na etapa 1 à regra, use o comando put-targets.

    aws events put-targets --rule my-scheduled-rule --targets file://targets.json

Etapa 3: verificar a regra

Espere ao menos cinco minutos após concluir a etapa 2, é possível verificar se a sua função do Lambda foi invocada.

Visualize a saída da sua função do Lambda
  1. Abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, selecione Logs.

  3. Selecione o nome do grupo de logs para sua função do Lambda (/aws/lambda/function-name).

  4. Selecione o nome do fluxo de logs para visualizar os dados fornecidos pela função para a instância que você iniciou.

Etapa 4: confirmar o êxito

Se você ver o evento Lambda nos CloudWatch registros, concluiu com êxito este tutorial. Se o evento não estiver em seus CloudWatch registros, comece a solucionar problemas verificando se a regra foi criada com sucesso e, se a regra parecer correta, verifique se o código da sua função Lambda está correto.

Etapa 5: limpar os recursos

Agora você pode excluir os recursos criados para este tutorial, a menos que queira mantê-los. Ao excluir AWS recursos que você não está mais usando, você evita cobranças desnecessárias em sua AWS conta.

Para excluir a (s) EventBridge regra (s)
  1. Abra a página Regras do EventBridge console.

  2. Selecione as regras que foram criadas.

  3. Escolha Delete (Excluir).

  4. Escolha Delete (Excluir).

Para excluir as funções do Lambda
  1. Abra a página Funções do console do Lambda.

  2. Selecione as funções que foram criadas.

  3. Escolha Ações, Excluir.

  4. Escolha Excluir.