

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Transférez les événements Amazon SNS à Event Fork AWS Pipelines
<a name="sns-fork-pipeline-as-subscriber"></a>


|  | 
| --- |
| Pour l'archivage et l'analyse des événements, Amazon SNS recommande désormais d'utiliser son intégration native avec Amazon Data Firehose. Vous pouvez abonner les flux de diffusion Firehose aux rubriques SNS, ce qui vous permet d'envoyer des notifications aux points de terminaison d'archivage et d'analyse tels que les buckets Amazon Simple Storage Service (Amazon S3), les tables Amazon Redshift, Amazon Service (Service), etc. OpenSearch OpenSearch L'utilisation d'Amazon SNS avec les flux de diffusion Firehose est une solution entièrement gérée et sans code qui ne nécessite pas l'utilisation de fonctions. AWS Lambda Pour de plus amples informations, veuillez consulter [Streams de diffusion de Fanout to Firehose](sns-firehose-as-subscriber.md). | 

Vous pouvez utiliser Amazon SNS pour créer des applications qui reposent sur les événements et utilisent les services d'abonné afin d'exécuter automatiquement des tâches en réponse à des événements déclenchés par ses services d'éditeur. Ce modèle d'architecture peut rendre des services plus réutilisables, interopérables et évolutifs. Toutefois, il peut être fastidieux de traiter les événements via des pipelines qui répondent aux exigences courantes de gestion des événements, par exemple la sauvegarde, le stockage, la recherche, l'analytique et la relecture d'événements.

Pour accélérer le développement de vos applications basées sur les événements, vous pouvez abonner des pipelines de gestion d'événements, alimentés par Event Fork AWS Pipelines, à des rubriques Amazon SNS. AWS Event Fork Pipelines est une suite d'[applications imbriquées](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) open source, basée sur le [modèle d'application AWS sans serveur](https://aws.amazon.com/serverless/sam/) (AWS SAM), que vous pouvez déployer directement depuis la [suite AWS Event Fork Pipelines](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (choisissez **Afficher les applications qui créent des rôles IAM ou des politiques de ressources personnalisés**) sur votre compte. AWS 

Pour un AWS cas d'utilisation d'Event Fork Pipelines, voir[Déploiement et test de l'exemple d'application Amazon SNS Event Fork Pipelines](sns-deploy-test-fork-pipelines-sample-application.md).

**Topics**
+ [Comment fonctionne AWS Event Fork Pipelines](#how-sns-fork-works)
+ [Déploiement de pipelines AWS Event Fork](#deploying-sns-fork-pipelines)
+ [Déploiement et test de l'exemple d'application Amazon SNS Event Fork Pipelines](sns-deploy-test-fork-pipelines-sample-application.md)
+ [Abonnement d' AWS Event Fork Pipelines à une rubrique Amazon SNS](sns-subscribe-event-fork-pipelines.md)

## Comment fonctionne AWS Event Fork Pipelines
<a name="how-sns-fork-works"></a>

AWS Event Fork Pipelines est un modèle de conception sans serveur. Cependant, il s'agit également d'une suite d'applications sans serveur imbriquées basées sur le AWS SAM (que vous pouvez déployer directement depuis le AWS Serverless Application Repository (AWS SAR) sur votre site Compte AWS afin d'enrichir vos plateformes axées sur les événements). Vous pouvez déployer ces applications imbriquées individuellement, comme requis par votre architecture.

**Topics**
+ [Pipeline de stockage et de sauvegarde d'événements](#sns-fork-event-storage-and-backup-pipeline)
+ [Le pipeline de recherche et d'analyse d'événements](#sns-fork-event-search-and-analytics-pipeline)
+ [Le pipeline de relecture d'événements](#sns-fork-event-replay-pipeline)

Le schéma suivant montre une application AWS Event Fork Pipelines complétée par trois applications imbriquées. Vous pouvez déployer n'importe lequel des pipelines de la suite AWS Event Fork Pipelines sur le AWS SAR indépendamment, selon les exigences de votre architecture.

![\[L'architecture AWS Event Fork Pipelines, qui montre comment les événements d'un sujet Amazon SNS sont filtrés et traités via trois pipelines distincts : Event Storage and Backup, Event Search and Analytics, et Event Replay. Ces pipelines sont représentés sous forme de boîtes empilées verticalement, chacune traitant indépendamment les événements en parallèle à partir de la même rubrique Amazon SNS.\]](http://docs.aws.amazon.com/fr_fr/sns/latest/dg/images/sns-fork-pipeline-as-subscriber-how-it-works.png)


Chaque pipeline est abonné à la même rubrique Amazon SNS, ce qui lui permet de traiter les événements en parallèle au fur et à mesure de leur publication dans la rubrique. Chaque pipeline est indépendant et peut définir sa propre [politique de filtre d'abonnement](sns-subscription-filter-policies.md). Cela permet à un pipeline de traiter uniquement un sous-ensemble des événements qui l'intéressent (plutôt que tous les événements publiés dans la rubrique).

**Note**  
Comme vous placez les trois pipelines AWS Event Fork à côté de vos pipelines de traitement d'événements habituels (peut-être déjà abonnés à votre rubrique Amazon SNS), vous n'avez pas besoin de modifier une partie de votre éditeur de messages actuel pour tirer parti des pipelines AWS Event Fork dans vos charges de travail existantes.

### Pipeline de stockage et de sauvegarde d'événements
<a name="sns-fork-event-storage-and-backup-pipeline"></a>

Le diagramme suivant montre le [Pipeline de stockage et de sauvegarde d'événements](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-storage-backup-pipeline). Vous pouvez abonner ce pipeline à votre rubrique Amazon SNS pour sauvegarder automatiquement les événements transitant par votre système.

Ce pipeline est composé d'une file d'attente Amazon SQS qui met en mémoire tampon les événements transmis par la rubrique Amazon SNS, d'une AWS Lambda fonction qui interroge automatiquement ces événements dans la file d'attente et les transmet dans un flux, et d'un compartiment Amazon S3 qui sauvegarde de manière durable les événements chargés par le flux. 

![\[Le Fork-Event-Storage-Backup -Pipeline, conçu pour traiter et sauvegarder les événements d'une rubrique Amazon SNS. Le flux commence par une rubrique Amazon SNS à partir de laquelle les événements sont transférés vers une file d'attente Amazon SQS. Ces événements filtrés sont ensuite traités par une fonction Lambda, qui les transmet à un Data Firehose. Le flux Firehose est chargé de mettre en mémoire tampon, de transformer et de compresser les événements avant de les charger dans un compartiment de sauvegarde Amazon S3. Enfin, Amazon Athena peut être utilisé pour interroger les données stockées. Le diagramme utilise une série d'icônes et de flèches pour illustrer le flux d'un service à l'autre, en étiquetant clairement chaque composant du pipeline.\]](http://docs.aws.amazon.com/fr_fr/sns/latest/dg/images/sns-fork-event-storage-and-backup-pipeline.png)


Pour affiner le comportement de votre flux Firehose, vous pouvez le configurer de façon à ce qu'il mette en tampon, transforme et compresse vos événements avant de les charger dans le compartiment. Pendant le chargement des événements , vous pouvez utiliser Amazon Athena pour interroger le compartiment à l'aide de requêtes SQL standard. Vous pouvez également configurer le pipeline de façon à réutiliser un compartiment Amazon S3 existant ou à en créer un nouveau.

### Le pipeline de recherche et d'analyse d'événements
<a name="sns-fork-event-search-and-analytics-pipeline"></a>

Le diagramme suivant montre le [Pipeline de recherche et d'analyse d'événements](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-search-analytics-pipeline). Vous pouvez abonner ce pipeline à votre rubrique Amazon SNS pour indexer les événements qui transitent via votre système dans un domaine de recherche, puis exécuter des analyses sur eux.

Ce pipeline est composé d'une file d'attente Amazon SQS qui met en mémoire tampon les événements transmis par la rubrique Amazon SNS, d'une AWS Lambda fonction qui extrait les événements de la file d'attente et les envoie dans un flux, d'un domaine Amazon OpenSearch Service qui indexe les événements chargés par le flux Firehose et d'un compartiment Amazon S3 qui stocke les événements en lettre morte qui ne peuvent pas être indexés dans le domaine de recherche.

![\[Le pipeline de recherche et d'analyse d'événements au sein d'une AWS architecture. Cela commence sur la gauche avec la rubrique Amazon SNS recevant tous les événements. Ces événements sont ensuite acheminés par une ligne pointillée représentant les « événements filtrés par répartition » vers une file d'attente Amazon SQS. À partir de la file d'attente, les événements sont traités par une fonction Lambda qui les transmet ensuite à un flux Data Firehose. Le Data Firehose dirige les événements vers deux destinations : une route mène à un Amazon Elasticsearch Service à des fins d'indexation, et l'autre envoie des événements impossibles à traiter ou « lettre morte » vers un compartiment de lettres mortes Amazon S3. À l'extrême droite, les résultats du service Elasticsearch sont intégrés à un tableau de bord Kibana à des fins d'analyse et de visualisation. L'ensemble du flux est disposé horizontalement et chaque composant est relié par des lignes indiquant le sens du flux de données.\]](http://docs.aws.amazon.com/fr_fr/sns/latest/dg/images/sns-fork-event-search-and-analytics-pipeline.png)


Pour affiner votre flux Firehose en termes de mise en mémoire tampon, de transformation et de compression des événements, vous pouvez configurer ce pipeline.

Vous pouvez également configurer si le pipeline doit réutiliser un OpenSearch domaine existant dans votre domaine Compte AWS ou en créer un nouveau pour vous. Lorsque les événements sont indexées dans le domaine de recherche, vous pouvez utiliser Kibana pour exécuter des analyses sur vos événements et mettre à jour les tableaux de bord visuels en temps réel. 

### Le pipeline de relecture d'événements
<a name="sns-fork-event-replay-pipeline"></a>

Le diagramme suivant montre le [Pipeline de relecture d'événements](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-event-replay-pipeline). Pour enregistrer les événements qui ont été traités par votre système au cours des 14 derniers jours (par exemple, lorsque votre plateforme a besoin de récupérer après un incident), vous pouvez abonner ce pipeline à votre rubrique Amazon SNS, puis retraiter les événements.

Ce pipeline est composé d'une file d'attente Amazon SQS qui met en mémoire tampon les événements transmis par la rubrique Amazon SNS, et d'une AWS Lambda fonction qui interroge les événements de la file d'attente et les réachemine vers votre pipeline de traitement des événements normal, qui est également abonné à votre sujet.

![\[Le pipeline de rediffusion d'événements sous forme d'organigramme. De gauche à droite, il commence par une rubrique Amazon SNS qui distribue les événements filtrés à deux processus parallèles. Le flux supérieur représente votre pipeline de traitement des événements habituel, qui inclut une file d'attente Amazon SQS qui traite les événements. Le flux inférieur, étiqueté « »fork-event-replay-pipeline, inclut une file d'attente de rediffusion Amazon SQS dans laquelle les événements sont temporairement stockés avant d'être traités par une fonction de rediffusion Lambda. Cette fonction Lambda a la capacité de réintégrer les événements dans votre pipeline de traitement d'événements habituel ou de les maintenir en attente de rediffusion, selon que la fonction de rediffusion est activée ou désactivée. Le diagramme indique également que les opérateurs ont le contrôle de l'activation ou de la désactivation de la fonctionnalité de rediffusion d'événements.\]](http://docs.aws.amazon.com/fr_fr/sns/latest/dg/images/sns-fork-event-replay-pipeline.png)


**Note**  
Par défaut, la fonction de relecture est désactivée et ne relance pas vos événements. Si vous avez besoin de retraiter les événements, vous devez activer la file d'attente de relecture Amazon SQS en tant que source d'événement pour la fonction de relecture AWS Lambda .

## Déploiement de pipelines AWS Event Fork
<a name="deploying-sns-fork-pipelines"></a>

La [suite AWS Event Fork Pipelines](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (choisissez **Afficher les applications qui créent des rôles IAM ou des politiques de ressources personnalisés**) est disponible sous la forme d'un groupe d'applications publiques dans le AWS Serverless Application Repository, à partir duquel vous pouvez les déployer et les tester manuellement à l'aide de la [AWS Lambda console](https://console.aws.amazon.com/lambda/). Pour plus d'informations sur le déploiement de pipelines à l'aide de la AWS Lambda console, consultez[Abonnement d' AWS Event Fork Pipelines à une rubrique Amazon SNS](sns-subscribe-event-fork-pipelines.md).

Dans un scénario de production, nous recommandons d'intégrer AWS Event Fork Pipelines dans le modèle AWS SAM global de votre application. La fonctionnalité d'application imbriquée vous permet de le faire en ajoutant la ressource `[AWS::Serverless::Application](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template.html#serverless-sam-template-application)` à votre modèle AWS SAM, en référençant le AWS SAR `ApplicationId` et le `SemanticVersion` de l'application imbriquée.

Par exemple, vous pouvez utiliser Event Storage and Backup Pipeline comme application imbriquée en ajoutant l'extrait YAML suivant à la `Resources` section de votre modèle 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
```

Lorsque vous spécifiez des valeurs de paramètres, vous pouvez utiliser des fonctions AWS CloudFormation intrinsèques pour référencer d'autres ressources dans votre modèle. Par exemple, dans l'extrait YAML ci-dessus, le `TopicArn` paramètre fait référence à la `[AWS::SNS::Topic](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-topic.html)` ressource`MySNSTopic`, définie ailleurs dans le modèle. AWS SAM Pour plus d'informations, consultez la section de [Référence des fonctions intrinsèques](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference.html) dans le *AWS CloudFormation Guide de l'utilisateur*.

**Note**  
La page de AWS Lambda console de votre application AWS SAR inclut le bouton **Copier en tant que ressource SAM**, qui copie le code YAML requis pour imbriquer une application AWS SAR dans le presse-papiers.

# Déploiement et test de l'exemple d'application Amazon SNS Event Fork Pipelines
<a name="sns-deploy-test-fork-pipelines-sample-application"></a>

Pour accélérer le développement de vos applications basées sur les événements, vous pouvez abonner des pipelines de gestion d'événements, alimentés par Event Fork AWS Pipelines, à des rubriques Amazon SNS. AWS Event Fork Pipelines est une suite d'[applications imbriquées](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) open source, basée sur le [modèle d'application AWS sans serveur](https://aws.amazon.com/serverless/sam/) (AWS SAM), que vous pouvez déployer directement depuis la [suite AWS Event Fork Pipelines](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (choisissez **Afficher les applications qui créent des rôles IAM ou des politiques de ressources personnalisés**) sur votre compte. AWS Pour de plus amples informations, veuillez consulter [Comment fonctionne AWS Event Fork Pipelines](sns-fork-pipeline-as-subscriber.md#how-sns-fork-works).

Cette page explique comment vous pouvez utiliser le AWS Management Console pour déployer et tester l'exemple d'application AWS Event Fork Pipelines.

**Important**  
Pour éviter d'encourir des coûts indésirables une fois le déploiement de l'exemple d'application AWS Event Fork Pipelines terminé, supprimez sa CloudFormation pile. Pour plus d'informations, consultez [Suppression d'une pile dans la console CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html) dans le *Guide de l'utilisateur AWS CloudFormation *.

# AWS Exemple de cas d'utilisation d'Event Fork Pipelines
<a name="example-sns-fork-use-case"></a>

Le scénario suivant décrit une application de commerce électronique sans serveur pilotée par des événements qui utilise AWS Event Fork Pipelines. Vous pouvez utiliser cet [exemple d'application de commerce électronique](https://serverlessrepo.aws.amazon.com/applications/arn:aws:serverlessrepo:us-east-1:077246666028:applications~fork-example-ecommerce-checkout-api) dans le, AWS Serverless Application Repository puis le déployer dans votre Compte AWS AWS Lambda console, où vous pouvez le tester et examiner son code source GitHub.

![\[Architecture d'une application de commerce électronique sans serveur qui intègre Services AWS. Il décrit le flux entre les utilisateurs du commerce électronique qui passent des commandes via une API Gateway et les différents pipelines de traitement, notamment le stockage des commandes, l'analyse des recherches et la rediffusion, et montre comment les événements sont gérés et analysés via Amazon SNS, Lambda, Amazon SQS, DynamoDB et Kibana.\]](http://docs.aws.amazon.com/fr_fr/sns/latest/dg/images/sns-fork-example-use-case.png)


Cette application de commerce électronique prend les commandes des acheteurs via une RESTful API hébergée par API Gateway et soutenue par la AWS Lambda fonction`CheckoutApiBackendFunction`. Cette fonction publie toutes les commandes reçues dans une rubrique Amazon SNS nommée `CheckoutEventsTopic`, qui transmet à son tour toutes les commandes à quatre différents pipelines.

Le premier pipeline est le pipeline de traitement standard des paiements conçu et mis en œuvre par le propriétaire de l'application d'e-commerce. Ce pipeline comprend la file d'attente Amazon SQS `CheckoutQueue` qui met en mémoire tampon toutes les commandes reçues, une AWS Lambda fonction nommée `CheckoutFunction` qui interroge la file d'attente pour traiter ces commandes, et la table `CheckoutTable` DynamoDB qui enregistre de manière sécurisée toutes les commandes passées.

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

Les composants de l'application d'e-commerce gèrent la logique d'entreprise de base. Toutefois, le propriétaire de l'application d'e-commerce propriétaire doit également prendre en compte les éléments suivants :
+ **Conformité - **Sauvegardes sécurisées et compressées, chiffrées au repos et nettoyage des informations sensibles
+ **Résilience - **Relecture de la plupart des commandes récentes en cas de défaillance du processus de réalisation
+ **Capacité de recherche - **Exécution d'analyses et génération des métriques sur les commandes passées

Au lieu d'implémenter cette logique de traitement des événements, le propriétaire de l'application peut abonner AWS Event Fork Pipelines à la `CheckoutEventsTopic` rubrique Amazon SNS
+ [Pipeline de stockage et de sauvegarde d'événements](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline) est configuré pour transformer les données afin de supprimer les détails des cartes de paiement, de mettre les données dans la mémoire tampon pendant 60 secondes, de les compresser à l'aide de GZIP et de les chiffrer à l'aide de la clé gérée par le client par défaut pour Amazon S3. Cette clé est gérée AWS et alimentée par le AWS Key Management Service (AWS KMS).

  Pour plus d'informations, consultez [Choisir Amazon S3 pour votre 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) et [Configurer les paramètres](https://docs.aws.amazon.com/firehose/latest/dev/create-configure.html) dans le manuel *Amazon Data Firehose* Developer Guide.
+ [Le pipeline de recherche et d'analyse d'événements](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline) est configuré avec un index de durée de nouvelle tentative de 30 secondes, un compartiment de stockage de commandes qui ne parviennent pas à être indexées dans le domaine de recherche et une politique de filtre permettant de limiter l'ensemble de commandes indexées.

  Pour plus d'informations, consultez [Choisir le OpenSearch service pour votre destination](https://docs.aws.amazon.com/firehose/latest/dev/create-destination.html#create-destination-elasticsearch) dans le manuel *Amazon Data Firehose Developer Guide*.
+ [Le pipeline de relecture d'événements](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline) est configuré avec la partie de la file d'attente Amazon SQS du pipeline de traitement des commandes standard conçu et mis en œuvre par le propriétaire de l'application d'e-commerce.

  Pour de plus amples informations, consultez le [Nom et l'URL d'une file d'attente](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-general-identifiers.html#queue-name-url) dans *Guide du développeur Amazon SQS*.

La politique de filtre JSON suivante est définie dans la configuration du pipeline de recherche et d'analyse d'événements. Elle sélectionne uniquement les commandes entrantes dans lesquelles le montant total s'élève à 100 USD ou plus. Pour de plus amples informations, veuillez consulter [Filtrage des messages Amazon SNS](sns-message-filtering.md).

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

En utilisant le modèle AWS Event Fork Pipelines, le propriétaire de l'application de commerce électronique peut éviter les frais de développement qui accompagnent souvent le codage d'une logique indifférenciée pour la gestion des événements. Au lieu de cela, elle peut déployer AWS Event Fork Pipelines directement depuis elle Compte AWS. AWS Serverless Application Repository 

# Étape 1 : déploiement de l'exemple d'application Amazon SNS
<a name="deploy-sample-application"></a>

1. Connectez-vous à la [AWS Lambda console](https://console.aws.amazon.com/lambda/).

1. Dans le panneau de navigation, choisissez **Fonctions**, puis **Créer une fonction**.

1. Sur la page **Créer une fonction**, procédez de la façon suivante :

   1. Choisissez **Parcourir le référentiel d'applications sans serveur**, **Applications publiques**, **Afficher les applications qui créent des politiques de rôles ou de ressources IAM personnalisées**.

   1. Recherchez `fork-example-ecommerce-checkout-api` et choisissez l'application.

1. Sur la page **fork-example-ecommerce-checkout-api**, procédez comme suit :

   1. Dans la section **Paramètres de l'application**, entrez un **Nom d'application** (par exemple, `fork-example-ecommerce-my-app`).
**Note**  
Pour rechercher vos ressources facilement plus tard, conservez le préfixe `fork-example-ecommerce`.
Pour chaque déploiement, le nom de l'application doit être unique. Si vous réutilisez le nom d'une application, le déploiement ne mettra à jour que la CloudFormation pile précédemment déployée (plutôt que d'en créer une nouvelle).

   1. (Facultatif) Entrez l'un des **LogLevel**paramètres suivants pour l'exécution de la fonction Lambda de votre application :
      + `DEBUG`
      + `ERROR`
      + `INFO` (par défaut)
      + `WARNING`

1. Choisissez **I acknowledge that this app creates custom IAM roles, resource policies and deploys nested applications. (Je comprends que cette application crée des rôles IAM et des politiques de ressources personnalisés, et déploie des applications imbriquées.)** puis, en base de la page, choisissez **Deploy (Déployer)**.

Sur la *my-app* page **État du déploiement pour fork-example-ecommerce -**, Lambda affiche l'état **Votre application est en cours de déploiement**.

Dans la section **Ressources**, CloudFormation commence à créer la pile et affiche le statut **CREATE\$1IN\$1PROGRESS** pour chaque ressource. Lorsque le processus est terminé, CloudFormation affiche le statut **CREATE\$1COMPLETE**.

**Note**  
Le déploiement de toutes les ressources peut prendre 20-30 minutes.

Une fois le déploiement terminé, Lambda affiche l'état **Votre application a été déployée**.

# Étape 2 : Exécution de l'exemple d'application lié au SNS
<a name="execute-sample-application"></a>

1. Dans la AWS Lambda console, sur le panneau de navigation, sélectionnez **Applications**.

1. Sur la page **Applications**, dans le champ de recherche, recherchez `serverlessrepo-fork-example-ecommerce-my-app`, puis choisissez l'application.

1. Dans la section **Ressources**, effectuez les opérations suivantes :

   1. Pour trouver la ressource dont le type est **ApiGatewayRestApi**, triez les ressources par **type**, par exemple`ServerlessRestApi`, puis développez la ressource.

   1. Deux ressources imbriquées sont affichées, de types **ApiGatewayDeployment** et **ApiGatewayStage**.

   1. Copiez le lien **Point de terminaison de l'API de production** et ajoutez-lui `/checkout`, par exemple : 

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

1. Copiez le code JSON suivant dans un fichier nommé `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. Pour envoyer une demande HTTPS au point de terminaison de votre API, transmettez la charge utile de l'exemple d'événement comme entrée en exécutant une commande `curl`, par exemple :

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

   L'API renvoie la réponse vide suivante, indiquant une exécution réussie :

   ```
   { }
   ```

# Étape 3 : vérification des performances de l'application et du pipeline Amazon SNS
<a name="verify-sample-application-pipelines"></a>

## Étape 1 : Vérification de l'exécution de l'exemple de pipeline de paiement
<a name="verify-execution-checkout-pipeline"></a>

1. Connectez-vous à la [console Amazon DynamoDB](https://console.aws.amazon.com/dynamodb/).

1. Dans le panneau de navigation, choisissez **Tables**.

1. Recherchez `serverlessrepo-fork-example` et choisissez `CheckoutTable`.

1. Dans la page des détails de la table, choisissez **Éléments**, puis choisissez l'élément créé.

   Les attributs stockés sont affichés.

## Étape 2 : Vérification de l'exécution du pipeline de stockage et de sauvegarde des événements
<a name="verify-execution-event-storage-backup-pipeline"></a>

1. Connectez-vous à la [console Amazon S3](https://console.aws.amazon.com/s3/).

1. Dans le panneau de navigation, choisissez **Compartiments**.

1. Recherchez `serverlessrepo-fork-example` et choisissez `CheckoutBucket`.

1. Parcourez la hiérarchie de répertoires jusqu'à ce que vous trouviez un fichier avec l'extension `.gz`.

1. Pour télécharger le fichier, choisissez **Actions**, **Ouvrir**.

1. Le pipeline est configuré avec une fonction Lambda qui nettoie les informations de carte de paiement pour des raisons de conformité.

   Pour vérifier que la charge utile JSON stockée ne contient pas d'informations sur les cartes de paiement, décompressez le fichier.

## Étape 3 : Vérification de l'exécution du pipeline de recherche et d'analyse d'événements
<a name="verify-execution-event-search-analytics-pipeline"></a>

1. Connectez-vous à la [console OpenSearch de service](https://console.aws.amazon.com/aos/).

1. Dans le panneau de navigation, sous **Mes domaines**, choisissez le domaine préfixé avec `serverl-analyt`.

1. Le pipeline est configuré avec une politique de filtre d'abonnement Amazon SNS qui définit une condition de correspondance numérique.

   ****Pour vérifier que l'événement est indexé car il fait référence à une commande dont la valeur est supérieure à 100 USD, sur la *abcdefgh1ijk* page **serverl-analyt-**, choisissez Indices, checkout\$1events.****

## Étape 4 : Vérification de l'exécution du pipeline de rediffusion d'événements
<a name="verify-execution-event-replay-pipeline"></a>

1. Connectez-vous à la [console Amazon SQS](https://console.aws.amazon.com/sqs/).

1. Dans la liste des files d'attente, recherchez `serverlessrepo-fork-example` et choisissez `ReplayQueue`.

1. Choisissez **Envoyer et recevoir des messages**.

1. Dans la boîte de *123ABCD4E5F6* dialogue **Envoyer et recevoir des messages dans fork-example-ecommerce -*my-app*... ReplayP- ReplayQueue -**, choisissez **Sondage pour les** messages. 

1. Pour vérifier que l'événement est mis en file d'attente, choisissez **Plus de détails** en regard du message qui s'affiche dans la file d'attente.

# Étape 4 : Simulation d'un problème et rediffusion des événements pour le rétablissement
<a name="simulate-issue-replay-events-for-recovery"></a>

## Étape 1 : activer le problème simulé et envoyer une deuxième demande d'API
<a name="enable-simulated-issue-send-second-api-request"></a>

1. Connectez-vous à la [AWS Lambda console](https://console.aws.amazon.com/lambda/).

1. Dans le panneau de navigation, choisissez **Fonctions**.

1. Recherchez `serverlessrepo-fork-example` et choisissez `CheckoutFunction`.

1. Sur le **fork-example-ecommerce*my-app*- CheckoutFunction -*ABCDEF*...** **page, dans la section **Variables d'environnement**, définissez la variable **BUG\$1ENABLED** sur **true**, puis choisissez Enregistrer.**

1. Copiez le code JSON suivant dans un fichier nommé `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. Pour envoyer une demande HTTPS au point de terminaison de votre API, transmettez la charge utile de l'exemple d'événement comme entrée en exécutant une commande `curl`, par exemple :

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

   L'API renvoie la réponse vide suivante, indiquant une exécution réussie :

   ```
   { }
   ```

## Étape 2 : vérifier la corruption de données simulée
<a name="verify-simulated-data-corruption"></a>

1. Connectez-vous à la [console Amazon DynamoDB](https://console.aws.amazon.com/dynamodb/).

1. Dans le panneau de navigation, choisissez **Tables**.

1. Recherchez `serverlessrepo-fork-example` et choisissez `CheckoutTable`.

1. Dans la page des détails de la table, choisissez **Éléments**, puis choisissez l'élément créé.

   Les attributs stockés sont affichés, certains étant marqués comme **CORROMPU \$1**

## Étape 3 : désactiver le problème simulé
<a name="disable-simulated-issue"></a>

1. Connectez-vous à la [AWS Lambda console](https://console.aws.amazon.com/lambda/).

1. Dans le panneau de navigation, choisissez **Fonctions**.

1. Recherchez `serverlessrepo-fork-example` et choisissez `CheckoutFunction`.

1. Sur le **fork-example-ecommerce*my-app*- CheckoutFunction -*ABCDEF*...** **page, dans la section **Variables d'environnement**, définissez la variable **BUG\$1ENABLED** sur **false**, puis choisissez Enregistrer.**

## Étape 4 : activer la rediffusion pour résoudre le problème
<a name="enable-replay-recover-from-simulated-issue"></a>

1. Dans la AWS Lambda console, sur le panneau de navigation, choisissez **Functions**.

1. Recherchez `serverlessrepo-fork-example` et choisissez `ReplayFunction`.

1. Développez la section **Concepteur**, choisissez la vignette **SQS** puis, dans la section **SQS**, choisissez **Activé**.
**Note**  
Il faut compter environ 1 minute pour que le déclencheur source d'événements Amazon SQS soit activé.

1. Choisissez **Enregistrer**.

1. Pour afficher les attributs récupérées, revenez à la console Amazon DynamoDB.

1. Pour désactiver le replay, retournez sur la AWS Lambda console et désactivez le déclencheur de la source d'événements Amazon SQS pour. `ReplayFunction`

# Abonnement d' AWS Event Fork Pipelines à une rubrique Amazon SNS
<a name="sns-subscribe-event-fork-pipelines"></a>

Pour accélérer le développement de vos applications basées sur les événements, vous pouvez abonner des pipelines de gestion d'événements, alimentés par Event Fork AWS Pipelines, à des rubriques Amazon SNS. AWS Event Fork Pipelines est une suite d'[applications imbriquées](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) open source, basée sur le [modèle d'application AWS sans serveur](https://aws.amazon.com/serverless/sam/) (AWS SAM), que vous pouvez déployer directement depuis la [suite AWS Event Fork Pipelines](https://serverlessrepo.aws.amazon.com/applications?query=aws-event-fork-pipelines) (choisissez **Afficher les applications qui créent des rôles IAM ou des politiques de ressources personnalisés**) sur votre compte. AWS Pour de plus amples informations, veuillez consulter [Comment fonctionne AWS Event Fork Pipelines](sns-fork-pipeline-as-subscriber.md#how-sns-fork-works).

Cette section explique comment vous pouvez utiliser le AWS Management Console pour déployer un pipeline, puis abonner AWS Event Fork Pipelines à une rubrique Amazon SNS. Avant de commencer, [créez une rubrique Amazon SNS](sns-create-topic.md).

Pour supprimer les ressources qui constituent un pipeline, recherchez le pipeline sur la page **Applications** de la AWS Lambda console, développez la **section du modèle SAM**, choisissez **CloudFormationStack**, puis choisissez **Other Actions**, **Delete Stack**.

# Déploiement et abonnement du pipeline de stockage et de sauvegarde des événements sur Amazon SNS
<a name="deploy-event-storage-backup-pipeline"></a>


|  | 
| --- |
| Pour l'archivage et l'analyse des événements, Amazon SNS recommande désormais d'utiliser son intégration native avec Amazon Data Firehose. Vous pouvez abonner les flux de diffusion Firehose aux rubriques SNS, ce qui vous permet d'envoyer des notifications aux points de terminaison d'archivage et d'analyse tels que les buckets Amazon Simple Storage Service (Amazon S3), les tables Amazon Redshift, Amazon Service (Service), etc. OpenSearch OpenSearch L'utilisation d'Amazon SNS avec les flux de diffusion Firehose est une solution entièrement gérée et sans code qui ne nécessite pas l'utilisation de fonctions. AWS Lambda Pour de plus amples informations, veuillez consulter [Streams de diffusion de Fanout to Firehose](sns-firehose-as-subscriber.md). | 

Ce didacticiel montre comment déployer le [Pipeline de stockage et de sauvegarde d'événements](sns-fork-pipeline-as-subscriber.md#sns-fork-event-storage-and-backup-pipeline) et l'abonner à une rubrique Amazon SNS. Ce processus transforme automatiquement le AWS SAM modèle associé au pipeline en une CloudFormation pile, puis déploie la pile dans votre Compte AWS. De plus, ce processus crée et configure l'ensemble de ressources qui comprennent le pipeline de stockage et de sauvegarde des événements, y compris ce qui suit :
+ File d’attente Amazon SQS
+ Fonction Lambda
+ Flux de diffusion Firehose
+ Compartiment de sauvegarde Amazon S3

Pour plus d'informations sur la configuration d'un flux avec un compartiment Amazon S3 comme destination, consultez le `[S3DestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_S3DestinationConfiguration.html)` manuel *Amazon Data Firehose API* Reference.

Pour plus d'informations sur la transformation des événements et sur la configuration de la mise en mémoire tampon des événements, de la compression des événements et du chiffrement des événements, consultez la section [Création d'un flux de diffusion](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) dans le manuel *Amazon Data Firehose Developer* Guide.

Pour plus d'informations sur le filtrage des événements, consultez la section [Stratégies de filtre d'abonnement Amazon SNS](sns-subscription-filter-policies.md) dans le présent guide.

1. Connectez-vous à la [AWS Lambda console](https://console.aws.amazon.com/lambda/).

1. Dans le panneau de navigation, choisissez **Fonctions**, puis **Créer une fonction**.

1. Sur la page **Créer une fonction**, procédez de la façon suivante :

   1. Choisissez **Parcourir le référentiel d'applications sans serveur**, **Applications publiques**, **Afficher les applications qui créent des politiques de rôles ou de ressources IAM personnalisées**.

   1. Recherchez `fork-event-storage-backup-pipeline` et choisissez l'application.

1. Sur la page **fork-event-storage-backup-pipeline**, procédez comme suit :

   1. Dans la section **Paramètres de l'application**, entrez un **Nom d'application** (par exemple, `my-app-backup`).
**Note**  
Pour chaque déploiement, le nom de l'application doit être unique. Si vous réutilisez le nom d'une application, le déploiement mettra à jour uniquement la CloudFormation pile précédemment déployée (plutôt que d'en créer une nouvelle).

   1. (Facultatif) Pour **BucketArn**, entrez l'ARN du compartiment Amazon S3 dans lequel les événements entrants sont chargés. Si vous ne saisissez aucune valeur, un nouveau compartiment Amazon S3 est créé dans votre AWS compte.

   1. (Facultatif) Pour **DataTransformationFunctionArn**, entrez l'ARN de la fonction Lambda par laquelle les événements entrants sont transformés. Si vous ne spécifiez pas de valeur, la transformation des données est désactivée.

   1. (Facultatif) Entrez l'un des **LogLevel**paramètres suivants pour l'exécution de la fonction Lambda de votre application :
      + `DEBUG`
      + `ERROR`
      + `INFO` (par défaut)
      + `WARNING`

   1. Pour **TopicArn**, entrez l'ARN de la rubrique Amazon SNS à laquelle cette instance du pipeline de fork doit être abonnée.

   1. (Facultatif) Pour **StreamBufferingIntervalInSeconds**et **StreamBufferingSizeInMBs**, entrez les valeurs pour configurer la mise en mémoire tampon des événements entrants. Si vous n'entrez aucune valeur, 300 secondes et 5 Mo sont utilisés.

   1. (Facultatif) Entrez l'un des **StreamCompressionFormat**paramètres suivants pour compresser les événements entrants :
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (par défaut)
      + `ZIP`

   1. (Facultatif) Pour **StreamPrefix**, entrez le préfixe de chaîne pour nommer les fichiers stockés dans le compartiment de sauvegarde Amazon S3. Si vous ne spécifiez pas de valeur, aucun préfixe n'est utilisé.

   1. (Facultatif) Pour **SubscriptionFilterPolicy**, entrez la politique de filtrage des abonnements Amazon SNS, au format JSON, à utiliser pour filtrer les événements entrants. La politique de filtrage détermine quels événements sont indexés dans l'index des OpenSearch services. Si vous ne spécifiez pas de valeur, aucun filtrage n'est utilisé (tous les événements sont indexés).

   1. (Facultatif) Pour **SubscriptionFilterPolicyScope**, entrez la chaîne `MessageBody` ou `MessageAttributes` pour activer le filtrage des messages basé sur la charge utile ou basé sur les attributs. 

   1. Choisissez **Je comprends que cette application crée des rôles IAM et des politiques de ressources personnalisés, et déploie des applications imbriquées.**, puis choisissez **Déployer**.

Sur la *my-app* page **État du déploiement pour**, Lambda affiche l'état **Votre application est en cours de déploiement**.

Dans la section **Ressources**, CloudFormation commence à créer la pile et affiche le statut **CREATE\$1IN\$1PROGRESS** pour chaque ressource. Lorsque le processus est terminé, CloudFormation affiche le statut **CREATE\$1COMPLETE**.

Une fois le déploiement terminé, Lambda affiche l'état **Votre application a été déployée**.

Les messages publiés sur votre rubrique Amazon SNS sont stockés dans le compartiment de sauvegarde Amazon S3 approvisionné automatiquement par le pipeline Event Storage and Backup.

# Déploiement et abonnement du pipeline d'analyse et de recherche d'événements sur Amazon SNS
<a name="deploy-event-search-analytics-pipeline"></a>


|  | 
| --- |
| Pour l'archivage et l'analyse des événements, Amazon SNS recommande désormais d'utiliser son intégration native avec Amazon Data Firehose. Vous pouvez abonner les flux de diffusion Firehose aux rubriques SNS, ce qui vous permet d'envoyer des notifications aux points de terminaison d'archivage et d'analyse tels que les buckets Amazon Simple Storage Service (Amazon S3), les tables Amazon Redshift, Amazon Service (Service), etc. OpenSearch OpenSearch L'utilisation d'Amazon SNS avec les flux de diffusion Firehose est une solution entièrement gérée et sans code qui ne nécessite pas l'utilisation de fonctions. AWS Lambda Pour de plus amples informations, veuillez consulter [Streams de diffusion de Fanout to Firehose](sns-firehose-as-subscriber.md). | 

Cette page montre comment déployer le [Pipeline de recherche et d'analyse des événements](sns-fork-pipeline-as-subscriber.md#sns-fork-event-search-and-analytics-pipeline) et vous abonner à une rubrique Amazon SNS. Ce processus transforme automatiquement le AWS SAM modèle associé au pipeline en une CloudFormation pile, puis déploie la pile dans votre Compte AWS. De plus, ce processus crée et configure l'ensemble de ressources qui comprennent le pipeline de recherche et d'analyse des événements, y compris ce qui suit :
+ File d’attente Amazon SQS
+ Fonction Lambda
+ Flux de diffusion Firehose
+ Domaine Amazon OpenSearch Service
+ Compartiment de lettres mortes Amazon S3

Pour plus d'informations sur la configuration d'un flux avec un index comme destination, consultez le `[ElasticsearchDestinationConfiguration](https://docs.aws.amazon.com/firehose/latest/APIReference/API_ElasticsearchDestinationConfiguration.html)` manuel *Amazon Data Firehose API* Reference.

Pour plus d'informations sur la transformation des événements et sur la configuration de la mise en mémoire tampon des événements, de la compression des événements et du chiffrement des événements, consultez la section [Création d'un flux de diffusion](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) dans le manuel *Amazon Data Firehose Developer* Guide.

Pour plus d'informations sur le filtrage des événements, consultez la section [Stratégies de filtre d'abonnement Amazon SNS](sns-subscription-filter-policies.md) dans le présent guide.

1. Connectez-vous à la [AWS Lambda console](https://console.aws.amazon.com/lambda/).

1. Dans le panneau de navigation, choisissez **Fonctions**, puis **Créer une fonction**.

1. Sur la page **Créer une fonction**, procédez de la façon suivante :

   1. Choisissez **Parcourir le référentiel d'applications sans serveur**, **Applications publiques**, **Afficher les applications qui créent des politiques de rôles ou de ressources IAM personnalisées**.

   1. Recherchez `fork-event-search-analytics-pipeline` et choisissez l'application.

1. Sur la page **fork-event-search-analytics-pipeline**, procédez comme suit :

   1. Dans la section **Paramètres de l'application**, entrez un **Nom d'application** (par exemple, `my-app-search`).
**Note**  
Pour chaque déploiement, le nom de l'application doit être unique. Si vous réutilisez le nom d'une application, le déploiement mettra à jour uniquement la CloudFormation pile précédemment déployée (plutôt que d'en créer une nouvelle).

   1. (Facultatif) Pour **DataTransformationFunctionArn**, entrez l'ARN de la fonction Lambda utilisée pour transformer les événements entrants. Si vous ne spécifiez pas de valeur, la transformation des données est désactivée.

   1. (Facultatif) Entrez l'un des **LogLevel**paramètres suivants pour l'exécution de la fonction Lambda de votre application :
      + `DEBUG`
      + `ERROR`
      + `INFO` (par défaut)
      + `WARNING`

   1. (Facultatif) Pour **SearchDomainArn**, entrez l'ARN du domaine de OpenSearch service, un cluster qui configure les fonctionnalités de calcul et de stockage nécessaires. Si vous ne spécifiez pas de valeur, un nouveau domaine est créé avec la configuration par défaut.

   1. Pour **TopicArn**, entrez l'ARN de la rubrique Amazon SNS à laquelle cette instance du pipeline de fork doit être abonnée.

   1. Pour **SearchIndexName**, entrez le nom de l'index des OpenSearch services pour la recherche et l'analyse des événements.
**Note**  
Les quotas suivants s'appliquent aux noms d'index :  
Vous ne pouvez pas inclure de majuscules
Vous ne pouvez pas inclure les caractères suivants : `\ / * ? " < > | ` , #`
Vous ne pouvez pas commencer par les caractères suivants : `- + _`
Vous ne pouvez pas utiliser : `. ..`
Vous ne pouvez pas utiliser plus de 80 caractères
Vous ne pouvez pas utiliser plus de 255 octets
Ne peut pas contenir de deux-points (depuis OpenSearch Service 7.0)

   1. (Facultatif) Entrez l'un des **SearchIndexRotationPeriod**paramètres suivants pour la période de rotation de l'indice de OpenSearch service :
      + `NoRotation` (par défaut)
      + `OneDay`
      + `OneHour`
      + `OneMonth`
      + `OneWeek`

      La rotation d'index ajoute un horodatage au nom de l'index, ce qui facilite l'expiration des anciennes données. 

   1. Pour **SearchTypeName**, entrez le nom du type de OpenSearch service pour organiser les événements dans un index.
**Note**  
OpenSearch Les noms des types de service peuvent contenir n'importe quel caractère (sauf les octets nuls), mais ils ne peuvent pas commencer par`_`.
Pour le OpenSearch Service 6.x, il ne peut y avoir qu'un seul type par index. Si vous spécifiez un nouveau type pour un index existant qui possède déjà un autre type, Firehose renvoie une erreur d'exécution.

   1. (Facultatif) Pour **StreamBufferingIntervalInSeconds**et **StreamBufferingSizeInMBs**, entrez les valeurs pour configurer la mise en mémoire tampon des événements entrants. Si vous n'entrez aucune valeur, 300 secondes et 5 Mo sont utilisés.

   1. (Facultatif) Entrez l'un des **StreamCompressionFormat**paramètres suivants pour compresser les événements entrants :
      + `GZIP`
      + `SNAPPY`
      + `UNCOMPRESSED` (par défaut)
      + `ZIP`

   1. (Facultatif) Pour **StreamPrefix**, entrez le préfixe de chaîne pour nommer les fichiers stockés dans le compartiment de lettres mortes Amazon S3. Si vous ne spécifiez pas de valeur, aucun préfixe n'est utilisé.

   1. (Facultatif) Pour **StreamRetryDurationInSecons**, entrez la durée des nouvelles tentatives dans les cas où Firehose ne parvient pas à indexer les événements dans OpenSearch l'index des services. Si vous ne spécifiez pas de valeur, 300 secondes seront utilisées.

   1. (Facultatif) Pour **SubscriptionFilterPolicy**, entrez la politique de filtrage des abonnements Amazon SNS, au format JSON, à utiliser pour filtrer les événements entrants. La politique de filtrage détermine quels événements sont indexés dans l'index des OpenSearch services. Si vous ne spécifiez pas de valeur, aucun filtrage n'est utilisé (tous les événements sont indexés).

   1. Choisissez **Je comprends que cette application crée des rôles IAM et des politiques de ressources personnalisés, et déploie des applications imbriquées.**, puis choisissez **Déployer**.

Sur la *my-app-search* page **État du déploiement pour**, Lambda affiche l'état **Votre application est en cours de déploiement**.

Dans la section **Ressources**, CloudFormation commence à créer la pile et affiche le statut **CREATE\$1IN\$1PROGRESS** pour chaque ressource. Lorsque le processus est terminé, CloudFormation affiche le statut **CREATE\$1COMPLETE**.

Une fois le déploiement terminé, Lambda affiche l'état **Votre application a été déployée**.

Les messages publiés sur votre rubrique Amazon SNS sont indexés automatiquement dans l'index des OpenSearch services fourni par le pipeline Event Search and Analytics. Si le pipeline ne parvient pas à indexer un événement, il le stocke dans un compartiment contenant des lettres mortes Amazon S3.

# Déploiement du pipeline de rediffusion d'événements avec l'intégration d'Amazon SNS
<a name="deploy-event-replay-pipeline"></a>

Cette page montre comment déployer le [Pipeline de relecture des événements](sns-fork-pipeline-as-subscriber.md#sns-fork-event-replay-pipeline) et vous abonner à une rubrique Amazon SNS. Ce processus transforme automatiquement le AWS SAM modèle associé au pipeline en une CloudFormation pile, puis déploie la pile dans votre Compte AWS. De plus, ce processus crée et configure l'ensemble de ressources qui comprennent le pipeline de relecture d'événements, y compris une file d'attente Amazon SQS et une fonction Lambda.

Pour plus d'informations sur le filtrage des événements, consultez la section [Stratégies de filtre d'abonnement Amazon SNS](sns-subscription-filter-policies.md) dans le présent guide.

1. Connectez-vous à la [AWS Lambda console](https://console.aws.amazon.com/lambda/).

1. Dans le panneau de navigation, choisissez **Fonctions**, puis **Créer une fonction**.

1. Sur la page **Créer une fonction**, procédez de la façon suivante :

   1. Choisissez **Parcourir le référentiel d'applications sans serveur**, **Applications publiques**, **Afficher les applications qui créent des politiques de rôles ou de ressources IAM personnalisées**.

   1. Recherchez `fork-event-replay-pipeline` et choisissez l'application.

1. Sur la page **fork-event-replay-pipeline**, procédez de la façon suivante :

   1. Dans la section **Paramètres de l'application**, entrez un **Nom d'application** (par exemple, `my-app-replay`).
**Note**  
Pour chaque déploiement, le nom de l'application doit être unique. Si vous réutilisez le nom d'une application, le déploiement mettra à jour uniquement la CloudFormation pile précédemment déployée (plutôt que d'en créer une nouvelle).

   1. (Facultatif) Entrez l'un des **LogLevel**paramètres suivants pour l'exécution de la fonction Lambda de votre application :
      + `DEBUG`
      + `ERROR`
      + `INFO` (par défaut)
      + `WARNING`

   1. (Facultatif **ReplayQueueRetentionPeriodInSeconds**) Entrez la durée, en secondes, pendant laquelle la file de rediffusion Amazon SQS conserve le message. Si vous ne spécifiez pas de valeur, 1 209 600 secondes (14 jours) est utilisé.

   1. Pour **TopicArn**, entrez l'ARN de la rubrique Amazon SNS à laquelle cette instance du pipeline de fork doit être abonnée.

   1. Pour **DestinationQueueName**, entrez le nom de la file d'attente Amazon SQS à laquelle la fonction Lambda replay transmet les messages.

   1. (Facultatif) Pour **SubscriptionFilterPolicy**, entrez la politique de filtrage des abonnements Amazon SNS, au format JSON, à utiliser pour filtrer les événements entrants. La politique de filtre décide quels événements sont mis en mémoire tampon pour la relecture. Si vous ne spécifiez pas de valeur, aucun filtrage n'est utilisé (tous les événements sont mis en mémoire tampon pour la relecture).

   1. Choisissez **Je comprends que cette application crée des rôles IAM et des politiques de ressources personnalisés, et déploie des applications imbriquées.**, puis choisissez **Déployer**.

Sur la *my-app-replay* page **État du déploiement pour**, Lambda affiche l'état **Votre application est en cours de déploiement**.

Dans la section **Ressources**, CloudFormation commence à créer la pile et affiche le statut **CREATE\$1IN\$1PROGRESS** pour chaque ressource. Lorsque le processus est terminé, CloudFormation affiche le statut **CREATE\$1COMPLETE**.

Une fois le déploiement terminé, Lambda affiche l'état **Votre application a été déployée**.

Les messages publiés dans votre rubrique Amazon SNS sont mis en mémoire tampon dans la file d'attente Amazon SQS mise en service automatiquement par le pipeline de relecture d'événements.

**Note**  
Par défaut, la relecture est désactivée. Pour activer la relecture, accédez à la page de la fonction sur la console Lambda, développez la section **Concepteur**, choisissez la vignette **SQS** puis, dans la section **SQS**, choisissez **Activé**.