

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á.

# Transforme eventos do Amazon SNS em Event Fork AWS Pipelines
<a name="sns-fork-pipeline-as-subscriber"></a>


|  | 
| --- |
| 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 inscrever streams de entrega do Firehose em 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 Service (Service) e muito mais. OpenSearch OpenSearch Usar o Amazon SNS com os streams de entrega do Firehose é uma solução totalmente gerenciada e sem código que não exige o uso de funções. AWS Lambda Para obter mais informações, consulte [Fanout de fluxos de entrega do Firehose](sns-firehose-as-subscriber.md). | 

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 seus aplicativos orientados a eventos, você pode inscrever pipelines de tratamento de eventos — desenvolvidos pelo AWS Event Fork Pipelines — em tópicos do Amazon SNS. AWS O Event Fork Pipelines é um conjunto de [aplicativos aninhados](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) de código aberto, baseado no [AWS Serverless Application Model](https://aws.amazon.com/serverless/sam/) (AWS SAM), que você pode implantar diretamente do [pacote AWS Event Fork Pipelines](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (escolha **Mostrar aplicativos que criam funções personalizadas do IAM** ou políticas de recursos) em sua conta. AWS 

Para um AWS caso de uso do Event Fork Pipelines, consulte. [Implantar e testar a aplicação de exemplo de event fork pipelines do Amazon SNS](sns-deploy-test-fork-pipelines-sample-application.md)

**Topics**
+ [Como funciona o AWS Event Fork Pipelines](#how-sns-fork-works)
+ [Implantação de tubulações AWS Event Fork](#deploying-sns-fork-pipelines)
+ [Implantar e testar a aplicação de exemplo de event fork pipelines do Amazon SNS](sns-deploy-test-fork-pipelines-sample-application.md)
+ [Inscrevendo AWS Event Fork Pipelines em um tópico do Amazon SNS](sns-subscribe-event-fork-pipelines.md)

## Como funciona o AWS Event Fork Pipelines
<a name="how-sns-fork-works"></a>

AWS O Event Fork Pipelines é um padrão de design sem servidor. No entanto, também é um conjunto de aplicativos sem servidor aninhados baseados no AWS SAM (que você pode implantar diretamente do (AWS SAR) para o AWS Serverless Application Repository seu, a fim de enriquecer suas Conta da AWS plataformas orientadas a eventos). Você pode implantar essas aplicações aninhadas individualmente, conforme sua arquitetura exigir.

**Topics**
+ [O pipeline de armazenamento e backup de eventos](#sns-fork-event-storage-and-backup-pipeline)
+ [O pipeline de pesquisa e análise de eventos](#sns-fork-event-search-and-analytics-pipeline)
+ [O pipeline de reprodução de eventos](#sns-fork-event-replay-pipeline)

O diagrama a seguir mostra um aplicativo AWS Event Fork Pipelines complementado por três aplicativos aninhados. Você pode implantar qualquer um dos pipelines do pacote AWS Event Fork Pipelines no AWS SAR de forma independente, conforme sua arquitetura exige.

![\[A arquitetura AWS Event Fork Pipelines, mostrando como os eventos de um tópico do Amazon SNS são filtrados e processados por meio de três canais distintos: Armazenamento e Backup de Eventos, Pesquisa e Análise de Eventos e Repetição de Eventos. Esses pipelines são descritos como caixas empilhadas verticalmente, cada uma processando eventos paralelamente de forma independente do mesmo tópico do Amazon SNS.\]](http://docs.aws.amazon.com/pt_br/sns/latest/dg/images/sns-fork-pipeline-as-subscriber-how-it-works.png)


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](sns-subscription-filter-policies.md). 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 você coloca os três AWS Event Fork Pipelines ao lado de seus pipelines regulares de processamento de eventos (possivelmente já inscritos no tópico do Amazon SNS), você não precisa alterar nenhuma parte do seu editor de mensagens atual para aproveitar os AWS Event Fork Pipelines em suas cargas de trabalho existentes.

### O pipeline de armazenamento e backup de eventos
<a name="sns-fork-event-storage-and-backup-pipeline"></a>

O diagrama a seguir mostra o [pipeline de armazenamento e backup de eventos](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-storage-backup-pipeline). Você pode inscrever esse pipeline em seu tópico do Amazon SNS para fazer backup automaticamente dos eventos que passam pelo sistema.

Esse pipeline é composto por uma fila do Amazon SQS que armazena em buffer os eventos entregues pelo tópico do Amazon SNS, AWS Lambda uma função que pesquisa automaticamente esses eventos na fila e os envia para um stream e um bucket do Amazon S3 que faz backup duradouro dos eventos carregados pelo stream. 

![\[O Fork-Event-Storage-Backup -Pipeline, projetado para processar e fazer backup de eventos de um tópico do Amazon SNS. O fluxo começa com um tópico do Amazon SNS a partir do qual os eventos são distribuídos para uma fila do Amazon SQS. Esses eventos filtrados são então processados por uma função do Lambda, que os encaminha para um Data Firehose. O stream do Firehose é responsável por armazenar em buffer, transformar e compactar os eventos antes de carregá-los em um bucket de backup do Amazon S3. Por fim, o Amazon Athena pode ser usado para consultar os dados armazenados. O diagrama usa uma série de ícones e setas para ilustrar o fluxo de um serviço para o outro, identificando claramente cada componente do pipeline.\]](http://docs.aws.amazon.com/pt_br/sns/latest/dg/images/sns-fork-event-storage-and-backup-pipeline.png)


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
<a name="sns-fork-event-search-and-analytics-pipeline"></a>

O diagrama a seguir mostra o [pipeline de pesquisa e análise de eventos](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-search-analytics-pipeline). Você pode inscrever esse pipeline em seu tópico do Amazon SNS para indexar os eventos que passam pelo sistema em um domínio de pesquisa e analisá-los.

Esse pipeline é composto por uma fila do Amazon SQS que armazena em buffer os eventos entregues pelo tópico do Amazon SNS, AWS Lambda uma função que pesquisa eventos da fila e os envia para um stream, um domínio do Amazon Service que indexa os eventos carregados pelo stream do Firehose e um bucket do OpenSearch Amazon S3 que armazena os eventos sem saída que não podem ser indexados no domínio de pesquisa.

![\[O pipeline de pesquisa e análise de eventos em uma AWS arquitetura. Começa à esquerda com o tópico Amazon SNS recebendo todos os eventos. Esses eventos são então canalizados por meio de uma linha tracejada representando “distribuir eventos filtrados” em uma fila do Amazon SQS. Da fila, os eventos são processados por uma função do Lambda, que os encaminha para um fluxo do Data Firehose. O Data Firehose direciona os eventos para dois destinos: uma rota leva a um Amazon Elasticsearch Service para indexação, e a outra rota envia eventos não processáveis ou “inativos” para um bucket de correio morto do Amazon S3. Na extrema direita, a saída do Elasticsearch Service é alimentada em um painel do Kibana para análise e visualização. Todo o fluxo é disposto horizontalmente e cada componente é conectado por linhas que mostram a direção do fluxo de dados.\]](http://docs.aws.amazon.com/pt_br/sns/latest/dg/images/sns-fork-event-search-and-analytics-pipeline.png)


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 OpenSearch domínio existente no seu 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
<a name="sns-fork-event-replay-pipeline"></a>

O diagrama a seguir mostra o [pipeline de reprodução de eventos](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-replay-pipeline). Para registrar os eventos que foram processados pelo sistema nos últimos 14 dias (por exemplo, quando sua plataforma precisar se recuperar de uma falha), inscreva esse pipeline em seu tópico do Amazon SNS e processe novamente os eventos.

Esse pipeline é composto por uma fila do Amazon SQS que armazena em buffer os eventos entregues pelo tópico do Amazon SNS e AWS Lambda uma função que pesquisa eventos da fila e os redireciona para seu pipeline regular de processamento de eventos, que também está inscrito em seu tópico.

![\[O Event Replay Pipeline em formato de fluxograma. Da esquerda para a direita, começa com um tópico do Amazon SNS que distribui eventos filtrados para dois processos paralelos. O fluxo superior representa seu pipeline regular de processamento de eventos, que inclui uma fila do Amazon SQS que processa eventos. O fluxo inferior, rotulado como "”fork-event-replay-pipeline, inclui uma fila de repetição do Amazon SQS em que os eventos são armazenados temporariamente antes de serem processados por uma função de reprodução do Lambda. Essa função do Lambda tem a capacidade de redirecionar eventos para seu pipeline regular de processamento de eventos ou mantê-los para reprodução, com base no fato de o recurso de repetição estar ativado ou desativado. O diagrama também indica que os operadores têm controle sobre a ativação ou desativação da funcionalidade de repetição de eventos.\]](http://docs.aws.amazon.com/pt_br/sns/latest/dg/images/sns-fork-event-replay-pipeline.png)


**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 .

## Implantação de tubulações AWS Event Fork
<a name="deploying-sns-fork-pipelines"></a>

[O [pacote AWS Event Fork Pipelines](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (escolha **Mostrar aplicativos que criam funções personalizadas do IAM ou políticas de recursos**) está disponível como um grupo de aplicativos públicos no AWS Serverless Application Repository, de onde você pode implantá-los e testá-los manualmente usando o AWS Lambda console.](https://console.aws.amazon.com/lambda/) Para obter informações sobre como implantar pipelines usando o AWS Lambda console, consulte. [Inscrevendo AWS Event Fork Pipelines em um tópico do Amazon SNS](sns-subscribe-event-fork-pipelines.md)

Em um cenário de produção, recomendamos incorporar o AWS Event Fork Pipelines ao modelo geral de SAM do AWS seu aplicativo. O recurso de aplicativo aninhado permite que você faça isso adicionando o recurso `[AWS::Serverless::Application](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template.html#serverless-sam-template-application)` ao seu modelo AWS SAM, referenciando o AWS SAR `ApplicationId` e o `SemanticVersion` do aplicativo aninhado.

Por exemplo, você pode usar o Event Storage and Backup Pipeline como um aplicativo aninhado adicionando o seguinte trecho de YAML à `Resources` seção do seu modelo do SAM. AWS 

```
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âmetros, você pode usar funções AWS CloudFormation intrínsecas para referenciar outros recursos em seu modelo. Por exemplo, no trecho YAML acima, o `TopicArn` parâmetro faz referência ao `[AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html)` recurso`MySNSTopic`, definido em outra parte do modelo. AWS SAM Para obter mais informações, consulte o [Referência à função intrínseca](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html) no *Guia do usuário do usuário do AWS CloudFormation *.

**nota**  
A página do AWS Lambda console do seu aplicativo AWS SAR inclui o botão **Copiar como recurso do SAM**, que copia o YAML necessário para aninhar um aplicativo AWS SAR na área de transferência.

# Implantar e testar a aplicação de exemplo de event fork pipelines do Amazon SNS
<a name="sns-deploy-test-fork-pipelines-sample-application"></a>

Para acelerar o desenvolvimento de seus aplicativos orientados a eventos, você pode inscrever pipelines de tratamento de eventos — desenvolvidos pelo AWS Event Fork Pipelines — em tópicos do Amazon SNS. AWS O Event Fork Pipelines é um conjunto de [aplicativos aninhados](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) de código aberto, baseado no [AWS Serverless Application Model](https://aws.amazon.com/serverless/sam/) (AWS SAM), que você pode implantar diretamente do [pacote AWS Event Fork Pipelines](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (escolha **Mostrar aplicativos que criam funções personalizadas do IAM** ou políticas de recursos) em sua conta. AWS Para obter mais informações, consulte [Como funciona o AWS Event Fork Pipelines](sns-fork-pipeline-as-subscriber.md#how-sns-fork-works).

Esta página mostra como você pode usar o Console de gerenciamento da AWS para implantar e testar o aplicativo de amostra AWS Event Fork Pipelines.

**Importante**  
Para evitar custos indesejados após concluir a implantação do aplicativo de amostra AWS Event Fork Pipelines, exclua sua pilha. CloudFormation Para obter mais informações, consulte [Excluir uma pilha no console do CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) no *Manual do usuário do AWS CloudFormation *.

# AWS Exemplo de caso de uso do Event Fork Pipelines
<a name="example-sns-fork-use-case"></a>

O cenário a seguir descreve um aplicativo de comércio eletrônico sem servidor e orientado por eventos que usa AWS o Event Fork Pipelines. Você pode usar esse [exemplo de aplicativo de comércio eletrônico](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-example-ecommerce-checkout-api) no AWS Serverless Application Repository e depois implantá-lo no AWS Lambda console, onde você pode testá-lo e examinar seu código-fonte GitHub. Conta da AWS 

![\[A arquitetura de um aplicativo de comércio eletrônico de tecnologia sem servidor que se integra a Serviços da AWS. Ele mostra o fluxo de usuários de comércio eletrônico que fazem pedidos por meio de um API Gateway para diferentes canais de processamento, incluindo armazenamento de pedidos, análise de pesquisa e reprodução, mostrando como os eventos são gerenciados e analisados por meio do Amazon SNS, Lambda, Amazon SQS, DynamoDB e Kibana.\]](http://docs.aws.amazon.com/pt_br/sns/latest/dg/images/sns-fork-example-use-case.png)


Esse aplicativo de comércio eletrônico recebe pedidos de compradores por meio de uma RESTful API hospedada pelo API Gateway e apoiada pela AWS Lambda função`CheckoutApiBackendFunction`. Essa função publica todos os pedidos recebidos em um tópico do Amazon SNS chamado `CheckoutEventsTopic` que, por sua vez, envia os pedidos para quatro pipelines diferentes.

O primeiro pipeline é o pipeline de processamento de checkout usual projetado e implementado pelo proprietário do aplicativo de comércio eletrônico. Esse pipeline tem a fila do Amazon SQS `CheckoutQueue` que armazena em buffer todos os pedidos recebidos, uma AWS Lambda função chamada `CheckoutFunction` que pesquisa a fila para processar esses pedidos e a tabela do DynamoDB que salva com segurança todos os pedidos feitos. `CheckoutTable`

## Aplicação de AWS tubulações Event Fork
<a name="applying-sns-fork-pipelines"></a>

Os componentes do aplicativo de comércio eletrônico processam a lógica de negócios central. No entanto, o proprietário do aplicativo de comércio eletrônico também precisa abordar o seguinte:
+ **Conformidade**: backups seguros e compactados, criptografados em repouso e limpeza de informações confidenciais
+ **Resiliência**: repetição dos pedidos mais recentes em caso de interrupção do processo de atendimento
+ **Capacidade de pesquisa**: execução de análise e geração de métricas nos pedidos realizados

Em vez de implementar essa lógica de processamento de eventos, o proprietário do aplicativo pode inscrever o AWS Event Fork Pipelines no tópico do Amazon `CheckoutEventsTopic` SNS
+ O [O pipeline de armazenamento e backup de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline) é configurado com o intuito de transformar dados para remover detalhes de cartões de crédito, armazenar os dados em buffer durante 60 segundos, compactá-los usando GZIP e criptografá-los usando a chave mestra de cliente (CMK) padrão do Amazon S3. Essa chave é gerenciada AWS e alimentada pelo AWS Key Management Service (AWS KMS).

  Para obter mais informações, consulte [Escolher o Amazon S3 para seu destino](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-s3), [Transformação de dados do Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html) e [Ajustar configurações](https://docs.aws.amazon.com/firehose/latest/dev/create-configure.html) no *Guia do desenvolvedor do Amazon Data Firehose*.
+ O [O pipeline de pesquisa e análise de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline) é configurado com uma duração de nova tentativa do índice de 30 segundos, um bucket para armazenar os pedidos que não são indexados no domínio de pesquisa e uma política de filtro para restringir o conjunto de pedidos indexados.

  Para obter mais informações, consulte [Escolha o OpenSearch serviço para seu destino](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-elasticsearch) no Guia do *desenvolvedor do Amazon Data Firehose*.
+ O [O pipeline de reprodução de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline) é configurado com a parte da fila do Amazon SQS do pipeline de processamento de pedidos usual projetado e implementado pela proprietária da aplicação de comércio eletrônico.

  Para obter mais informações, consulte [Queue Name and URL](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-general-identifiers.html#queue-name-url) (“Nome e URL da fila”) no *Guia do desenvolvedor do Amazon Simple Queue Service*.

A seguinte política de filtro JSON é definida na configuração do pipeline de pesquisa e análise de eventos. Ela corresponde apenas aos pedidos de entrada em que a quantidade total for de 100 USD ou superior. Para obter mais informações, consulte [Filtragem de mensagens do Amazon SNS](sns-message-filtering.md).

```
{				
   "amount": [{ "numeric": [ ">=", 100 ] }]
}
```

Usando o padrão AWS Event Fork Pipelines, o proprietário do aplicativo de comércio eletrônico pode evitar a sobrecarga de desenvolvimento que geralmente segue a lógica indiferenciadora de codificação para tratamento de eventos. Em vez disso, ela pode implantar o AWS Event Fork Pipelines diretamente de AWS Serverless Application Repository dentro dela. Conta da AWS

# Etapa 1: implantar a aplicação de amostra do Amazon SNS
<a name="deploy-sample-application"></a>

1. Faça login no [console do AWS Lambda](https://console.aws.amazon.com/lambda/).

1. No painel de navegação, escolha **Functions (Funções)** e selecione **Create function (Criar função)**.

1. Na página **Create function (Criar função)**, faça o seguinte:

   1. Escolha **Browse serverless app repository** (Procurar no repositório de aplicações sem servidor), **Public applications** (Aplicações públicas), **Show apps that create custom IAM roles or resource policies** (Mostrar aplicações que criam funções do IAM ou políticas de recursos).

   1. Procure `fork-example-ecommerce-checkout-api` e escolha o aplicativo.

1. Na página **fork-example-ecommerce-checkout-api**, faça o seguinte:

   1. Na seção **Application settings (Configurações do aplicativo)**, insira um **Application name (Nome de aplicativo)** (por exemplo, `fork-example-ecommerce-my-app`).
**nota**  
Para encontrar facilmente seus recursos posteriormente, mantenha o prefixo `fork-example-ecommerce`.
Para cada implantação, o nome do aplicativo deve ser exclusivo. Se você reutilizar o nome de um aplicativo, a implantação atualizará somente a CloudFormation pilha implantada anteriormente (em vez de criar uma nova).

   1. (Opcional) Insira uma das seguintes **LogLevel**configurações para a execução da função Lambda do seu aplicativo:
      + `DEBUG`
      + `ERROR`
      + `INFO` (padrão)
      + `WARNING`

1. Escolha **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications. (Eu reconheço que este aplicativo cria funções personalizadas do IAM, políticas de recursos e implanta aplicativos aninhados.)** e, na parte inferior da página, selecione **Deploy (Implantar)**.

Na *my-app* página **Status de implantação para fork-example-ecommerce -**, o Lambda exibe o status **Seu aplicativo está sendo implantado**.

Na seção **Recursos**, CloudFormation começa a criar a pilha e exibe o status **CREATE\$1IN\$1PROGRESS** de cada recurso. Quando o processo estiver concluído, CloudFormation exibirá o status **CREATE\$1COMPLETE**.

**nota**  
Pode levar entre 20–30 minutos para que todos os recursos sejam implantados.

Quando a implantação for concluída, o Lambda exibirá o status **Your application has been deployed** (Sua aplicação foi implantada).

# Etapa 2: executar a aplicação de amostra vinculado ao SNS
<a name="execute-sample-application"></a>

1. No AWS Lambda console, no painel de navegação, escolha **Aplicativos**.

1. Na página **Aplicativos**, no campo de pesquisa, busque `serverlessrepo-fork-example-ecommerce-my-app` e escolha o aplicativo.

1. Na seção **Recursos**, faça o seguinte:

   1. Para encontrar o recurso cujo tipo é **ApiGatewayRestApi**, classifique os recursos por **Tipo**, por exemplo`ServerlessRestApi`, e expanda o recurso.

   1. Dois recursos aninhados são exibidos, dos tipos **ApiGatewayDeployment** e **ApiGatewayStage**.

   1. Copie o link **Endpoint da API de produção** e anexe `/checkout` a ele, por exemplo: 

      ```
      https://abcdefghij.execute-api.us-east-2.amazonaws.com/Prod/checkout
      ```

1. Copie o JSON a seguir em um arquivo denominado `test_event.json`.

   ```
   {
      "id": 15311,
      "date": "2019-03-25T23:41:11-08:00",
      "status": "confirmed",
      "customer": {
         "id": 65144,		
   	 "quantity": 2,
         "price": 25.00,
         "subtotal": 50.00
      }]
   }
   ```

1. Para enviar uma solicitação HTTPS ao endpoint da API, envie a carga do evento de exemplo como entrada, executando um comando `curl`, por exemplo:

   ```
   curl -d "$(cat test_event.json)" https://abcdefghij.execute-api.us-east-2.amazonaws.com/Prod/checkout
   ```

   A API retorna a seguinte resposta vazia, indicando uma execução bem-sucedida:

   ```
   { }
   ```

# Etapa 3: verificar o desempenho do aplicativo e do pipeline do Amazon SNS
<a name="verify-sample-application-pipelines"></a>

## Etapa 1: verificar a execução do pipeline de checkout de exemplo
<a name="verify-execution-checkout-pipeline"></a>

1. Faça login no [console do Amazon DynamoDB](https://console.aws.amazon.com/dynamodb/).

1. No painel de navegação, escolha **Tables (Tabelas)**.

1. Busque `serverlessrepo-fork-example` e escolha `CheckoutTable`.

1. Na página de detalhes da tabela, escolha **Items (Itens)** e selecione o item criado.

   Os atributos armazenados são exibidos.

## Etapa 2: verificar a execução do pipeline de armazenamento e backup de eventos
<a name="verify-execution-event-storage-backup-pipeline"></a>

1. Faça login no [console do Amazon S3](https://console.aws.amazon.com/s3/).

1. No painel de navegação, selecione **Buckets**.

1. Busque `serverlessrepo-fork-example` e escolha `CheckoutBucket`.

1. Navegue pela hierarquia de diretórios até encontrar um arquivo com a extensão `.gz`.

1. Para fazer download do arquivo, escolha **Ações**, **Abrir**.

1. O pipeline está configurado com uma função do Lambda que limpa as informações de cartão de crédito por motivos de conformidade.

   Para verificar se a carga JSON armazenada não contém informações de cartão de crédito, descompacte o arquivo.

## Etapa 3: verificar a execução do pipeline de pesquisa e análise de eventos
<a name="verify-execution-event-search-analytics-pipeline"></a>

1. Faça login no [console OpenSearch de serviço](https://console.aws.amazon.com/aos/).

1. No painel de navegação, em **Meus domínios**, escolha o domínio prefixado com `serverl-analyt`.

1. O pipeline está configurado com uma política de filtro de assinatura do Amazon SNS que define uma condição de correspondência numérica.

   ****Para verificar se o evento está indexado porque se refere a um pedido cujo valor é maior que USD \$1100, na *abcdefgh1ijk* página **servidor-analista, escolha Índices, checkout\$1events**.****

## Etapa 4: verificar a execução do pipeline de repetição de eventos
<a name="verify-execution-event-replay-pipeline"></a>

1. Faça login no [console do Amazon SQS](https://console.aws.amazon.com/sqs/).

1. Na lista de filas, busque `serverlessrepo-fork-example` e escolha `ReplayQueue`.

1. Escolha **Enviar e receber mensagens**.

1. Na caixa de *123ABCD4E5F6* diálogo **Enviar e receber mensagens em fork-example-ecommerce -*my-app*... ReplayP- ReplayQueue -**, escolha **Sondagem** de mensagens. 

1. Para verificar se o evento está enfileirado, escolha **Mais detalhes** ao lado da mensagem que aparece na fila.

# Etapa 4: simular um problema e repetir eventos para recuperação
<a name="simulate-issue-replay-events-for-recovery"></a>

## Etapa 1: habilitar o problema simulado e enviar uma segunda solicitação da API
<a name="enable-simulated-issue-send-second-api-request"></a>

1. Faça login no [console do AWS Lambda](https://console.aws.amazon.com/lambda/).

1. No painel de navegação, escolha **Functions (Funções)**.

1. Busque `serverlessrepo-fork-example` e escolha `CheckoutFunction`.

1. No **fork-example-ecommerce- *my-app* - CheckoutFunction -*ABCDEF*...** **página, na seção **Variáveis de ambiente**, defina a variável **BUG\$1ENABLED como** **verdadeira e escolha** Salvar.**

1. Copie o JSON a seguir em um arquivo denominado `test_event_2.json`.

   ```
   {
   	   "id": 9917,
   	   "date": "2019-03-26T21:11:10-08:00",
   	   "status": "confirmed",
   	   "customer": {
   	      "id": 56999,
   "quantity": 1,
   	      "price": 75.00,
   	      "subtotal": 75.00
   	   }]
   	}
   ```

1. Para enviar uma solicitação HTTPS ao endpoint da API, envie a carga do evento de exemplo como entrada, executando um comando `curl`, por exemplo:

   ```
   curl -d "$(cat test_event_2.json)" https://abcdefghij.execute-api.us-east-2.amazonaws.com/Prod/checkout
   ```

   A API retorna a seguinte resposta vazia, indicando uma execução bem-sucedida:

   ```
   { }
   ```

## Etapa 2: verificar a corrupção de dados simulados
<a name="verify-simulated-data-corruption"></a>

1. Faça login no [console do Amazon DynamoDB](https://console.aws.amazon.com/dynamodb/).

1. No painel de navegação, escolha **Tables (Tabelas)**.

1. Busque `serverlessrepo-fork-example` e escolha `CheckoutTable`.

1. Na página de detalhes da tabela, escolha **Items (Itens)** e selecione o item criado.

   Os atributos armazenados são exibidos, alguns marcados como **CORROMPIDOS\$1**

## Etapa 3: desabilitar o problema simulado
<a name="disable-simulated-issue"></a>

1. Faça login no [console do AWS Lambda](https://console.aws.amazon.com/lambda/).

1. No painel de navegação, escolha **Functions (Funções)**.

1. Busque `serverlessrepo-fork-example` e escolha `CheckoutFunction`.

1. No **fork-example-ecommerce- *my-app* - CheckoutFunction -*ABCDEF*...** **página, na seção **Variáveis de ambiente**, defina a variável **BUG\$1ENABLED** **como falsa e escolha** Salvar.**

## Etapa 4: habilitar a repetição a fim de recuperar do problema
<a name="enable-replay-recover-from-simulated-issue"></a>

1. No AWS Lambda console, no painel de navegação, escolha **Funções**.

1. Busque `serverlessrepo-fork-example` e escolha `ReplayFunction`.

1. Expanda a seção **Designer**, escolha o bloco **SQS** e, na seção **SQS**, selecione **Habilitado**.
**nota**  
Leva aproximadamente 1 minuto para que o acionador da origem de eventos do Amazon SQS seja habilitado.

1. Escolha **Salvar**.

1. Para visualizar os atributos recuperados, volte ao console do Amazon DynamoDB.

1. Para desativar a repetição, retorne ao AWS Lambda console e desative o gatilho de origem de eventos do Amazon SQS para. `ReplayFunction`

# Inscrevendo AWS Event Fork Pipelines em um tópico do Amazon SNS
<a name="sns-subscribe-event-fork-pipelines"></a>

Para acelerar o desenvolvimento de seus aplicativos orientados a eventos, você pode inscrever pipelines de tratamento de eventos — desenvolvidos pelo AWS Event Fork Pipelines — em tópicos do Amazon SNS. AWS O Event Fork Pipelines é um conjunto de [aplicativos aninhados](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) de código aberto, baseado no [AWS Serverless Application Model](https://aws.amazon.com/serverless/sam/) (AWS SAM), que você pode implantar diretamente do [pacote AWS Event Fork Pipelines](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (escolha **Mostrar aplicativos que criam funções personalizadas do IAM** ou políticas de recursos) em sua conta. AWS Para obter mais informações, consulte [Como funciona o AWS Event Fork Pipelines](sns-fork-pipeline-as-subscriber.md#how-sns-fork-works).

Esta seção mostra como você pode usar o Console de gerenciamento da AWS para implantar um pipeline e depois inscrever o AWS Event Fork Pipelines em um tópico do Amazon SNS. Antes de começar, [crie um tópico do Amazon SNS](sns-create-topic.md).

Para excluir os recursos que compõem um pipeline, localize o pipeline na página **Aplicativos** do AWS Lambda console, expanda a **seção de modelos do SAM**, escolha **CloudFormationpilha** e, em seguida, escolha **Outras ações**, **Excluir** pilha.

# Implantar e inscrever o pipeline de armazenamento e backup de eventos para o Amazon SNS
<a name="deploy-event-storage-backup-pipeline"></a>


|  | 
| --- |
| 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 inscrever streams de entrega do Firehose em 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 Service (Service) e muito mais. OpenSearch OpenSearch Usar o Amazon SNS com os streams de entrega do Firehose é uma solução totalmente gerenciada e sem código que não exige o uso de funções. AWS Lambda Para obter mais informações, consulte [Fanout de fluxos de entrega do Firehose](sns-firehose-as-subscriber.md). | 

Este tutorial mostra como implantar o [pipeline de armazenamento e backup de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline) e inscrevê-lo em um tópico do Amazon SNS. Esse processo transforma automaticamente o AWS SAM modelo associado ao pipeline em uma CloudFormation pilha e, em seguida, implanta a pilha na sua. Conta da AWS Esse processo também cria e configura o conjunto de recursos que compõe o pipeline de armazenamento e backup de eventos, incluindo o seguinte:
+ Fila do Amazon SQS
+ Função do Lambda
+ Fluxo de entrega do Firehose
+ Bucket de backup do Amazon S3

Para obter mais informações sobre como configurar um fluxo com um bucket do Amazon S3 como destino, consulte `[S3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_S3DestinationConfiguration.html)` na *Referência de API do Amazon Data Firehose*.

Para obter mais informações sobre como transformar eventos e configurar o armazenamento em buffer, a compactação e a criptografia de eventos, consulte [Criar um fluxo de entrega](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) no *Guia do desenvolvedor do Amazon Data Firehose*.

Para obter mais informações sobre como filtrar eventos, consulte [Políticas de filtro de assinatura do Amazon SNS](sns-subscription-filter-policies.md) neste guia.

1. Faça login no [console do AWS Lambda](https://console.aws.amazon.com/lambda/).

1. No painel de navegação, escolha **Functions (Funções)** e selecione **Create function (Criar função)**.

1. Na página **Create function (Criar função)**, faça o seguinte:

   1. Escolha **Browse serverless app repository** (Procurar no repositório de aplicações sem servidor), **Public applications** (Aplicações públicas), **Show apps that create custom IAM roles or resource policies** (Mostrar aplicações que criam funções do IAM ou políticas de recursos).

   1. Procure `fork-event-storage-backup-pipeline` e escolha o aplicativo.

1. Na página **fork-event-storage-backup-pipeline**, faça o seguinte:

   1. Na seção **Application settings (Configurações do aplicativo)**, insira um **Application name (Nome de aplicativo)** (por exemplo, `my-app-backup`).
**nota**  
Para cada implantação, o nome do aplicativo deve ser exclusivo. Se você reutilizar o nome de um aplicativo, a implantação atualizará somente a CloudFormation pilha implantada anteriormente (em vez de criar uma nova).

   1. (Opcional) Para **BucketArn**, insira o ARN do bucket do Amazon S3 no qual os eventos recebidos são carregados. Se você não inserir um valor, um novo bucket do Amazon S3 será criado em sua AWS conta.

   1. (Opcional) Para **DataTransformationFunctionArn**, insira o ARN da função Lambda por meio da qual os eventos recebidos são transformados. Se você não inserir um valor, a transformação de dados será desativada.

   1. (Opcional) Insira uma das seguintes **LogLevel**configurações para a execução da função Lambda do seu aplicativo:
      + `DEBUG`
      + `ERROR`
      + `INFO` (padrão)
      + `WARNING`

   1. Para **TopicArn**, insira o ARN do tópico do Amazon SNS no qual essa instância do fork pipeline deve ser assinada.

   1. (Opcional) **StreamBufferingSizeInMBs**Em **StreamBufferingIntervalInSeconds**e, insira os valores para configurar o armazenamento em buffer de eventos recebidos. Se nenhum valor for inserido, são usados 300 segundos e 5 MB.

   1. (Opcional) Insira uma das seguintes **StreamCompressionFormat**configurações para compactar eventos recebidos:
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (padrão)
      + `ZIP`

   1. (Opcional) Para **StreamPrefix**, insira o prefixo da string para nomear os arquivos armazenados no bucket de backup do Amazon S3. Se você não inserir um valor, nenhum prefixo será usado.

   1. (Opcional) Para **SubscriptionFilterPolicy**, insira a política de filtro de assinatura do Amazon SNS, no formato JSON, a ser usada para filtrar eventos recebidos. A política de filtro decide quais eventos são indexados no índice OpenSearch de serviços. Se nenhum valor for inserido, nenhuma filtragem será usada (todos os eventos serão indexados).

   1. (Opcional) Para **SubscriptionFilterPolicyScope**, insira a string `MessageBody` ou habilite `MessageAttributes` a filtragem de mensagens baseada em carga ou atributo. 

   1. Escolha **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications. (Eu reconheço que este aplicativo cria funções personalizadas do IAM, políticas de recursos e implanta aplicativos aninhados.)** e selecione **Deploy (Implantar)**.

Na *my-app* página **Status de implantação para**, o Lambda exibe o status **Seu aplicativo está sendo implantado**.

Na seção **Recursos**, CloudFormation começa a criar a pilha e exibe o status **CREATE\$1IN\$1PROGRESS** de cada recurso. Quando o processo estiver concluído, CloudFormation exibirá o status **CREATE\$1COMPLETE**.

Quando a implantação for concluída, o Lambda exibirá o status **Your application has been deployed** (Sua aplicação foi implantada).

As mensagens publicadas em seu tópico do Amazon SNS são armazenadas no bucket de backup do Amazon S3 provisionado pelo pipeline de armazenamento e backup de eventos automaticamente.

# Implantar e inscrever o pipeline de pesquisa e análise de eventos para o Amazon SNS
<a name="deploy-event-search-analytics-pipeline"></a>


|  | 
| --- |
| 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 inscrever streams de entrega do Firehose em 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 Service (Service) e muito mais. OpenSearch OpenSearch Usar o Amazon SNS com os streams de entrega do Firehose é uma solução totalmente gerenciada e sem código que não exige o uso de funções. AWS Lambda Para obter mais informações, consulte [Fanout de fluxos de entrega do Firehose](sns-firehose-as-subscriber.md). | 

Esta página mostra como implantar o [pipeline de pesquisa e análise de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline) e inscrevê-lo em um tópico do Amazon SNS. Esse processo transforma automaticamente o AWS SAM modelo associado ao pipeline em uma CloudFormation pilha e, em seguida, implanta a pilha na sua. Conta da AWS Esse processo também cria e configura o conjunto de recursos que compõe o pipeline de pesquisa e análise de eventos, incluindo o seguinte:
+ Fila do Amazon SQS
+ Função do Lambda
+ Fluxo de entrega do Firehose
+ Domínio do Amazon OpenSearch Service
+ Bucket de mensagens mortas do Amazon S3

Para obter mais informações sobre como configurar um fluxo com um índice como um destino, consulte `[ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html)` na *Referência de API do Amazon Data Firehose*.

Para obter mais informações sobre como transformar eventos e configurar o armazenamento em buffer, a compactação e a criptografia de eventos, consulte [Criar um fluxo de entrega](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) no *Guia do desenvolvedor do Amazon Data Firehose*.

Para obter mais informações sobre como filtrar eventos, consulte [Políticas de filtro de assinatura do Amazon SNS](sns-subscription-filter-policies.md) neste guia.

1. Faça login no [console do AWS Lambda](https://console.aws.amazon.com/lambda/).

1. No painel de navegação, escolha **Functions (Funções)** e selecione **Create function (Criar função)**.

1. Na página **Create function (Criar função)**, faça o seguinte:

   1. Escolha **Browse serverless app repository** (Procurar no repositório de aplicações sem servidor), **Public applications** (Aplicações públicas), **Show apps that create custom IAM roles or resource policies** (Mostrar aplicações que criam funções do IAM ou políticas de recursos).

   1. Procure `fork-event-search-analytics-pipeline` e escolha o aplicativo.

1. Na página **fork-event-search-analytics-pipeline**, faça o seguinte:

   1. Na seção **Application settings (Configurações do aplicativo)**, insira um **Application name (Nome de aplicativo)** (por exemplo, `my-app-search`).
**nota**  
Para cada implantação, o nome do aplicativo deve ser exclusivo. Se você reutilizar o nome de um aplicativo, a implantação atualizará somente a CloudFormation pilha implantada anteriormente (em vez de criar uma nova).

   1. (Opcional) Para **DataTransformationFunctionArn**, insira o ARN da função Lambda usada para transformar eventos recebidos. Se você não inserir um valor, a transformação de dados será desativada.

   1. (Opcional) Insira uma das seguintes **LogLevel**configurações para a execução da função Lambda do seu aplicativo:
      + `DEBUG`
      + `ERROR`
      + `INFO` (padrão)
      + `WARNING`

   1. (Opcional) Em **SearchDomainArn**, insira o ARN do domínio de OpenSearch serviço, um cluster que configura a funcionalidade necessária de computação e armazenamento. Se você não inserir um valor, um novo domínio será criado com a configuração padrão.

   1. Para **TopicArn**, insira o ARN do tópico do Amazon SNS no qual essa instância do fork pipeline deve ser assinada.

   1. Para **SearchIndexName**, insira o nome do índice de OpenSearch serviços para pesquisa e análise de eventos.
**nota**  
As seguintes cotas se aplicam a nomes de índice:  
Não é possível incluir letras maiúsculas
Não é possível incluir os seguintes caracteres: `\ / * ? " < > | ` , #`
Não é possível começar com os seguintes caracteres: `- + _`
Não podem ser o seguinte: `. ..`
Não podem ter mais que 80 caracteres
Não podem ter mais que 255 bytes
Não é possível conter dois pontos (do OpenSearch Serviço 7.0)

   1. (Opcional) Insira uma das seguintes **SearchIndexRotationPeriod**configurações para o período de rotação do índice de OpenSearch serviços:
      + `NoRotation` (padrão)
      + `OneDay`
      + `OneHour`
      + `OneMonth`
      + `OneWeek`

      A rotação de índice anexa um timestamp ao nome do índice, facilitando a expiração de dados antigos. 

   1. Para **SearchTypeName**, insira o nome do tipo de OpenSearch serviço para organizar os eventos em um índice.
**nota**  
OpenSearch Os nomes dos tipos de serviço podem conter qualquer caractere (exceto bytes nulos), mas não podem começar com `_` eles.
Para o OpenSearch Service 6.x, só pode haver um tipo por índice. Se você especificar um novo tipo para um índice existente que já tem outro tipo, o Firehose retornará um erro runtime.

   1. (Opcional) **StreamBufferingSizeInMBs**Em **StreamBufferingIntervalInSeconds**e, insira os valores para configurar o armazenamento em buffer de eventos recebidos. Se nenhum valor for inserido, são usados 300 segundos e 5 MB.

   1. (Opcional) Insira uma das seguintes **StreamCompressionFormat**configurações para compactar eventos recebidos:
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (padrão)
      + `ZIP`

   1. (Opcional) Para **StreamPrefix**, insira o prefixo da string para nomear os arquivos armazenados no bucket de cartas mortas do Amazon S3. Se você não inserir um valor, nenhum prefixo será usado.

   1. (Opcional) Para **StreamRetryDurationInSecons**, insira a duração da nova tentativa para casos em que o Firehose não consegue indexar eventos OpenSearch no índice de serviços. Se você não inserir um valor, será usado 300 segundos.

   1. (Opcional) Para **SubscriptionFilterPolicy**, insira a política de filtro de assinatura do Amazon SNS, no formato JSON, a ser usada para filtrar eventos recebidos. A política de filtro decide quais eventos são indexados no índice OpenSearch de serviços. Se nenhum valor for inserido, nenhuma filtragem será usada (todos os eventos serão indexados).

   1. Escolha **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications. (Eu reconheço que este aplicativo cria funções personalizadas do IAM, políticas de recursos e implanta aplicativos aninhados.)** e selecione **Deploy (Implantar)**.

Na *my-app-search* página **Status de implantação para**, o Lambda exibe o status **Seu aplicativo está sendo implantado**.

Na seção **Recursos**, CloudFormation começa a criar a pilha e exibe o status **CREATE\$1IN\$1PROGRESS** de cada recurso. Quando o processo estiver concluído, CloudFormation exibirá o status **CREATE\$1COMPLETE**.

Quando a implantação for concluída, o Lambda exibirá o status **Your application has been deployed** (Sua aplicação foi implantada).

As mensagens publicadas em seu tópico do Amazon SNS são indexadas automaticamente no índice de OpenSearch serviços provisionado pelo pipeline de pesquisa e análise de eventos. Se o pipeline não puder indexar um evento, ele armazenará em um bucket de mensagens não entregues do Amazon S3.

# Implantação do Event Replay Pipeline com a integração do Amazon SNS
<a name="deploy-event-replay-pipeline"></a>

Esta página mostra como implantar o [pipeline de repetição de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline) e inscrevê-lo em um tópico do Amazon SNS. Esse processo transforma automaticamente o AWS SAM modelo associado ao pipeline em uma CloudFormation pilha e, em seguida, implanta a pilha na sua. Conta da AWS Esse processo também cria e configura o conjunto de recursos que compõe o pipeline de repetição de eventos, incluindo uma fila do Amazon SQS e uma função do Lambda.

Para obter mais informações sobre como filtrar eventos, consulte [Políticas de filtro de assinatura do Amazon SNS](sns-subscription-filter-policies.md) neste guia.

1. Faça login no [console do AWS Lambda](https://console.aws.amazon.com/lambda/).

1. No painel de navegação, escolha **Functions (Funções)** e selecione **Create function (Criar função)**.

1. Na página **Create function (Criar função)**, faça o seguinte:

   1. Escolha **Browse serverless app repository** (Procurar no repositório de aplicações sem servidor), **Public applications** (Aplicações públicas), **Show apps that create custom IAM roles or resource policies** (Mostrar aplicações que criam funções do IAM ou políticas de recursos).

   1. Procure `fork-event-replay-pipeline` e escolha o aplicativo.

1. Na página **fork-event-replay-pipeline**, faça o seguinte:

   1. Na seção **Application settings (Configurações do aplicativo)**, insira um **Application name (Nome de aplicativo)** (por exemplo, `my-app-replay`).
**nota**  
Para cada implantação, o nome do aplicativo deve ser exclusivo. Se você reutilizar o nome de um aplicativo, a implantação atualizará somente a CloudFormation pilha implantada anteriormente (em vez de criar uma nova).

   1. (Opcional) Insira uma das seguintes **LogLevel**configurações para a execução da função Lambda do seu aplicativo:
      + `DEBUG`
      + `ERROR`
      + `INFO` (padrão)
      + `WARNING`

   1. (Opcional) Para **ReplayQueueRetentionPeriodInSeconds**, insira o tempo, em segundos, durante o qual a fila de repetição do Amazon SQS mantém a mensagem. Se você não inserir um valor, será usado 1.209.600 segundos (14 dias).

   1. Para **TopicArn**, insira o ARN do tópico do Amazon SNS no qual essa instância do fork pipeline deve ser assinada.

   1. Para **DestinationQueueName**, insira o nome da fila do Amazon SQS para a qual a função de reprodução do Lambda encaminha as mensagens.

   1. (Opcional) Para **SubscriptionFilterPolicy**, insira a política de filtro de assinatura do Amazon SNS, no formato JSON, a ser usada para filtrar eventos recebidos. A política de filtro decide quais eventos serão armazenados em buffer para repetição. Se nenhum valor for inserido, nenhuma filtragem será usada (todos os eventos serão armazenados em buffer).

   1. Escolha **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications. (Eu reconheço que este aplicativo cria funções personalizadas do IAM, políticas de recursos e implanta aplicativos aninhados.)** e selecione **Deploy (Implantar)**.

Na *my-app-replay* página **Status de implantação para**, o Lambda exibe o status **Seu aplicativo está sendo implantado**.

Na seção **Recursos**, CloudFormation começa a criar a pilha e exibe o status **CREATE\$1IN\$1PROGRESS** de cada recurso. Quando o processo estiver concluído, CloudFormation exibirá o status **CREATE\$1COMPLETE**.

Quando a implantação for concluída, o Lambda exibirá o status **Your application has been deployed** (Sua aplicação foi implantada).

As mensagens publicadas em seu tópico do Amazon SNS são armazenadas em buffer para repetição na fila do Amazon SQS provisionada pelo pipeline de repetição de eventos automaticamente.

**nota**  
Por padrão, a repetição está desabilitada. Para habilitar a repetição, navegue até a página da função no console do Lambda, expanda a seção **Designer**, escolha o bloco **SQS** e, na seção **SQS**, escolha **Enabled** (Habilitado).