Conceitos básicos: criar um pipe do Amazon EventBridge
Para nos familiarizarmos com os pipes e seus recursos, usaremos um modelo do CloudFormation para configurar um pipe do EventBridge e os componentes associados. Em seguida, poderemos explorar atributos de pipe variados.
O modelo cria um pipe do EventBridge que conecta um fluxo de uma tabela do DynamoDB a uma fila do Amazon SQS. Sempre que um registro é criado ou modificado na tabela do banco de dados, o pipe envia o evento resultante para a fila.
O pipe implantado consiste em:
Uma tabela (e um fluxo) do DynamoDB para funcionar como a origem do pipe e uma fila do Amazon SQS como o destino.
Uma função de execução que concede ao EventBridge as permissões necessárias para acessar a tabela do DynamoDB e a fila do Amazon SQS.
O pipe propriamente dito, que contém um filtro de evento que só seleciona eventos gerados quando um item da tabela é criado (inserido) ou modificado.
Para obter detalhes técnicos específicos do modelo, consulte Detalhes do modelo.
Criação do pipe usando o CloudFormation
Para criar o pipe e os recursos associados, criaremos um modelo do CloudFormation e o usaremos para criar uma pilha contendo um pipe de amostra, completo com origem e destino.
Importante
Você receberá uma cobrança pelos recursos da Amazon usados se criar uma pilha com base nesse modelo.
Primeiro, crie o modelo do CloudFormation.
Na seção Modelo, clique no ícone de cópia na guia JSON ou YAML para copiar o conteúdo do modelo.
Copie o conteúdo do modelo em um novo arquivo.
Salve o arquivo localmente.
Em seguida, use o arquivo de modelo que você salvou para provisionar uma pilha do CloudFormation.
Abra o console do CloudFormation em https://console.aws.amazon.com/cloudformation/
. Na página Pilhas, no menu Criar pilha, escolha com novos recursos (padrão).
Especifique o modelo:
Em Pré-requisito, escolha Escolher um modelo existente.
Em Especificar modelo, escolha Fazer upload de um arquivo de modelo.
Selecione Escolher arquivo, navegue até o arquivo de modelo e selecione-o.
Escolha Próximo.
Especifique os detalhes da pilha:
Digite um nome de pilha.
Para parâmetros, aceite os valores padrão ou insira os próprios.
Escolha Próximo.
Configurar as opções da pilha:
Em Opções de falha de pilha, escolha Excluir todos os recursos recém-criados.
nota
A escolha dessa opção evita que você seja cobrado por recursos cuja política de exclusão especifica que eles sejam retidos mesmo que a criação da pilha falhe. Para obter mais informações, consulte atributo
DeletionPolicyno Guia do usuário do CloudFormation.Aceite todos os outros valores padrão.
Em Capacidades, marque a caixa para confirmar que o CloudFormation pode criar recursos do IAM em sua conta.
Escolha Próximo.
Revise os detalhes a pilha e selecione Enviar.
Criar a pilha usando o CloudFormation (AWS CLI)
Você também pode usar a AWS CLI para criar a pilha.
-
Use o comando
create-stack.Aceite os valores de parâmetro padrão do modelo, especificando o nome da pilha. Use o parâmetro
template-bodypara passar o conteúdo do modelo, outemplate-urlpara especificar um local de URL.aws cloudformation create-stack \ --stack-nameeventbridge-rule-tutorial\ --template-bodytemplate-contents\ --capabilities CAPABILITY_IAMSubstitua o(s) valor(es) padrão de um ou mais parâmetros de modelo. Por exemplo:
aws cloudformation create-stack \ --stack-nameeventbridge-rule-tutorial\ --template-bodytemplate-contents\ --parameters \ ParameterKey=SourceTableName,ParameterValue=pipe-example-source\ ParameterKey=TargetQueueName,ParameterValue=pipe-example-target\ ParameterKey=PipeName,ParameterValue=pipe-with-filtering-example\ --capabilities CAPABILITY_IAM
O CloudFormation cria a pilha. Quando a criação da pilha for concluída, os recursos da pilha estarão prontos para uso. Você pode usar a guia Recursos na página de detalhes da pilha para visualizar os recursos que foram provisionados em sua conta.
Exploração dos recursos de pipe
Depois que o pipe tiver sido criado, você poderá usar o console do EventBridge para observar a operação do pipe e testar a entrega do evento.
Abra o console do EventBridge em https://console.aws.amazon.com/events/home?#/pipes
. -
Escolha o pipe criado por você.
Na página de detalhes do pipe, a seção Componentes do pipe exibe os recursos que compõem o tubo e contém guias que dão mais detalhes sobre cada componente.
Você pode encontrar a função de execução que criamos para o pipe na guia Configurações, na seção Permissões.
Exame do filtro de pipe
Antes de testarmos a operação do pipe, vamos examinar o filtro que especificamos para controlar quais eventos são enviados para o destino. O pipe só enviará eventos correspondentes aos critérios de filtro para o destino, e todos os outros são descartados. Nesse caso, só queremos que os eventos gerados quando as entradas de tabela são criadas ou modificadas enviadas para a fila do Amazon SQS.
Na página de detalhes do pipe, em Componentes do pipe, escolha a guia Filtragem.
Incluímos um filtro que só seleciona eventos nos quais o
eventNameestá definido comoINSERTouMODIFY.{ "eventName": ["INSERT", "MODIFY"] }
Envio de eventos pelo pipe
Em seguida, geraremos eventos na fonte do pipe para testar se a filtragem e a entrega do pipe estão funcionando corretamente. Para isso, vamos criar e editar um item na tabela do DynamoDB especificada por nós como a fonte do pipe.
Na página de detalhes do pipe, em Componentes do pipe, escolha a guia Fonte.
Em Fonte, escolha o nome do fluxo do DynamoDB.
Isso abre o console do DynamoDB em uma janela à parte, com os detalhes da tabela de origem exibidos.
Escolha Explore table items (Explorar itens da tabela).
-
Gere um evento
INSERTcriando um item na tabela:Selecione Create Item (Criar item).
Adicione valores para os atributos Álbum e Artista.
Selecione Create Item (Criar item).
Gere um evento
INSERTe um eventoDELETEeditando o item:Escolha o item na lista e, no menu Ações, escolha Editar item.
Insira um novo valor para o atributo Álbum ou Artista.
Marque a caixa que confirma que você está alterando o valor das chaves de item e escolha Recriar item.
Isso resulta na exclusão e na recriação do item, gerando um evento
DELETEe, em seguida, um novo eventoINSERT.
Gere um evento
MODIFYadicionando um atributo ao item:Escolha o item na lista e, no menu Ações, escolha Editar item.
No menu Adicionar novo atributo, escolha Número.
Para o nome do atributo, insira Ano e, em seguida, insira um valor para o atributo. Escolha Save and close.
Confirmação da entrega do evento pelo pipe
Por fim, confirmaremos que o pipe filtrou e entregou com êxito os eventos que geramos ao criar e editar o item da tabela no DynamoDB.
Na página de detalhes do pipe, em Componentes do pipe, escolha a guia Destino.
Em Destino, escolha o nome da fila do Amazon SQS.
Isso abre o console do Amazon SQS em uma janela à parte, com os detalhes da fila de destino exibidos.
Escolha Enviar e receber mensagens.
Em Receber mensagens, escolha Sondar mensagens.
O Amazon SQS carrega as mensagens recebidas na fila. Clique em uma mensagem individual para ver os detalhes.
Deve haver três mensagens de evento na fila:
Duas do tipo
INSERT, uma gerada quando você criou o item da tabela pela primeira vez, e a outra gerada quando você recriou o item alterando um valor de chave.Uma do tipo
MODIFY, gerada quando você adicionou um atributo ao item da tabela.
Não há uma mensagem de evento do tipo
DELETEna fila, mesmo que uma tenha sido gerada quando você excluiu e recriou o item da tabela alterando um valor de chave. O filtro de pipe que especificamos só é selecionado emINSERTeMODIFY, logo, o pipe filtrou o eventoDELETE, em vez de entregá-lo na fila.
Limpar: exclusão de recursos
Como uma etapa final, excluiremos a pilha e os recursos que ela contém.
Importante
Você receberá uma cobrança pelos recursos da Amazon contidos na pilha enquanto ela existir.
Abra o console do CloudFormation em https://console.aws.amazon.com/cloudformation/
. -
Na página Pilhas, escolha a pilha criada a partir do modelo, escolha Excluir e confirme para Excluir.
O CloudFormation inicia a exclusão da pilha e de todos os recursos que ela inclui.
Detalhes do modelo do CloudFormation
Esse modelo cria recursos e concede permissões na conta.
Recursos
O modelo do CloudFormation para este tutorial criará os seguintes recursos na conta:
Importante
Você receberá uma cobrança pelos recursos da Amazon usados se criar uma pilha com base nesse modelo.
AWS::DynamoDB::Table: uma tabela do DynamoDB que funciona como a fonte de eventos do pipe.AWS::SQS::Queue: uma fila do Amazon SQS que funciona como destino para os eventos que passam pelo pipe.AWS::IAM::Role: uma função de execução do IAM que concede permissões ao serviço Pipes do EventBridge na conta.AWS::Pipes::Pipe: o pipe que conecta a tabela do DynamoDB à fila do Amazon SQS.
Permissões
O modelo inclui um recurso AWS::IAM::Role que representa uma função de execução. Essa função concede ao serviço Pipes do EventBridge (pipes.amazonaws.com) as permissões a seguir na conta.
As seguintes permissões têm como escopo a tabela do DynamoDB e transmitem o modelo criado como a fonte do evento para o pipe:
dynamodb:DescribeStreamdynamodb:GetRecordsdynamodb:GetShardIteratordynamodb:ListStreams
A seguinte permissão tem como escopo a fila do Amazon SQS criada pela pilha como o destino do pipe:
sqs:SendMessage
Modelo do CloudFormation
Salve o código JSON ou YAML a seguir em outro arquivo para usar como modelo do CloudFormation neste tutorial.