Tutorial: Crie um EventBridge canal que filtra os eventos de origem - 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 um EventBridge canal que filtra os eventos de origem

Neste tutorial, será criado um pipe que conectará uma origem de fluxo do DynamoDB a um destino de fila do Amazon SQS. Isto inclui especificar um padrão de evento para o pipe usar ao filtrar eventos para entrega na fila. Em seguida, o pipe será testado para garantir que somente os eventos desejados sejam entregues.

Pré-requisitos: criar a origem e o destino

Antes de criar o pipe, é preciso criar a origem e o destino aos quais o pipe deve se conectar. Neste caso, um fluxo de dados do Amazon DynamoDB para atuar como origem do pipe e uma fila do Amazon SQS como destino do pipe.

Para simplificar essa etapa, você pode usá-la AWS CloudFormation para implantar os recursos de origem e de destino. Para fazer isso, você criará um CloudFormation modelo definindo os seguintes recursos:

  • A origem do pipe

    Uma tabela do Amazon DynamoDB, chamada pipe-tutorial-source, com um fluxo habilitado para fornecer um fluxo ordenado de informações sobre alterações em itens da tabela do DynamoDB.

  • O destino do pipe

    Uma fila do Amazon SQS, chamada pipe-tutorial-target, para receber o fluxo de eventos do DynamoDB do seu pipe.

Para criar o CloudFormation modelo para provisionar recursos de tubulação
  1. Copie o texto do modelo JSON na seção AWS CloudFormation modelo para gerar pré-requisitos abaixo.

  2. Salve o modelo como um arquivo JSON (por exemplo, ~/pipe-tutorial-resources.json).

Em seguida, use o arquivo de modelo que você acabou de criar para provisionar uma CloudFormation pilha.

nota

Depois de criar sua CloudFormation pilha, você será cobrado pelos AWS recursos que ela provisiona.

Provisione os pré-requisitos do tutorial usando a CLI AWS
  • Execute o seguinte comando da CLI, onde --template-body especifica a localização do seu arquivo de modelo:

    aws cloudformation create-stack --stack-name pipe-tuturial-resources --template-body file://~/pipe-tutorial-resources.json
Provisione os pré-requisitos do tutorial usando o console CloudFormation
  1. Abra o AWS CloudFormation console em https://console.aws.amazon.com/cloudformation.

  2. Em Pilhas, selecione Criar pilha e Com novos recursos (padrão).

    CloudFormation exibe o assistente de criação de pilha.

  3. Em Pré-requisito: preparar modelo, deixe o padrão, O modelo está pronto, selecionado.

  4. Para Especificar modelo, selecione Fazer upload de um arquivo de modelo e Escolher arquivo.

  5. Configure a pilha e os recursos que ela provisionará:

    • Para Stack name (Nome da pilha), insira pipe-tuturial-resources.

    • Em Parâmetros, deixe os nomes padrão para a tabela do DynamoDB e a fila do Amazon SQS.

    • Escolha Próximo.

  6. Escolha Próximo e Enviar.

    CloudFormation cria a pilha e provisiona os recursos definidos no modelo.

Para obter mais informações sobre CloudFormation, consulte O que é AWS CloudFormation? no Guia do AWS CloudFormation usuário.

Etapa 1: criar o pipe

Com a origem e o destino do pipe provisionados, agora é possível criar o pipe para conectar os dois serviços.

Crie o tubo usando o EventBridge console
  1. Abra o EventBridge console da Amazon em https://console.aws.amazon.com/events/.

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

  3. Escolha Criar pipe.

  4. Em Nome nomeie seu pipe pipe-tutorial.

  5. Especifique a origem do fluxo de dados do DynamoDB:

    1. Em Detalhes, em Origem, selecione Fluxo de dados do DynamoDB.

      EventBridge exibe as configurações de origem específicas do DynamoDB.

    2. Em fluxo do DynamoDB, selecione pipe-tutorial-source.

      Deixe a Posição inicial definida como padrão, Latest.

    3. Escolha Próximo.

  6. Especifique e teste um padrão de evento para filtrar eventos:

    A filtragem permite controlar quais eventos os pipes enviam para enriquecimento ou para o destino. O pipe envia apenas eventos que correspondam ao padrão do evento para o enriquecimento ou para o destino.

    Para obter mais informações, consulte Filtragem de eventos no Amazon Pipes EventBridge .

    nota

    Só há uma cobrança pelos eventos enviados para o enriquecimento ou para o destino.

    1. Em Evento de amostra : opcional, deixe Eventos da AWS selecionados e certifique-se de que o evento 1 do DynamoDB Stream Sample esteja selecionado.

      Este é o exemplo de evento que será usado para testar nosso padrão de eventos.

    2. Em Padrão de evento, insira o seguinte padrão de evento:

      { "eventName": ["INSERT", "MODIFY"] }
    3. Escolha Padrão de teste.

      EventBridge exibe uma mensagem informando que o evento de amostra corresponde ao padrão do evento. Isto ocorre porque o evento de amostra tem um valor eventName de INSERT.

    4. Escolha Próximo.

  7. Escolha Próximo para ignorar a especificação de um enriquecimento.

    Neste exemplo, um enriquecimento não será selecionado. Os enriquecimentos permitem que a seleção um serviço para aprimorar os dados da origem antes de enviá-los ao destino. Consulte mais detalhes em Enriquecimento de eventos em Amazon Pipes EventBridge .

  8. Especifique sua fila do Amazon SQS como destino do pipe:

    1. Em Detalhes, para o Serviço de destino, selecione Fila do Amazon SQS.

    2. Em Fila, selecione pipe-tutorial-target.

    3. Deixe a seção do Transformador de entrada de destino vazia.

      Para obter mais informações, consulte Transformação EventBridge de entradas do Amazon Pipes.

  9. Escolha Criar pipe.

    EventBridge cria a tubulação e exibe a página de detalhes da tubulação. O pipe estará pronto quando seu status for atualizado para Running.

Etapa 2: confirme os eventos dos filtros de pipe

O Pipe está configurado, mas ainda não recebeu eventos da tabela.

Para testar o pipe, as entradas na tabela do DynamoDB serão atualizadas. Cada atualização gerará eventos que o fluxo do DynamoDB envia para nosso pipe. Alguns corresponderão ao padrão de evento especificado; outros, não. Em seguida, é possível examinar a fila do Amazon SQS para garantir que o pipe entregou somente os eventos que correspondam ao nosso padrão de eventos.

Atualize os itens da tabela para gerar eventos
  1. Abra o console do DynamoDB em. https://console.aws.amazon.com/dynamodb/

  2. Na barra de navegação à esquerda, selecione Tabelas. Selecione a tabela pipe-tutorial-source.

    O DynamoDB exibe a página de detalhes da tabela para pipe-tutorial-source.

  3. Selecione Explorar itens da tabela e Criar item.

    O DynamoDB exibe a página Criar item.

  4. Em Atributos, crie um novo item de tabela:

    1. Em Álbum, insira Album A.

    2. Em Artista, insira Artist A.

    3. Selecione Create Item (Criar item).

  5. Atualize o item da tabela:

    1. Em Itens retornados, escolha Álbum A.

    2. Selecione Adicionar novo atributo e selecione String.

    3. Insira um novo valor de Song, com um valor de Song A.

    4. Escolha Salvar alterações.

  6. Exclua o item da tabela:

    1. Em Itens retornados, marque Álbum A.

    2. No menu Ações, selecione Excluir itens.

Três atualizações foram feitas no item da tabela. Isto gera três eventos para o fluxo de dados do DynamoDB:

  • Um evento INSERT quando o item foi criado.

  • Um evento MODIFY quando foi adicionado um atributo ao item.

  • Um evento REMOVE em que o item foi excluído.

No entanto, o padrão de evento especificado para o pipe deve filtrar todos os eventos que não sejam eventos INSERT ou MODIFY. Em seguida, confirme se o pipe entregou os eventos esperados à fila.

Confirme se os eventos esperados foram entregues à fila
  1. Abra o console do Amazon SQS em. https://console.aws.amazon.com/sqs/

  2. Escolha a fila pipe-tutorial-target.

    O Amazon SQS exibe a página de detalhes da fila.

  3. Selecione Enviar e receber mensagens e, em Receber mensagens, escolha Sondagem de mensagens.

    A fila pesquisa o pipe e lista os eventos que recebe.

  4. Escolha o nome do evento para ver o JSON do evento que foi entregue.

Deve haver dois eventos na fila: um com um eventName de INSERT e outro com um eventName de MODIFY. No entanto, o pipe não entregou o evento para excluir o item da tabela, pois esse evento tinha um eventName de REMOVE, que não correspondia ao padrão de evento especificado no pipe.

Etapa 3: Limpar os recursos

Primeiro, exclua o pipe em si.

Exclua o tubo usando o EventBridge console
  1. Abra o EventBridge console da Amazon em https://console.aws.amazon.com/events/.

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

  3. Selecione o pipe pipe-tutorial e escolha Excluir.

Em seguida, exclua a CloudFormation pilha para evitar a cobrança pelo uso contínuo dos recursos provisionados nela.

Exclua os pré-requisitos do tutorial usando a CLI AWS
  • Execute o seguinte comando da CLI, onde --stack-name especifica a localização da sua pilha:

    aws cloudformation delete-stack --stack-name pipe-tuturial-resources
Exclua os pré-requisitos do tutorial usando o console AWS CloudFormation
  1. Abra o AWS CloudFormation console em https://console.aws.amazon.com/cloudformation.

  2. Na página Pilhas, selecione a pilha e Excluir.

  3. Selecione Excluir para confirmar sua ação.

AWS CloudFormation modelo para gerar pré-requisitos

Use o JSON abaixo para criar um CloudFormation modelo para provisionar os recursos de origem e destino necessários para este tutorial.

{ "AWSTemplateFormatVersion": "2010-09-09", "Description" : "Provisions resources to use with the EventBridge Pipes tutorial. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters" : { "SourceTableName" : { "Type" : "String", "Default" : "pipe-tutorial-source", "Description" : "Specify the name of the table to provision as the pipe source, or accept the default." }, "TargetQueueName" : { "Type" : "String", "Default" : "pipe-tutorial-target", "Description" : "Specify the name of the queue to provision as the pipe target, or accept the default." } }, "Resources": { "PipeTutorialSourceDynamoDBTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "AttributeDefinitions": [{ "AttributeName": "Album", "AttributeType": "S" }, { "AttributeName": "Artist", "AttributeType": "S" } ], "KeySchema": [{ "AttributeName": "Album", "KeyType": "HASH" }, { "AttributeName": "Artist", "KeyType": "RANGE" } ], "ProvisionedThroughput": { "ReadCapacityUnits": 10, "WriteCapacityUnits": 10 }, "StreamSpecification": { "StreamViewType": "NEW_AND_OLD_IMAGES" }, "TableName": { "Ref" : "SourceTableName" } } }, "PipeTutorialTargetQueue": { "Type": "AWS::SQS::Queue", "Properties": { "QueueName": { "Ref" : "TargetQueueName" } } } } }