Diffusion dans les Event Fork Pipelines AWS - Amazon Simple Notification Service

Diffusion dans les Event Fork Pipelines AWS

Pour l'archivage et l'analyse des événements, Amazon SNS recommande désormais d'utiliser son intégration native avec Amazon Kinesis Data Firehose. Vous pouvez abonner les flux de diffusion Kinesis Data Firehose aux rubriques SNS, ce qui vous permet d'envoyer des notifications aux points de terminaison d'archivage et d'analyse, tels que les compartiments Amazon Simple Storage Service (Amazon S3), les tables Amazon Redshift, Amazon OpenSearch Service (OpenSearch Service), et plus encore. L'utilisation d'Amazon SNS avec les flux de diffusion Kinesis Data Firehose est une solution entièrement gérée et sans code qui ne vous oblige pas à utiliser les fonctions AWS Lambda. Pour en savoir plus, consultez la section Distribution ramifiée vers le flux de diffusion Kinesis Data Firehose.

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 aux rubriques Amazon SNS des pipelines de gestion des événements, à technologie Event Fork Pipelines AWS. AWS Event Fork Pipelines est une suite d'applications imbriquées open source, basée sur le modèle d'application sans serveur AWS (AWS SAM), que vous pouvez déployer directement à partir de la suite AWS Event Fork Pipelines (choisissez Show apps that create custom IAM roles or resource policies (Afficher les appli qui créent des rôles IAM personnalisés ou des politiques de ressource) dans votre compte AWS.

Pour un cas d'utilisation d'Event Fork Pipelines AWS, consultez la section Déploiement et test de l'AWSExemple d'application d'Event Fork Pipelines.

Fonctionnement des Event Fork PipelinesAWS

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

Le diagramme suivant présente une application d'Event Fork Pipelines AWS complétée par trois applications imbriquées. Vous pouvez déployer l'un des pipelines de la suite d'Event Fork Pipelines AWS sur AWS SAR indépendamment, comme le requiert votre architecture.

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

Étant donné que vous placez les trois Event Fork Pipelines AWS avec vos pipelines de traitement des événements standard (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 Event Fork Pipelines AWS dans vos applications existantes.

Pipeline de stockage et de sauvegarde d'événements

Le diagramme suivant montre le Pipeline de stockage et de sauvegarde d'événements. 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 tampon les événements diffusés par la rubrique Amazon SNS, une fonction AWS Lambda qui interroge automatiquement ces événements dans la file d'attente et les transmet dans un flux Amazon Kinesis Data Firehose et un compartiment Amazon S3 qui sauvegarde durablement les événements chargés par le flux.

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

Le diagramme suivant montre le Pipeline de recherche et d'analyse d'événements. 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 tampon les événements diffusés par la rubrique Amazon SNS, une fonction AWS Lambda qui interroge les événements à partir de la file d'attente et les transmet dans un flux Amazon Kinesis Data Firehose, un domaine Amazon OpenSearch Service qui indexe les événements chargés par le flux Firehose et un compartiment Amazon S3 qui stocke les événements lettres mortes qui ne peuvent pas être indexés dans le domaine de recherche.

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 domaine OpenSearch existant dans votre 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

Le diagramme suivant montre le Pipeline de relecture d'événements. 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 tampon les événements diffusés par la rubrique Amazon SNS, une fonction AWS Lambda qui interroge les événements à partir de la file d'attente et les redirige dans votre pipeline de traitement des événements standard, qui est également abonné à votre rubrique.

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 des AWSEvent Fork Pipelines

La AWSsuite d'Event Fork Pipelines (choisissez Afficher les applications qui créent des rôles IAM ou des politiques de ressources personnalisés) est disponible en tant que groupe d'applications publiques dans le AWS Serverless Application Repository, depuis lequel vous pouvez les déployer et les tester manuellement à l'aide de la AWS Lambdaconsole. Pour plus d'informations sur le déploiement des pipelines à l'aide de la console AWS Lambda, consultez la section Abonnement d'Event Fork Pipelines AWS à une rubrique Amazon SNS.

Dans un scénario de production, nous vous recommandons d'intégrer les Event Fork Pipelines AWS dans votre modèle d'application globale AWS SAM. La fonctionnalité d'application imbriquée vous permet de le faire en ajoutant la ressource AWS::Serverless::Application à votre modèle AWS SAM, en référençant l AWS SAR ApplicationId et la SemanticVersion de l'application imbriquée.

Par exemple, vous pouvez utiliser le pipeline de stockage et de sauvegarde d'événements comme application imbriquée en ajoutant l'extrait de code YAML suivant à la section Resources de votre modèle AWS SAM.

Backup: Type: AWS::Serverless::Application Properties: Location: ApplicationId: arn:aws:serverlessrepo:us-east-2:123456789012:applications/fork-event-storage-backup-pipeline SemanticVersion: 1.0.0 Parameters: #The ARN of the Amazon SNS topic whose messages should be backed up to the Amazon S3 bucket. TopicArn: !Ref MySNSTopic

Lorsque vous spécifiez des valeurs de paramètre, vous pouvez utiliser des fonctions intrinsèques AWS CloudFormation pour référencer d'autres ressources dans votre modèle. Par exemple, dans l'extrait YAML ci-dessus, le paramètre TopicArn référence la ressource AWS::SNS::Topic 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 dans le AWS CloudFormationGuide de l'utilisateur.

Note

La page de la console AWS Lambda de votre application AWS SAR comprend le bouton Copier en tant que ressource SAM qui copie le fichier YAML requis pour l'imbrication d'une application SAR AWS dans le presse-papiers.