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
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
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-" }] } }
Etapas:
Pré-requisitos
Para concluir este tutorial, serão necessários os seguintes recursos:
Uma conta da AWS. Crie uma conta da AWS
, se ainda não tiver uma. AWS CLI instalada. Para instalar a AWS CLI, consulte Instalar, atualizar e desinstalar a AWS CLI versão 2.
Node.js 12.x instalado. Para instalar o Node.js, consulte Downloads
.
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
-
Instale o Git
e instale a CLI do AWS Serverless Application Model na sua máquina local. -
Crie um novo diretório e navegue até esse diretório em um terminal.
-
Na linha de comando, insira
git clone https://github.com/aws-samples/amazon-eventbridge-producer-consumer-example. -
Na linha de comando, execute o seguinte comando:
cd ./amazon-eventbridge-producer-consumer-example sam deploy --guided -
No terminal, faça o seguinte:
-
Em
Stack Name, insira um nome para a pilha. Por exemplo, nomeie a pilha comoTest. -
Em
AWS Region, insira a região. Por exemplo,us-west-2. -
Em
Confirm changes before deploy, digiteY. -
Em
Allow SAM CLI IAM role creation, insiraY -
Em
Save arguments to configuration file, insiraY -
Em
SAM configuration file, digitesamconfig.toml. -
Em
SAM configuration environment, digitedefault.
-
Etapa 2: executar a aplicação
Agora que os recursos foram configurados, o console será usado para testar as funções.
Executar o aplicativo
Abra o console do Lambda
na mesma região em que implementou a aplicação do AWS SAM. Existem quatro funções do Lambda com o prefixo atm-demo. Selecione a função atmProducerFn e escolha Ações, Testar.
Insira
Testpara o Nome.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
Abra o console do CloudWatch
na mesma região em que executou a aplicação do AWS SAM. Escolha Logs e depois escolha Grupo de logs.
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.
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.
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
-
Abra a página Regras
no console do EventBridge. -
Selecione as regras que foram criadas.
-
Escolha Excluir.
-
Selecione a opção Excluir.
Para excluir as funções do Lambda
-
Abra a página Funções
do console do Lambda. -
Selecione as funções que foram criadas.
-
Selecione Ações, Excluir.
-
Escolha Excluir.
Para excluir o grupo de logs do CloudWatch Logs
-
Abra o console do CloudWatch
. -
Escolha Logs, Grupos de logs.
-
Selecione os grupos de logs que foram criados neste tutorial.
-
Selecione Actions (Ações), Delete log group(s) (Excluir grupo(s) de log).
-
Escolha Excluir.