

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Distribuya los eventos de Amazon SNS AWS a Event Fork Pipelines
<a name="sns-fork-pipeline-as-subscriber"></a>


|  | 
| --- |
| Para el archivado y el análisis de eventos, Amazon SNS recomienda ahora utilizar su integración nativa con Amazon Data Firehose. Puede suscribir las transmisiones de entrega de Firehose a temas de SNS, lo que le permite enviar notificaciones a puntos de enlace de archivado y análisis, como depósitos de Amazon Simple Storage Service (Amazon S3), tablas de Amazon Redshift, Amazon Service (Service) y más. OpenSearch OpenSearch El uso de Amazon SNS con las transmisiones de entrega de Firehose es una solución totalmente gestionada y sin código que no requiere el uso de funciones. AWS Lambda Para obtener más información, consulte [Distribución ramificada a los flujos de entrega de Firehose](sns-firehose-as-subscriber.md). | 

Puede usar Amazon SNS para crear aplicaciones basadas en eventos que utilicen los servicios de suscriptor para realizar trabajos de manera automática en respuesta a eventos desencadenados por los servicios de publicador. Este patrón arquitectónico puede hacer que los servicios sean más reutilizables, interoperables y escalables. Sin embargo, puede ser muy laborioso bifurcar el procesamiento de eventos a canalizaciones que cumplan los requisitos comunes de administración de eventos, como el almacenamiento, la copia de seguridad, la búsqueda, el análisis y la reproducción de eventos.

Para acelerar el desarrollo de sus aplicaciones basadas en eventos, puede suscribir canales de gestión de eventos (impulsados por Event Fork AWS Pipelines) a los temas de Amazon SNS. AWS **Event Fork Pipelines es un conjunto de [aplicaciones anidadas de código abierto, basadas en el modelo de aplicaciones AWS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) [sin servidor](https://aws.amazon.com/serverless/sam/) (AWS SAM), que puede implementar directamente desde el paquete [AWS Event Fork Pipelines (elija Mostrar aplicaciones que creen funciones de IAM personalizadas o políticas de recursos) en su cuenta](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines).** AWS 

Para ver un AWS caso de uso de Event Fork Pipelines, consulte. [Implementación y prueba de la aplicación de ejemplo de canalizaciones de bifurcación de eventos de Amazon SNS](sns-deploy-test-fork-pipelines-sample-application.md)

**Topics**
+ [Cómo funciona AWS Event Fork Pipelines](#how-sns-fork-works)
+ [Implementación de Event Fork Pipelines AWS](#deploying-sns-fork-pipelines)
+ [Implementación y prueba de la aplicación de ejemplo de canalizaciones de bifurcación de eventos de Amazon SNS](sns-deploy-test-fork-pipelines-sample-application.md)
+ [Suscripción de AWS Event Fork Pipelines a un tema de Amazon SNS](sns-subscribe-event-fork-pipelines.md)

## Cómo funciona AWS Event Fork Pipelines
<a name="how-sns-fork-works"></a>

AWS Event Fork Pipelines es un patrón de diseño sin servidor. Sin embargo, también es un conjunto de aplicaciones anidadas sin servidor basadas en AWS SAM (que puede implementar directamente desde el AWS Serverless Application Repository (AWS SAR) al suyo para enriquecer sus Cuenta de AWS plataformas basadas en eventos). Puede implementar estas aplicaciones anidadas de forma individual, según lo requiera su arquitectura.

**Topics**
+ [Canalización de almacenamiento y copia de seguridad de eventos](#sns-fork-event-storage-and-backup-pipeline)
+ [Canalización de búsqueda y análisis de eventos](#sns-fork-event-search-and-analytics-pipeline)
+ [Canalización de reproducción de eventos](#sns-fork-event-replay-pipeline)

El siguiente diagrama muestra una aplicación AWS Event Fork Pipelines complementada con tres aplicaciones anidadas. Puede implementar cualquiera de las canalizaciones del paquete AWS Event Fork Pipelines en el AWS SAR de forma independiente, según lo requiera su arquitectura.

![\[La arquitectura AWS Event Fork Pipelines, que muestra cómo se filtran y procesan los eventos de un tema de Amazon SNS a través de tres canalizaciones distintas: Event Storage and Backup, Event Search and Analytics y Event Replay. Estas canalizaciones se representan como cajas apiladas verticalmente, cada una de las cuales procesa de forma independiente eventos en paralelo desde el mismo tema de Amazon SNS.\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/sns-fork-pipeline-as-subscriber-how-it-works.png)


Cada canalización está suscrita al mismo tema de Amazon SNS, lo que le permite procesar eventos en paralelo a medida que se publican en el tema. Cada canalización es independiente y puede establecer su propia [política de filtros de suscripción](sns-subscription-filter-policies.md). De este modo, una canalización puede procesar solo un subconjunto de los eventos que le interesan (en lugar de todos los eventos publicados en el tema).

**nota**  
Como colocas las tres canalizaciones de AWS Event Fork junto a las canalizaciones de procesamiento de eventos habituales (es posible que ya estés suscrito a tu tema de Amazon SNS), no necesitas cambiar ninguna parte de tu editor de mensajes actual para aprovechar las canalizaciones de AWS Event Fork en tus cargas de trabajo actuales.

### Canalización de almacenamiento y copia de seguridad de eventos
<a name="sns-fork-event-storage-and-backup-pipeline"></a>

En el siguiente diagrama se muestra la [canalización de almacenamiento y copia de seguridad de eventos](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-storage-backup-pipeline). Puede suscribir esta canalización a su tema de Amazon SNS para hacer una copia de seguridad automática de los eventos que pasan por su sistema.

Esta canalización se compone de una cola de Amazon SQS que almacena en búfer los eventos publicados por el tema de Amazon SNS, una AWS Lambda función que sondea automáticamente estos eventos de la cola y los coloca en una transmisión, y un depósito de Amazon S3 que hace copias de seguridad duraderas de los eventos cargados por la transmisión. 

![\[El Fork-Event-Storage-Backup -Pipeline, que está diseñado para procesar y realizar copias de seguridad de eventos de un tema de Amazon SNS. El flujo comienza con un tema de Amazon SNS desde el que los eventos se distribuyen a una cola de Amazon SQS. A continuación, una función de Lambda procesa estos eventos filtrados y los reenvía a una instancia de Data Firehose. El flujo de Firehose se encarga de almacenar en búfer, transformar y comprimir los eventos antes de cargarlos en un bucket de copia de seguridad de Amazon S3. Por último, se puede utilizar Amazon Athena para consultar los datos almacenados. El diagrama utiliza una serie de iconos y flechas para ilustrar el flujo de un servicio al siguiente, en el que cada componente de la canalización está etiquetado claramente.\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/sns-fork-event-storage-and-backup-pipeline.png)


Para optimizar el comportamiento del flujo de Firehose, puede configurarlo para que almacene en búfer, transforme y comprima los eventos antes de cargarlos en el bucket. A medida que se carguen los eventos, puede utilizar Amazon Athena para consultar el bucket mediante consultas de SQL estándar. También puede configurar la canalización para reutilizar un bucket de Amazon S3 existente o crear uno nuevo.

### Canalización de búsqueda y análisis de eventos
<a name="sns-fork-event-search-and-analytics-pipeline"></a>

En el siguiente diagrama se muestra la [canalización de búsqueda y análisis de eventos](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-search-analytics-pipeline). Puede suscribir esta canalización a su tema de Amazon SNS para indexar los eventos que pasan por su sistema en un dominio de búsqueda y, a continuación, ejecutar análisis en ellos.

Esta canalización se compone de una cola de Amazon SQS que almacena en búfer los eventos publicados por el tema de Amazon SNS, una AWS Lambda función que sondea los eventos de la cola y los envía a una transmisión, un dominio de Amazon OpenSearch Service que indexa los eventos cargados por la transmisión Firehose y un depósito de Amazon S3 que almacena los eventos sin procesar que no se pueden indexar en el dominio de búsqueda.

![\[La canalización de búsqueda y análisis de eventos dentro de una arquitectura. AWS Comienza a la izquierda con el tema de Amazon SNS recibiendo todos los eventos. Luego, estos eventos se canalizan a través de una línea discontinua que representa los “eventos filtrados distribuidos” hacia una cola de Amazon SQS. Desde la cola, una función de Lambda procesa estos eventos y los reenvía a un flujo de Data Firehose. Data Firehose dirige los eventos a dos destinos: una ruta lleva a una instancia de Amazon Elasticsearch Service para su indexación y la otra envía los eventos no procesables o fallidos a un bucket de eventos fallidos de Amazon S3. En el extremo derecho, el resultado de Elasticsearch Service se envía a un panel de Kibana para su análisis y visualización. Todo el flujo se presenta horizontalmente y cada componente está conectado por líneas que muestran la dirección del flujo de datos.\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/sns-fork-event-search-and-analytics-pipeline.png)


Si desea ajustar el flujo de Firehose en cuanto al almacenamiento en búfer, la transformación y la compresión de eventos, puede configurar esta canalización.

También puedes configurar si la canalización debe reutilizar un OpenSearch dominio existente en el tuyo Cuenta de AWS o crear uno nuevo para ti. A medida que los eventos se indexan en el dominio de búsqueda, puede utilizar Kibana para ejecutar análisis de sus eventos y actualizar los paneles visuales en tiempo real. 

### Canalización de reproducción de eventos
<a name="sns-fork-event-replay-pipeline"></a>

En el siguiente diagrama se muestra la [canalización de reproducción de eventos](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-replay-pipeline). Para registrar los eventos que ha procesado el sistema en los últimos 14 días (por ejemplo, cuando su plataforma necesita recuperarse de un error), puede suscribir esta canalización a su tema de Amazon SNS y, a continuación, volver a procesar los eventos.

Esta canalización está compuesta por una cola de Amazon SQS que almacena en búfer los eventos publicados por el tema de Amazon SNS y una AWS Lambda función que sondea los eventos de la cola y los redirige a su canalización de procesamiento de eventos normal, que también está suscrita a su tema.

![\[La canalización de reproducción de eventos en formato de diagrama de flujo. De izquierda a derecha, comienza con un tema de Amazon SNS que distribuye los eventos filtrados a dos procesos paralelos. El flujo superior representa la canalización de procesamiento de eventos habitual, que incluye una cola de Amazon SQS que procesa los eventos. El flujo inferior, denominado «»fork-event-replay-pipeline, incluye una cola de reproducción de Amazon SQS en la que los eventos se almacenan temporalmente antes de ser procesados por una función de reproducción de Lambda. Esta función de Lambda tiene la capacidad de redirigir los eventos a su canalización de procesamiento de eventos normal o retenerlos para su reproducción, en función de si la característica de reproducción está habilitada o deshabilitada. El diagrama también indica que los operadores pueden activar o desactivar la característica de reproducción de eventos.\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/sns-fork-event-replay-pipeline.png)


**nota**  
De forma predeterminada, la característica de reproducción está deshabilitada, por lo que los eventos no se redireccionan. Si necesita volver a procesar los eventos, debe habilitar la cola de reproducción de Amazon SQS como fuente de eventos para la característica de reproducción de AWS Lambda .

## Implementación de Event Fork Pipelines AWS
<a name="deploying-sns-fork-pipelines"></a>

[La [suite AWS Event Fork Pipelines](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (elija **Mostrar aplicaciones que creen funciones de IAM o políticas de recursos personalizadas**) está disponible como un grupo de aplicaciones públicas en el AWS Serverless Application Repository, desde donde puede desplegarlas y probarlas manualmente mediante la AWS Lambda consola.](https://console.aws.amazon.com/lambda/) Para obtener información sobre la implementación de canalizaciones mediante la AWS Lambda consola, consulte. [Suscripción de AWS Event Fork Pipelines a un tema de Amazon SNS](sns-subscribe-event-fork-pipelines.md)

En un escenario de producción, recomendamos incrustar AWS Event Fork Pipelines en la plantilla SAM general de AWS la aplicación. La función de aplicación anidada le permite hacerlo añadiendo el recurso `[AWS::Serverless::Application](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template.html#serverless-sam-template-application)` a su plantilla de AWS SAM, haciendo referencia al AWS SAR `ApplicationId` y al de la aplicación anidada. `SemanticVersion`

Por ejemplo, puedes usar Event Storage and Backup Pipeline como una aplicación anidada añadiendo el siguiente fragmento de código YAML a la `Resources` sección de tu plantilla 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
```

Al especificar los valores de los parámetros, puede utilizar funciones AWS CloudFormation intrínsecas para hacer referencia a otros recursos de la plantilla. Por ejemplo, en el fragmento de código YAML anterior, el `TopicArn` parámetro hace referencia al `[AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html)` recurso`MySNSTopic`, definido en otra parte de la plantilla. AWS SAM Para obtener más información, consulte la [Referencia de funciones intrínsecas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html) en la *Guía del usuario de AWS CloudFormation *.

**nota**  
La página de la AWS Lambda consola de la aplicación AWS SAR incluye el botón **Copiar como recurso SAM, que copia** en el portapapeles el YAML necesario para anidar una aplicación AWS SAR.

# Implementación y prueba de la aplicación de ejemplo de canalizaciones de bifurcación de eventos de Amazon SNS
<a name="sns-deploy-test-fork-pipelines-sample-application"></a>

Para acelerar el desarrollo de sus aplicaciones basadas en eventos, puede suscribir canales de gestión de eventos (impulsados por Event Fork AWS Pipelines) a temas de Amazon SNS. AWS **Event Fork Pipelines es un conjunto de [aplicaciones anidadas de código abierto, basadas en el modelo de aplicaciones AWS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) [sin servidor](https://aws.amazon.com/serverless/sam/) (AWS SAM), que puede implementar directamente desde el paquete [AWS Event Fork Pipelines (elija Mostrar aplicaciones que creen funciones de IAM personalizadas o políticas de recursos) en su cuenta](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines).** AWS Para obtener más información, consulte [Cómo funciona AWS Event Fork Pipelines](sns-fork-pipeline-as-subscriber.md#how-sns-fork-works).

En esta página, se muestra cómo puede utilizarla Consola de administración de AWS para implementar y probar la aplicación de ejemplo Event Fork Pipelines. AWS 

**importante**  
Para evitar incurrir en costes no deseados una vez que termine de implementar la aplicación de ejemplo AWS Event Fork Pipelines, elimine su pila. CloudFormation Para obtener más información, consulte [Eliminación de una pila en la consola de CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) en la *Guía del usuario de AWS CloudFormation *.

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

El siguiente escenario describe una aplicación de comercio electrónico sin servidor y basada en eventos que utiliza AWS Event Fork Pipelines. Puede utilizar este [ejemplo de aplicación de comercio electrónico](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-example-ecommerce-checkout-api) en la consola AWS Serverless Application Repository y, a continuación, implementarla en la suya Cuenta de AWS mediante la AWS Lambda consola, donde podrá probarla y examinar su código fuente. GitHub

![\[La arquitectura de una aplicación de comercio electrónico sin servidor que integra Servicios de AWS. Describe el flujo de los usuarios de comercio electrónico que realizan pedidos a través de una API Gateway con diferentes canalizaciones de procesamiento, incluidos el almacenamiento de pedidos, el análisis de búsquedas y la reproducción, con el fin de demostrar cómo se administran y analizan los eventos a través de Amazon SNS, Lambda, Amazon SQS, DynamoDB y Kibana.\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/sns-fork-example-use-case.png)


Esta aplicación de comercio electrónico recibe los pedidos de los compradores a través de una RESTful API alojada en API Gateway y respaldada por la AWS Lambda función`CheckoutApiBackendFunction`. Con esta función, se publican todos los pedidos recibidos en un tema de Amazon SNS llamado `CheckoutEventsTopic` que, a su vez, distribuye los pedidos a cuatro canalizaciones diferentes.

La primera canalización es la canalización normal de procesamiento de pago que ha diseñado e implementado el propietario de la aplicación de comercio electrónico. Esta canalización incluye la cola Amazon SQS `CheckoutQueue` que almacena en búfer todos los pedidos recibidos, una AWS Lambda función denominada `CheckoutFunction` que sondea la cola para procesar estos pedidos y la tabla DynamoDB que guarda de forma segura todos los pedidos realizados. `CheckoutTable`

## Aplicando Event Fork AWS Pipelines
<a name="applying-sns-fork-pipelines"></a>

Los componentes de la aplicación de comercio electrónico controlan la lógica de negocio central. Sin embargo, el propietario de la aplicación de comercio electrónico también debe tener en cuenta lo siguiente:
+ **Conformidad**: copias de seguridad seguras y comprimidas, encriptadas en reposo, y saneamiento de la información confidencial.
+ **Resistencia**: reproducción de los pedidos más recientes en caso de que se interrumpa el proceso de gestión logística.
+ **Capacidad de búsqueda**: ejecutar análisis y generar métricas en pedidos realizados.

En lugar de implementar esta lógica de procesamiento de eventos, el propietario de la aplicación puede suscribir AWS Event Fork Pipelines al tema `CheckoutEventsTopic` Amazon SNS.
+ [Canalización de almacenamiento y copia de seguridad de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline) se ha configurado para transformar los datos a fin de eliminar los detalles de la tarjeta de crédito, almacenar en búfer los datos durante 60 segundos, comprimirlos mediante GZIP y cifrarlos mediante la clave administrada por el cliente predeterminada para Amazon S3. Esta clave es administrada AWS y alimentada por AWS Key Management Service ()AWS KMS.

  Para obtener más información, consulte [Choose Amazon S3 For Your Destination](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-s3), [Amazon Data Firehose Data Transformation](https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html) y [Configure Settings](https://docs.aws.amazon.com/firehose/latest/dev/create-configure.html) en la *Guía para desarrolladores de Amazon Data Firehose*.
+ [Canalización de búsqueda y análisis de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline) se ha configurado con una duración de reintento de índice de 30 segundos, un bucket para almacenar los pedidos que no se han indexado en el dominio de búsqueda y una política de filtro para restringir el conjunto de pedidos indexados.

  Para obtener más información, consulte [Elija un OpenSearch servicio para su destino](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-elasticsearch) en la Guía para *desarrolladores de Amazon Data Firehose*.
+ [Canalización de reproducción de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline) se ha configurado con la parte de cola de Amazon SQS de la canalización normal de procesamiento de pedidos que ha diseñado e implementado el propietario de la aplicación de comercio electrónico.

  Para obtener más información, consulte [Nombre y URL de la cola](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-general-identifiers.html#queue-name-url) en la *Guía para desarrolladores de Amazon Simple Queue Service*.

La siguiente política de filtro de JSON se establece en la configuración para la canalización de búsqueda y análisis de eventos. Solo coincide con los pedidos entrantes en los que el importe total es de 100 USD o superior. Para obtener más información, consulte [Filtrado de mensajes en Amazon SNS](sns-message-filtering.md).

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

Al utilizar el patrón AWS Event Fork Pipelines, el propietario de la aplicación de comercio electrónico puede evitar la sobrecarga de desarrollo que suele implicar la programación de una lógica indiferenciada para la gestión de eventos. En su lugar, puede implementar AWS Event Fork Pipelines directamente desde dentro de ella. AWS Serverless Application Repository Cuenta de AWS

# Paso 1: implementar la aplicación de ejemplo de Amazon SNS
<a name="deploy-sample-application"></a>

1. Inicie sesión en la [consola de AWS Lambda](https://console.aws.amazon.com/lambda/).

1. En el panel de navegación, elija **Functions (Funciones)** y, a continuación, **Create function (Crear función)**.

1. En la página **Create function (Crear función)**, proceda del modo siguiente:

   1. Elija **Examinar el repositorio de aplicaciones sin servidor**, **Aplicaciones públicas**, **Mostrar aplicaciones que crean roles de IAM personalizados o políticas de recursos**.

   1. Busque `fork-example-ecommerce-checkout-api` y, a continuación, elija la aplicación.

1. En la página **fork-example-ecommerce-checkout-api**, haga lo siguiente:

   1. En la sección **Application settings (Configuración de la aplicación)**, escriba el valor de **Application name (Nombre de aplicación)** (por ejemplo, `fork-example-ecommerce-my-app`).
**nota**  
Para encontrar fácilmente sus recursos más tarde, mantenga el prefijo `fork-example-ecommerce`.
Para cada implementación, el nombre de la aplicación debe ser único. Si reutilizas el nombre de una aplicación, la implementación solo actualizará la CloudFormation pila implementada anteriormente (en lugar de crear una nueva).

   1. (Opcional) Introduzca una de las siguientes **LogLevel**configuraciones para la ejecución de la función Lambda de la aplicación:
      + `DEBUG`
      + `ERROR`
      + `INFO` (predeterminado)
      + `WARNING`

1. Elija **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications (Confirmo que esta aplicación crea políticas de recursos o roles de IAM personalizados e implementa aplicaciones anidadas)** y, a continuación, en la parte inferior de la página, elija **Deploy (Implementar)**.

En la *my-app* página **Estado de despliegue de fork-example-ecommerce -**, Lambda muestra el estado **Su aplicación se está desplegando**.

En la sección **Recursos**, CloudFormation comienza a crear la pila y muestra el **estado CREATE\$1IN\$1PROGRESS** de cada recurso. **Cuando se completa el proceso, muestra el estado CREATE\$1COMPLETE. CloudFormation **

**nota**  
La implementación de todos los recursos puede tardar entre 20 y 30 minutos.

Cuando se haya completado la implementación, Lambda muestra el estado **La aplicación se ha implementado**.

# Paso 2: ejecutar la aplicación de ejemplo vinculada a SNS
<a name="execute-sample-application"></a>

1. **En la AWS Lambda consola, en el panel de navegación, selecciona Aplicaciones.**

1. En la página **Applications (Aplicaciones)**, en el campo de búsqueda, busque `serverlessrepo-fork-example-ecommerce-my-app` y, a continuación, seleccione la aplicación.

1. En la sección **Resources (Recursos)**, haga lo siguiente:

   1. Para buscar el recurso cuyo tipo es **ApiGatewayRestApi**, por ejemplo, ordene los recursos por **tipo** y`ServerlessRestApi`, a continuación, amplíe el recurso.

   1. Se muestran dos recursos anidados, de los tipos **ApiGatewayDeployment** y **ApiGatewayStage**.

   1. Copie el enlace **Prod API endpoint (Punto de enlace de la API de Prod)** y añádale `/checkout`, por ejemplo: 

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

1. Copie el siguiente código JSON a un archivo 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 una solicitud HTTPS a su punto de enlace de la API, pase la carga de evento de muestra como entrada mediante la ejecución de un comando `curl`, por ejemplo:

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

   La API devuelve la siguiente respuesta vacía, lo que indica que la ejecución es correcta:

   ```
   { }
   ```

# Paso 3: verificar el rendimiento de la aplicación y las canalizaciones de Amazon SNS
<a name="verify-sample-application-pipelines"></a>

## Paso 1: verificar la ejecución de la canalización de pago de ejemplo
<a name="verify-execution-checkout-pipeline"></a>

1. Inicie sesión en la [consola de Amazon DynamoDB](https://console.aws.amazon.com/dynamodb/).

1. En el panel de navegación, elija **Tables (Tablas)**.

1. Busque `serverlessrepo-fork-example` y elija `CheckoutTable`.

1. En la página de detalles de tabla, elija **Items (Elementos)** y, a continuación, el elemento creado.

   Se muestran los atributos almacenados.

## Paso 2: verificar la ejecución de la canalización de almacenamiento y copia de seguridad de eventos
<a name="verify-execution-event-storage-backup-pipeline"></a>

1. Inicie sesión en la [consola de Amazon S3](https://console.aws.amazon.com/s3/).

1. En el panel de navegación, elija **Buckets**.

1. Busque `serverlessrepo-fork-example` y, a continuación, elija `CheckoutBucket`.

1. Navegue por la jerarquía de directorios hasta que encuentre un archivo con la extensión `.gz`.

1. Para descargar el archivo, elija **Actions (Acciones)**, **Open (Abrir)**.

1. La canalización se configura con una función Lambda con la que se sanea la información de la tarjeta de crédito por razones de conformidad.

   Para verificar que la carga de JSON almacenada no contiene información de tarjeta de crédito, descomprima el archivo.

## Paso 3: verificar la ejecución de la canalización de búsqueda y análisis de eventos
<a name="verify-execution-event-search-analytics-pipeline"></a>

1. Inicie sesión en la [consola OpenSearch de servicio](https://console.aws.amazon.com/aos/).

1. En el panel de navegación, en **My domains (Mis dominios)**, elija su dominio con el prefijo `serverl-analyt`.

1. La canalización se configura con una política de filtro de suscripciones de Amazon SNS con la que se establece una condición de coincidencia numérica.

   ****Para comprobar que el evento está indexado porque se refiere a una orden cuyo valor es superior a 100 USD, en la *abcdefgh1ijk* página **serverl-analyt-**, seleccione Indices, checkout\$1events.****

## Paso 4: verificar la ejecución de la canalización de reproducción de eventos
<a name="verify-execution-event-replay-pipeline"></a>

1. Inicie sesión en la [consola de Amazon SQS](https://console.aws.amazon.com/sqs/).

1. En la lista de colas, busque `serverlessrepo-fork-example` y elija `ReplayQueue`.

1. Seleccione **Enviar y recibir mensajes**.

1. **En el cuadro de *123ABCD4E5F6* diálogo **Enviar y recibir mensajes en fork-example-ecommerce -*my-app*... ReplayP- ReplayQueue -, seleccione Sondear** los mensajes.** 

1. Para verificar que el evento está en cola, seleccione **More Details (Más detalles)** junto al mensaje que aparece en la cola.

# Paso 4: simular un problema y reproducir eventos para la recuperación
<a name="simulate-issue-replay-events-for-recovery"></a>

## Paso 1: habilitar el problema simulado y enviar una segunda solicitud de API
<a name="enable-simulated-issue-send-second-api-request"></a>

1. Inicie sesión en la [consola de AWS Lambda](https://console.aws.amazon.com/lambda/).

1. En el panel de navegación, elija **Functions (Funciones)**.

1. Busque `serverlessrepo-fork-example` y elija `CheckoutFunction`.

1. En el **fork-example-ecommerce- - *my-app* -... CheckoutFunction *ABCDEF*** **página, en la sección **Variables de entorno**, defina la variable **BUG\$1ENABLED en** **true** y, a continuación, seleccione Guardar.**

1. Copie el siguiente código JSON a un archivo 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 una solicitud HTTPS a su punto de enlace de la API, pase la carga de evento de muestra como entrada mediante la ejecución de un comando `curl`, por ejemplo:

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

   La API devuelve la siguiente respuesta vacía, lo que indica que la ejecución es correcta:

   ```
   { }
   ```

## Paso 2: verificar la corrupción de datos simulada
<a name="verify-simulated-data-corruption"></a>

1. Inicie sesión en la [consola de Amazon DynamoDB](https://console.aws.amazon.com/dynamodb/).

1. En el panel de navegación, elija **Tables (Tablas)**.

1. Busque `serverlessrepo-fork-example` y elija `CheckoutTable`.

1. En la página de detalles de tabla, elija **Items (Elementos)** y, a continuación, el elemento creado.

   Se muestran los atributos almacenados, algunos marcados como **CORRUPTED\$1 (Dañados)**.

## Paso 3: deshabilitar el problema simulado
<a name="disable-simulated-issue"></a>

1. Inicie sesión en la [consola de AWS Lambda](https://console.aws.amazon.com/lambda/).

1. En el panel de navegación, elija **Functions (Funciones)**.

1. Busque `serverlessrepo-fork-example` y elija `CheckoutFunction`.

1. En el **fork-example-ecommerce- - *my-app* -... CheckoutFunction *ABCDEF*** **página, en la sección **Variables de entorno**, defina la variable **BUG\$1ENABLED en** **false** y, a continuación, seleccione Guardar.**

## Paso 4: habilitar la reproducción para la recuperación del problema
<a name="enable-replay-recover-from-simulated-issue"></a>

1. **En la AWS Lambda consola, en el panel de navegación, selecciona Funciones.**

1. Busque `serverlessrepo-fork-example` y elija `ReplayFunction`.

1. Expanda la sección **Designer (Diseñador)**, elija el mosaico **SQS** y, a continuación, en la sección **SQS**, elija **Enabled (Habilitado)**.
**nota**  
El desencadenador de fuentes de eventos de Amazon SQS tarda aproximadamente un minuto en habilitarse.

1. Seleccione **Save**.

1. Para ver los atributos recuperados, vuelva a la consola de Amazon DynamoDB.

1. Para deshabilitar la reproducción, regrese a la AWS Lambda consola y desactive el activador de la fuente de eventos de Amazon SQS para. `ReplayFunction`

# Suscripción de AWS Event Fork Pipelines a un tema de Amazon SNS
<a name="sns-subscribe-event-fork-pipelines"></a>

Para acelerar el desarrollo de sus aplicaciones basadas en eventos, puede suscribir canales de gestión de eventos (impulsados por Event Fork AWS Pipelines) a los temas de Amazon SNS. AWS **Event Fork Pipelines es un conjunto de [aplicaciones anidadas de código abierto, basadas en el modelo de aplicaciones AWS](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) [sin servidor](https://aws.amazon.com/serverless/sam/) (AWS SAM), que puede implementar directamente desde el paquete [AWS Event Fork Pipelines (elija Mostrar aplicaciones que creen funciones de IAM personalizadas o políticas de recursos) en su cuenta](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines).** AWS Para obtener más información, consulte [Cómo funciona AWS Event Fork Pipelines](sns-fork-pipeline-as-subscriber.md#how-sns-fork-works).

En esta sección, se muestra cómo se puede utilizar Consola de administración de AWS para implementar una canalización y, a continuación, suscribir AWS Event Fork Pipelines a un tema de Amazon SNS. Antes de comenzar, [cree un tema de Amazon SNS](sns-create-topic.md).

Para eliminar los recursos que componen una canalización, busque la canalización en la página de **aplicaciones** de la AWS Lambda consola, expanda la **sección de plantillas de SAM**, elija **CloudFormationpila** y, a continuación, elija **Otras acciones**, **eliminar** pila.

# Implementación y suscripción de la canalización de almacenamiento y copia de seguridad de eventos en Amazon SNS
<a name="deploy-event-storage-backup-pipeline"></a>


|  | 
| --- |
| Para el archivado y el análisis de eventos, Amazon SNS recomienda ahora utilizar su integración nativa con Amazon Data Firehose. Puede suscribir las transmisiones de entrega de Firehose a temas de SNS, lo que le permite enviar notificaciones a puntos de enlace de archivado y análisis, como depósitos de Amazon Simple Storage Service (Amazon S3), tablas de Amazon Redshift, Amazon Service (Service) y más. OpenSearch OpenSearch El uso de Amazon SNS con las transmisiones de entrega de Firehose es una solución totalmente gestionada y sin código que no requiere el uso de funciones. AWS Lambda Para obtener más información, consulte [Distribución ramificada a los flujos de entrega de Firehose](sns-firehose-as-subscriber.md). | 

En este tutorial, se muestra cómo implementar la [canalización de almacenamiento y copia de seguridad de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline) y suscribirla a un tema de Amazon SNS. Este proceso convierte automáticamente la AWS SAM plantilla asociada a la canalización en una CloudFormation pila y, a continuación, implementa la pila en la suya. Cuenta de AWS Este proceso también crea y configura el conjunto de recursos que componen la canalización de almacenamiento y copia de seguridad de eventos, incluidos los siguientes:
+ Cola de Amazon SQS
+ Función de Lambda
+ Flujo de entrega de Firehose
+ Bucket de copia de seguridad de Amazon S3

Para obtener más información sobre la configuración de un flujo con un bucket de Amazon S3 como destino, consulte `[S3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_S3DestinationConfiguration.html)` en la *Referencia de la API de Amazon Data Firehose*.

Para obtener más información sobre la transformación de eventos y la configuración del almacenamiento en búfer de eventos, la compresión y el cifrado de eventos, consulte [Creación de un flujo de entrega](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) en la *Guía para desarrolladores de Amazon Data Firehose*.

Para obtener más información sobre el filtrado de eventos, consulte [Políticas de filtro de suscripciones de Amazon SNS](sns-subscription-filter-policies.md) en esta guía.

1. Inicie sesión en la [consola de AWS Lambda](https://console.aws.amazon.com/lambda/).

1. En el panel de navegación, elija **Functions (Funciones)** y, a continuación, **Create function (Crear función)**.

1. En la página **Create function (Crear función)**, proceda del modo siguiente:

   1. Elija **Examinar el repositorio de aplicaciones sin servidor**, **Aplicaciones públicas**, **Mostrar aplicaciones que crean roles de IAM personalizados o políticas de recursos**.

   1. Busque `fork-event-storage-backup-pipeline` y, a continuación, elija la aplicación.

1. En la página **fork-event-storage-backup-pipeline**, haz lo siguiente:

   1. En la sección **Application settings (Configuración de la aplicación)**, escriba el valor de **Application name (Nombre de aplicación)** (por ejemplo, `my-app-backup`).
**nota**  
Para cada implementación, el nombre de la aplicación debe ser único. Si reutilizas el nombre de una aplicación, la implementación solo actualizará la CloudFormation pila implementada anteriormente (en lugar de crear una nueva).

   1. (Opcional) Para **BucketArn**, introduzca el ARN del bucket de Amazon S3 en el que se cargan los eventos entrantes. Si no introduce ningún valor, se crea un nuevo bucket de Amazon S3 en su AWS cuenta.

   1. (Opcional) Para **DataTransformationFunctionArn**, introduzca el ARN de la función Lambda a través de la cual se transforman los eventos entrantes. Si no escribe un valor, se deshabilita la transformación de datos.

   1. (Opcional) Introduzca una de las siguientes **LogLevel**configuraciones para la ejecución de la función Lambda de la aplicación:
      + `DEBUG`
      + `ERROR`
      + `INFO` (predeterminado)
      + `WARNING`

   1. Para **TopicArn**, introduzca el ARN del tema de Amazon SNS al que se va a suscribir esta instancia de la canalización de bifurcación.

   1. (Opcional) Para **StreamBufferingIntervalInSeconds**e **StreamBufferingSizeInMBs**, introduzca los valores para configurar el almacenamiento en búfer de los eventos entrantes. Si no escribe ningún valor, se utilizan 300 segundos y 5 MB.

   1. (Opcional) Introduzca uno de los siguientes **StreamCompressionFormat**ajustes para comprimir los eventos entrantes:
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (predeterminado)
      + `ZIP`

   1. (Opcional) Para **StreamPrefix**, introduzca el prefijo de cadena para nombrar los archivos almacenados en el bucket de copias de seguridad de Amazon S3. Si no escribe un valor, no se usa ningún prefijo.

   1. (Opcional) Para **SubscriptionFilterPolicy**, introduzca la política de filtrado de suscripciones de Amazon SNS, en formato JSON, que se utilizará para filtrar los eventos entrantes. La política de filtrado decide qué eventos se indexan en el índice de OpenSearch servicios. Si no escribe ningún valor, no se utiliza el filtrado (se indexan todos los eventos).

   1. (Opcional) Para **SubscriptionFilterPolicyScope**, introduzca la cadena `MessageBody` o `MessageAttributes` para habilitar el filtrado de mensajes basado en la carga útil o en los atributos. 

   1. Elija **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications (Confirmo que esta aplicación crea políticas de recursos o roles de IAM personalizados e implementa aplicaciones anidadas)** y, a continuación, elija **Deploy (Implementar)**.

En la *my-app* página **Estado de despliegue** de, Lambda muestra el estado **Su aplicación se está desplegando**.

En la sección **Recursos**, CloudFormation comienza a crear la pila y muestra el **estado CREATE\$1IN\$1PROGRESS** de cada recurso. **Cuando se completa el proceso, muestra el estado CREATE\$1COMPLETE. CloudFormation **

Cuando se haya completado la implementación, Lambda muestra el estado **La aplicación se ha implementado**.

Los mensajes publicados en su tema de Amazon SNS se almacenan en el bucket de copia de seguridad de Amazon S3 aprovisionado de manera automática por la canalización de almacenamiento y copia de seguridad de eventos.

# Implementación y suscripción de la canalización de búsqueda y análisis de eventos en Amazon SNS
<a name="deploy-event-search-analytics-pipeline"></a>


|  | 
| --- |
| Para el archivado y el análisis de eventos, Amazon SNS recomienda ahora utilizar su integración nativa con Amazon Data Firehose. Puede suscribir las transmisiones de entrega de Firehose a temas de SNS, lo que le permite enviar notificaciones a puntos de enlace de archivado y análisis, como depósitos de Amazon Simple Storage Service (Amazon S3), tablas de Amazon Redshift, Amazon Service (Service) y más. OpenSearch OpenSearch El uso de Amazon SNS con las transmisiones de entrega de Firehose es una solución totalmente gestionada y sin código que no requiere el uso de funciones. AWS Lambda Para obtener más información, consulte [Distribución ramificada a los flujos de entrega de Firehose](sns-firehose-as-subscriber.md). | 

En este tutorial, se muestra cómo implementar la [canalización de búsqueda y análisis de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline) y suscribirla a un tema de Amazon SNS. Este proceso convierte automáticamente la AWS SAM plantilla asociada a la canalización en una CloudFormation pila y, a continuación, implementa la pila en la suya. Cuenta de AWS Este proceso también crea y configura el conjunto de recursos que componen la canalización de búsqueda y análisis de eventos, incluidos los siguientes:
+ Cola de Amazon SQS
+ Función de Lambda
+ Flujo de entrega de Firehose
+ Dominio OpenSearch de Amazon Service
+ Bucket de Amazon S3 de mensajes fallidos

Para obtener más información sobre la configuración de un flujo con un índice como destino, consulte `[ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html)` en la *Referencia de la API de Amazon Data Firehose*.

Para obtener más información sobre la transformación de eventos y la configuración del almacenamiento en búfer de eventos, la compresión y el cifrado de eventos, consulte [Creación de un flujo de entrega](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) en la *Guía para desarrolladores de Amazon Data Firehose*.

Para obtener más información sobre el filtrado de eventos, consulte [Políticas de filtro de suscripciones de Amazon SNS](sns-subscription-filter-policies.md) en esta guía.

1. Inicie sesión en la [consola de AWS Lambda](https://console.aws.amazon.com/lambda/).

1. En el panel de navegación, elija **Functions (Funciones)** y, a continuación, **Create function (Crear función)**.

1. En la página **Create function (Crear función)**, proceda del modo siguiente:

   1. Elija **Examinar el repositorio de aplicaciones sin servidor**, **Aplicaciones públicas**, **Mostrar aplicaciones que crean roles de IAM personalizados o políticas de recursos**.

   1. Busque `fork-event-search-analytics-pipeline` y, a continuación, elija la aplicación.

1. En la página **fork-event-search-analytics-pipeline**, haga lo siguiente:

   1. En la sección **Application settings (Configuración de la aplicación)**, escriba el valor de **Application name (Nombre de aplicación)** (por ejemplo, `my-app-search`).
**nota**  
Para cada implementación, el nombre de la aplicación debe ser único. Si reutilizas el nombre de una aplicación, la implementación solo actualizará la CloudFormation pila implementada anteriormente (en lugar de crear una nueva).

   1. (Opcional) Para **DataTransformationFunctionArn**, introduzca el ARN de la función Lambda utilizada para transformar los eventos entrantes. Si no escribe un valor, se deshabilita la transformación de datos.

   1. (Opcional) Introduzca una de las siguientes **LogLevel**configuraciones para la ejecución de la función Lambda de la aplicación:
      + `DEBUG`
      + `ERROR`
      + `INFO` (predeterminado)
      + `WARNING`

   1. (Opcional) Para **SearchDomainArn**, introduzca el ARN del dominio del OpenSearch servicio, un clúster que configura la funcionalidad de procesamiento y almacenamiento necesaria. Si no escribe ningún valor, se creará un nuevo dominio con la configuración predeterminada.

   1. Para **TopicArn**, introduzca el ARN del tema de Amazon SNS al que se va a suscribir esta instancia de la canalización de bifurcación.

   1. Para **SearchIndexName**, introduzca el nombre del índice de OpenSearch servicios para la búsqueda y el análisis de eventos.
**nota**  
Las siguientes cuotas se aplican a los nombres de índice:  
No pueden incluir letras mayúsculas
No pueden incluir los siguientes caracteres: `\ / * ? " < > | ` , #`
No pueden comenzar por los siguientes caracteres: `- + _`
No pueden ser los siguientes: `. ..`
No pueden tener más de 80 caracteres
No pueden tener más de 255 bytes
No puede contener dos puntos (de OpenSearch Service 7.0)

   1. (Opcional) Introduzca una de las siguientes **SearchIndexRotationPeriod**configuraciones para el período de rotación del índice de OpenSearch servicios:
      + `NoRotation` (predeterminado)
      + `OneDay`
      + `OneHour`
      + `OneMonth`
      + `OneWeek`

      La rotación de índice agrega una marca temporal al nombre del índice, lo que facilita el vencimiento de los datos antiguos. 

   1. Para **SearchTypeName**, introduzca el nombre del tipo de OpenSearch servicio para organizar los eventos en un índice.
**nota**  
OpenSearch Los nombres de los tipos de servicio pueden contener cualquier carácter (excepto bytes nulos), pero no pueden empezar por él`_`.
En el OpenSearch caso de Service 6.x, solo puede haber un tipo por índice. Si especifica un tipo nuevo para un índice existente que ya tiene otro tipo, Firehose devuelve un error de tiempo de ejecución.

   1. (Opcional) Para **StreamBufferingIntervalInSeconds**y **StreamBufferingSizeInMBs**, introduzca los valores para configurar el almacenamiento en búfer de los eventos entrantes. Si no escribe ningún valor, se utilizan 300 segundos y 5 MB.

   1. (Opcional) Introduzca uno de los siguientes **StreamCompressionFormat**ajustes para comprimir los eventos entrantes:
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (predeterminado)
      + `ZIP`

   1. (Opcional) Para **StreamPrefix**, introduzca el prefijo de cadena para nombrar los archivos almacenados en el depósito de letras muertas de Amazon S3. Si no escribe un valor, no se usa ningún prefijo.

   1. (Opcional) Para **StreamRetryDurationInSecons**, introduzca la duración del reintento en los casos en que Firehose no pueda indexar los eventos en OpenSearch el índice de servicios. Si no escribe un valor, se usan 300 segundos.

   1. (Opcional) Para **SubscriptionFilterPolicy**, introduzca la política de filtrado de suscripciones de Amazon SNS, en formato JSON, que se utilizará para filtrar los eventos entrantes. La política de filtrado decide qué eventos se indexan en el índice de OpenSearch servicios. Si no escribe ningún valor, no se utiliza el filtrado (se indexan todos los eventos).

   1. Elija **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications (Confirmo que esta aplicación crea políticas de recursos o roles de IAM personalizados e implementa aplicaciones anidadas)** y, a continuación, elija **Deploy (Implementar)**.

En la *my-app-search* página **Estado de despliegue** de, Lambda muestra el estado **Su aplicación se está desplegando**.

En la sección **Recursos**, CloudFormation comienza a crear la pila y muestra el **estado CREATE\$1IN\$1PROGRESS** de cada recurso. **Cuando se completa el proceso, muestra el estado CREATE\$1COMPLETE. CloudFormation **

Cuando se haya completado la implementación, Lambda muestra el estado **La aplicación se ha implementado**.

Los mensajes publicados en tu tema de Amazon SNS se indexan automáticamente en el índice de OpenSearch servicios proporcionado por la canalización de búsqueda y análisis de eventos. Si la canalización no puede indexar un evento, lo almacena en un bucket de mensajes fallidos de Amazon S3.

# Implementación de la canalización de reproducción de eventos con la integración de Amazon SNS
<a name="deploy-event-replay-pipeline"></a>

En este tutorial, se muestra cómo implementar la [canalización de reproducción de eventos](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline) y suscribirla a un tema de Amazon SNS. Este proceso convierte automáticamente la AWS SAM plantilla asociada a la canalización en una CloudFormation pila y, a continuación, despliega la pila en la suya Cuenta de AWS. Con este proceso, también se crea y configura el conjunto de recursos que componen la canalización de reproducción de eventos, incluida una cola de Amazon SQS y una función Lambda.

Para obtener más información sobre el filtrado de eventos, consulte [Políticas de filtro de suscripciones de Amazon SNS](sns-subscription-filter-policies.md) en esta guía.

1. Inicie sesión en la [consola de AWS Lambda](https://console.aws.amazon.com/lambda/).

1. En el panel de navegación, elija **Functions (Funciones)** y, a continuación, **Create function (Crear función)**.

1. En la página **Create function (Crear función)**, proceda del modo siguiente:

   1. Elija **Examinar el repositorio de aplicaciones sin servidor**, **Aplicaciones públicas**, **Mostrar aplicaciones que crean roles de IAM personalizados o políticas de recursos**.

   1. Busque `fork-event-replay-pipeline` y, a continuación, elija la aplicación.

1. En la página **fork-event-replay-pipeline**, haga lo siguiente:

   1. En la sección **Application settings (Configuración de la aplicación)**, escriba el valor de **Application name (Nombre de aplicación)** (por ejemplo, `my-app-replay`).
**nota**  
Para cada implementación, el nombre de la aplicación debe ser único. Si reutilizas el nombre de una aplicación, la implementación solo actualizará la CloudFormation pila implementada anteriormente (en lugar de crear una nueva).

   1. (Opcional) Introduzca una de las siguientes **LogLevel**configuraciones para la ejecución de la función Lambda de la aplicación:
      + `DEBUG`
      + `ERROR`
      + `INFO` (predeterminado)
      + `WARNING`

   1. (Opcional) Para **ReplayQueueRetentionPeriodInSeconds**, introduzca el tiempo, en segundos, durante el que la cola de reproducción de Amazon SQS guarda el mensaje. Si no escribe un valor, se usan 1 209 600 segundos (14 días).

   1. Para **TopicArn**, introduzca el ARN del tema de Amazon SNS al que se va a suscribir esta instancia de la canalización de bifurcación.

   1. Para **DestinationQueueName**, introduzca el nombre de la cola de Amazon SQS a la que la función de reproducción de Lambda reenvía los mensajes.

   1. (Opcional) Para **SubscriptionFilterPolicy**, introduzca la política de filtrado de suscripciones de Amazon SNS, en formato JSON, que se utilizará para filtrar los eventos entrantes. La política de filtro decide qué eventos se almacenan en búfer para la reproducción. Si no escribe ningún valor, no se utiliza el filtrado (todos los eventos se almacenan en búfer para la reproducción).

   1. Elija **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications (Confirmo que esta aplicación crea políticas de recursos o roles de IAM personalizados e implementa aplicaciones anidadas)** y, a continuación, elija **Deploy (Implementar)**.

En la *my-app-replay* página **Estado de despliegue** de, Lambda muestra el estado **Su aplicación se está desplegando**.

En la sección **Recursos**, CloudFormation comienza a crear la pila y muestra el **estado CREATE\$1IN\$1PROGRESS** de cada recurso. **Cuando se completa el proceso, muestra el estado CREATE\$1COMPLETE. CloudFormation **

Cuando se haya completado la implementación, Lambda muestra el estado **La aplicación se ha implementado**.

Los mensajes publicados en su tema de Amazon SNS se almacenan en búfer para reproducirlos en la cola de Amazon SQS aprovisionada de manera automática por la canalización de reproducción de eventos.

**nota**  
De forma predeterminada, la reproducción está deshabilitada. Para habilitar la reproducción, vaya a la página de la función en la consola de Lambda, expanda la sección **Diseñador**, seleccione el mosaico **SQS** y, a continuación, en la sección **SQS**, elija **Habilitado**.