Tutorial: criar uma aplicação de exemplo do Amazon EventBridge - 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: criar uma aplicação de exemplo do Amazon EventBridge

É possível usar o EventBridge para rotear eventos para funções específicas do Lambda usando regras.

Neste tutorial, serão usados a AWS CLI, o Node.js e o código no repositório do GitHub para criar o seguinte:

  • Uma função AWS Lambda que produz eventos para transações bancárias em caixas eletrônicos.

  • Para usar uma função do Lambda como destinos de uma regra do EventBridge.

  • e a regra que roteia os eventos criados para a função downstream correta com base em um padrão de evento.

Este exemplo usa modelos do AWS SAM para definir as regras do EventBridge. Para saber mais sobre o uso de modelos do AWS SAM com o EventBridge, consulte Usando AWS Serverless Application Model modelos para implantar EventBridge recursos da Amazon.

No repositório, o subdiretório atmProducer contém handler.js, que representa o serviço ATM que produz eventos. Este código é um manipulador do Lambda escrito em Node.js e publica eventos no EventBridge por meio do AWS SDK usando esta linha de código em JavaScript.

const result = await eventbridge.putEvents(params).promise()

Esse diretório também contém events.js, listando várias transações de teste em uma matriz de entradas. Um único evento é definido em JavaScript da seguinte forma:

{ // Event envelope fields Source: 'custom.myATMapp', EventBusName: 'default', DetailType: 'transaction', Time: new Date(), // Main event body Detail: JSON.stringify({ action: 'withdrawal', location: 'MA-BOS-01', amount: 300, result: 'approved', transactionId: '123456', cardPresent: true, partnerBank: 'Example Bank', remainingFunds: 722.34 }) }

A seção Detalhes do evento especifica os atributos da transação. Isso inclui a localização do caixa eletrônico, o valor, o banco parceiro e o resultado da transação.

O arquivo handler.js no subdiretório atmConsumer contém três funções:

exports.case1Handler = async (event) => { console.log('--- Approved transactions ---') console.log(JSON.stringify(event, null, 2)) } exports.case2Handler = async (event) => { console.log('--- NY location transactions ---') console.log(JSON.stringify(event, null, 2)) } exports.case3Handler = async (event) => { console.log('--- Unapproved transactions ---') console.log(JSON.stringify(event, null, 2)) }

Cada função recebe eventos de transação, que são registrados por meio das declarações console.log no Amazon CloudWatch Logs. As funções do consumidor operam independentemente do produtor e desconhecem a origem dos eventos.

A lógica de roteamento está contida nas regras do EventBridge que são implantadas pelo modelo da aplicação do AWS SAM. As regras avaliam o fluxo de entrada de eventos e roteiam os eventos correspondentes para as funções do Lambda de destino.

As regras usam padrões de eventos que são objetos JSON com a mesma estrutura dos eventos aos quais correspondem. Aqui está o padrão do evento para uma das regras.

{ "detail-type": ["transaction"], "source": ["custom.myATMapp"], "detail": { "location": [{ "prefix": "NY-" }] } }

Pré-requisitos

Para concluir este tutorial, serão necessários os seguintes recursos:

Etapa 1: criar uma aplicação

Para configurar a aplicação de exemplo, serão usados a AWS CLI e o Git para criar os recursos da AWS necessários.

Para criar o aplicativo
  1. Faça login na AWS.

  2. Instale o Git e instale a CLI do AWS Serverless Application Model na sua máquina local.

  3. Crie um novo diretório e navegue até esse diretório em um terminal.

  4. Na linha de comando, insira git clone https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example.

  5. Na linha de comando, execute o seguinte comando:

    cd ./amazon-eventbridge-producer-consumer-example sam deploy --guided
  6. No terminal, faça o seguinte:

    1. Em Stack Name, insira um nome para a pilha. Por exemplo, nomeie a pilha como Test.

    2. Em AWS Region, insira a região. Por exemplo, us-west-2.

    3. Em Confirm changes before deploy, digite Y.

    4. Em Allow SAM CLI IAM role creation, insira Y

    5. Em Save arguments to configuration file, insira Y

    6. Em SAM configuration file, digite samconfig.toml.

    7. Em SAM configuration environment, digite default.

Etapa 2: executar a aplicação

Agora que os recursos foram configurados, o console será usado para testar as funções.

Executar o aplicativo
  1. Abra o console do Lambda na mesma região em que implementou a aplicação do AWS SAM.

  2. Existem quatro funções do Lambda com o prefixo atm-demo. Selecione a função atmProducerFn e escolha Ações, Testar.

  3. Insira Test para o Nome.

  4. Escolha Testar.

Etapa 3: conferir os logs e verificar se a aplicação funciona

Agora que executou a aplicação, usará o console para verificar os CloudWatch Logs.

Para verificar os logs
  1. Abra o console do CloudWatch na mesma região em que executou a aplicação do AWS SAM.

  2. Escolha Logs e depois escolha Grupo de logs.

  3. Selecione o grupo de logs que contém atmConsumerCase1. São vistos dois fluxos representando as duas transações aprovadas pelo caixa eletrônico. Escolha o fluxo de logs para visualizar a saída.

  4. Navegue de volta para a lista de grupos de logs e selecione o grupo de log que contém atmConsumerCase2. Serão vistos dois fluxos representando as duas transações correspondentes ao filtro de localização de Nova York.

  5. Navegue de volta para a lista de grupos de logs e selecione o grupo de log que contém atmConsumerCase3. Abra o fluxo para ver as transações negadas.

Etapa 4: limpar os recursos

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

Para excluir as regras do EventBridge
  1. Abra a página Regras no console do EventBridge.

  2. Selecione as regras que foram criadas.

  3. Escolha Excluir.

  4. Selecione a opção 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. Selecione Ações, Excluir.

  4. Escolha Excluir.

Para excluir o grupo de logs do CloudWatch Logs
  1. Abra o console do CloudWatch.

  2. Escolha Logs, Grupos de logs.

  3. Selecione os grupos de logs que foram criados neste tutorial.

  4. Selecione Actions (Ações), Delete log group(s) (Excluir grupo(s) de log).

  5. Escolha Excluir.