Fanout eventos do Amazon SNS no AWS Event Fork Pipelines
| Para arquivamento e análise de eventos, o Amazon SNS agora recomenda o uso de sua integração nativa com o Amazon Data Firehose. Você pode assinar fluxos de entrega do Firehose para tópicos do SNS, o que permite enviar notificações para endpoints de arquivamento e análise, como buckets do Amazon Simple Storage Service (Amazon S3), tabelas do Amazon Redshift, Amazon OpenSearch Service (OpenSearch Service) e muito mais. O uso de fluxos de entrega do Amazon SNS com o Firehose é uma solução totalmente gerenciada e sem código que não exige que você use funções do AWS Lambda. Para obter mais informações, consulte Fanout de fluxos de entrega do Firehose. |
Você pode usar o Amazon SNS para desenvolver aplicações orientadas por eventos que usam serviços de assinante para executar o trabalho automaticamente em resposta a eventos acionados por serviços do editor. Esse padrão de arquitetura pode tornar os serviços mais reutilizáveis, interoperáveis e dimensionáveis. No entanto, pode ser trabalhoso usar o processamento de eventos em pipelines que abordam os requisitos de manipulação de eventos comuns, como armazenamento de eventos, backup, pesquisa, análise e reprodução.
Para acelerar o desenvolvimento de suas aplicações orientadas por eventos, você pode assinar pipelines de tratamento de eventos, por meio do AWS Event Fork Pipelines, em tópicos do Amazon SNS. O AWS Event Fork Pipelines é um conjunto de aplicações aninhadas de código aberto, com base no AWS Serverless Application Model
Para um caso de uso do AWS Event Fork Pipelines, consulte Implantar e testar a aplicação de exemplo de event fork pipelines do Amazon SNS.
Tópicos
Como o AWS Event Fork Pipelines funciona
AWSO Event Fork Pipelines é um padrão de projeto sem servidor. No entanto, ele também é um pacote de aplicações aninhadas sem servidor, baseado no AWS SAM (que pode ser implantado diretamente do AWS Serverless Application Repository (AWS SAR) em sua Conta da AWS para aprimorar suas plataformas orientadas por eventos). Você pode implantar essas aplicações aninhadas individualmente, conforme sua arquitetura exigir.
Tópicos
O diagrama a seguir mostra uma aplicação do AWS Event Fork Pipelines complementada por três aplicações aninhadas. É possível implantar qualquer um dos pipelines do pacote do AWS Event Fork Pipelines no AWS SAR de maneira independente, conforme sua arquitetura exigir.
Cada pipeline é inscrito no mesmo tópico do Amazon SNS, o que permite que ele processe eventos em paralelo conforme esses eventos são publicados no tópico. Cada pipeline é independente e pode definir sua própria política de filtro de assinatura. Isso permite que um pipeline processe apenas um subconjunto dos eventos em que está interessado (em vez de todos os eventos publicados no tópico).
nota
Como os três AWS Event Fork Pipelines são colocados juntos com os pipelines de processamento de eventos usuais (possivelmente já inscritos em seu tópico do Amazon SNS), não é necessário alterar nenhuma parte do editor de mensagens atual para aproveitar o AWS Event Fork Pipelines nas workloads existentes.
O pipeline de armazenamento e backup de eventos
O diagrama a seguir mostra o pipeline de armazenamento e backup de eventos
Esse pipeline é composto de uma fila do Amazon SQS que armazena em buffer os eventos entregues pelo tópico do Amazon SNS, uma função do AWS Lambda que sonda automaticamente esses eventos na fila e os envia a um fluxo, e um bucket do Amazon S3 que faz backup durável dos eventos carregados pelo fluxo.
Para ajustar o comportamento de seu fluxo do Firehose, configure-o para armazenar em buffer, transformar e compactar seus eventos antes de carregá-los no bucket. À medida que os eventos forem carregados, use o Amazon Athena para consultar o bucket usando consultas SQL padrão. Você também pode configurar o pipeline para reutilizar um bucket do Simple Storage Service (Amazon S3) existente ou criar um novo.
O pipeline de pesquisa e análise de eventos
O diagrama a seguir mostra o pipeline de pesquisa e análise de eventos
Esse pipeline é composto por uma fila do Amazon SQS que armazena em buffer os eventos entregues pelo tópico do Amazon SNS, uma função do AWS Lambda que sonda eventos da fila e os envia para um fluxo, um domínio do Amazon OpenSearch Service que indexa os eventos carregados pelo fluxo do Firehose, e um bucket do Amazon S3 que armazena eventos de mensagens não entregues que não podem ser indexados no domínio de pesquisa.
Para ajustar o fluxo do Firehose em termos de armazenamento de eventos em buffer, transformação e compactação, você pode configurar esse pipeline.
Você também pode configurar se o pipeline deve reutilizar um domínio OpenSearch em sua Conta da AWS ou criar um novo para você. À medida que os eventos forem indexados no domínio de pesquisa, use o Kibana para executar a análise de seus eventos e atualizar os painéis visuais em tempo real.
O pipeline de reprodução de eventos
O diagrama a seguir mostra o pipeline de reprodução de eventos
Esse pipeline é composto de uma fila do Amazon SQS que armazena em buffer os eventos entregues pelo tópico do Amazon SNS e uma função do AWS Lambda que sonda os eventos da fila e os redireciona para o pipeline de processamento de eventos usual, que também está inscrito em seu tópico.
nota
Por padrão, a função de reprodução está desabilitada e não redireciona seus eventos. Se precisar reprocessar os eventos, você deve habilitar a fila de reprodução do Amazon SQS como uma origem de eventos para a função de reprodução do AWS Lambda.
Implantar o AWS Event Fork Pipelines
O pacote AWS Event Fork Pipelines
Em um cenário de produção, recomendamos a incorporação do AWS Event Fork Pipelines no modelo do AWS SAM de sua aplicação geral. O recurso de aplicação aninhada permite fazer isso ao adicionar o recurso AWS::Serverless::Application ao seu modelo do AWS SAM, fazendo referência ao AWS e à ApplicationId da aplicação aninhada do SemanticVersion SAR.
Por exemplo, use o pipeline de armazenamento e backup de eventos como uma aplicação aninhada adicionando o seguinte trecho de YAML à seção Resources de seu modelo do AWS SAM.
Backup:
Type: AWS::Serverless::Application
Properties:
Location:
ApplicationId: arn:aws:serverlessrepo:us-east-2:123456789012:applications/fork-event-storage-backup-pipeline
SemanticVersion: 1.0.0
Parameters:
#The ARN of the Amazon SNS topic whose messages should be backed up to the Amazon S3 bucket.
TopicArn: !Ref MySNSTopic
Ao especificar valores de parâmetro, use funções intrínsecas do AWS CloudFormation para fazer referência a outros recursos em seu modelo. Por exemplo, no trecho YAML acima, o parâmetro TopicArn faz referência ao recurso MySNSTopic do AWS::SNS::Topic, definido em outro lugar no modelo do AWS SAM. Para obter mais informações, consulte o Referência à função intrínseca no Guia do usuário do usuário do AWS CloudFormation.
nota
A página do console do AWS Lambda para a aplicação do AWS SAR inclui o botão Copiar como recurso do SAM, que copia o YAML necessário para aninhar uma aplicação do AWS SAR à área de transferência.