

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.

# Amazon EventBridge Pipes
<a name="eb-pipes"></a>

Amazon EventBridge Pipes connecte les sources aux cibles. Les tubes sont destinés aux point-to-point intégrations entre les [sources](eb-pipes-event-source.md) et les [cibles](eb-pipes-event-target.md) prises en charge, avec la prise en charge des transformations avancées et de [l'enrichissement](pipes-enrichment.md). Ils réduisent le besoin de connaissances spécialisées et de code d’intégration lors du développement d’architectures pilotées par les événements, ce qui favorise la cohérence dans les applications de votre entreprise. Pour configurer un canal, vous devez choisir la source, ajouter un filtrage facultatif, définir un enrichissement facultatif et choisir la cible pour les données d'événement.

**Note**  
Vous pouvez également router les événements en utilisant des bus d’événements. Les bus d'événements sont parfaitement adaptés au many-to-many routage d'événements entre des services pilotés par des événements. Pour de plus amples informations, veuillez consulter [Bus dédiés aux événements sur Amazon EventBridge](eb-event-bus.md).

## Comment fonctionnent EventBridge les tuyaux
<a name="pipes-how-it-works"></a>

De manière générale, voici comment fonctionne EventBridge Pipes :

1. Vous créez un canal dans votre compte. Cela consiste notamment à :
   + Spécifier l’une des [sources d’événements](eb-pipes-event-source.md) prises en charge dont votre canal recevra les événements.
   + Vous pouvez éventuellement configurer un filtre de sorte que le canal ne traite qu’un sous-ensemble des événements qu’il reçoit de la source.
   + Vous pouvez éventuellement configurer une étape d’enrichissement qui améliore les données d’événements avant de les envoyer à la cible.
   + Spécifier l’une des [cibles](eb-pipes-event-target.md) prises en charge à laquelle votre canal enverra les événements.

1. La source d’événements commence à envoyer les événements au canal, qui les traite avant de les envoyer à la cible.
   + Si vous avez configuré un filtre, le canal évalue les événements et ne les envoie à la cible que s’ils correspondent à ce filtre.

     Seuls les événements qui correspondent au filtre vous sont facturés.
   + Si vous avez configuré un enrichissement, le canal exécute cet enrichissement sur les événements avant de les envoyer à la cible.

     Si les événements se présentent sous forme de lot, l’enrichissement conserve l’ordre des événements dans le lot.

![\[Une source envoie des événements vers un canal, qui filtre et achemine les événements correspondants vers la cible.\]](http://docs.aws.amazon.com/fr_fr/eventbridge/latest/userguide/images/pipes-overview_eventbridge_architectural.svg)


Par exemple, un canal pourrait être utilisé pour créer un système de commerce électronique. Supposez que vous disposez d’une API qui contient des informations sur les clients, telles que les adresses de livraison. 

1. Vous créez alors un canal avec les éléments suivants : 
   + Une file d’attente de messages de réception de commande Amazon SQS faisant office de source d’événements.
   + Une destination EventBridge d'API en tant qu'enrichissement
   + Une machine à AWS Step Functions états comme cible

1. Ensuite, lorsqu’un message de réception de commande Amazon SQS apparaît dans la file d’attente, il est envoyé au canal.

1. Le canal envoie ensuite ces données à l' EventBridge API Destination Enrichment, qui renvoie les informations client relatives à cette commande. 

1. Enfin, le canal envoie les données enrichies à la machine AWS Step Functions d'état, qui traite la commande.

# Concepts EventBridge d'Amazon Pipes
<a name="pipes-concepts"></a>

Voici un aperçu des composants de base de EventBridge Pipes.

## Barre verticale
<a name="pipes-concepts-pipe"></a>

Un canal route les événements d’une source unique vers une cible unique. Il offre également la possibilité d’effectuer un filtrage sur des événements spécifiques et d’enrichir leurs données avant d’être envoyées à la cible.

![\[Un canal achemine les événements filtrés vers la cible spécifiée, avec des étapes d'enrichissement facultatives.\]](http://docs.aws.amazon.com/fr_fr/eventbridge/latest/userguide/images/pipes-overview-detailed_eventbridge_architectural.svg)


## Source
<a name="pipes-sources"></a>

EventBridge Pipes reçoit des données d'événements provenant de diverses sources, applique des filtres facultatifs et un enrichissement à ces données, puis les envoie à une cible. Si une source impose un ordre aux événements envoyés aux canaux, cet ordre est maintenu tout au long du processus menant à la cible. 

Pour plus d'informations sur les sources, consultez [Sources d'Amazon EventBridge Pipes](eb-pipes-event-source.md).

## Filtres
<a name="pipes-filtering"></a>

Un canal peut filtrer les événements d’une source déterminée pour ne traiter qu’un sous-ensemble de ces événements. Pour configurer le filtrage d’un canal, vous devez définir le modèle d’événement que le canal utilisera pour déterminer les événements à envoyer à la cible. 

Seuls les événements qui correspondent au filtre vous sont facturés.

Pour de plus amples informations, veuillez consulter [Filtrage des événements dans Amazon EventBridge Pipes](eb-pipes-event-filtering.md).

## Enrichissement
<a name="pipes-enrichment-overview"></a>

Avec l'étape d'enrichissement de EventBridge Pipes, vous pouvez améliorer les données de la source avant de les envoyer à la cible. Par exemple, vous pouvez recevoir des événements de type *Ticket créé* qui n’incluent pas l’ensemble des données de ticket. Grâce à l’enrichissement, vous pouvez demander à une fonction Lambda d’appeler l’API `get-ticket` pour obtenir les détails complets du ticket. Le canal peut ensuite envoyer ces informations à une [cible](eb-pipes-event-target.md).

Pour plus d’informations sur l’enrichissement des données d’événements, consultez [Enrichissement des événements dans Amazon EventBridge Pipes](pipes-enrichment.md).

## Cible
<a name="pipes-targets"></a>

Une fois que les données de l'événement ont été filtrées et enrichies, vous pouvez les envoyer à une cible spécifique, telle qu'un flux Amazon Kinesis ou un groupe de CloudWatch log Amazon. Pour obtenir la liste des cibles disponibles, consultez [Objectifs d'Amazon EventBridge Pipes](eb-pipes-event-target.md).

Vous pouvez transformer les données après avoir été améliorées et avant d’avoir été envoyées à la cible par le canal. Pour de plus amples informations, veuillez consulter [Transformation EventBridge des entrées Amazon Pipes](eb-pipes-input-transformation.md).

Plusieurs canaux, chacun avec une source différente, peuvent envoyer les événements à la même cible.

Vous pouvez également utiliser des canaux et des bus d’événements conjointement de façon à envoyer les événements à plusieurs cibles. Un cas d’utilisation courant est la création d’un canal avec un bus d’événements en tant que cible ; le canal envoie les événements au bus d’événements, qui les transmet ensuite à plusieurs cibles. Par exemple, vous pouvez créer un canal dont la source est un flux DynamoDB, ainsi qu’un bus d’événements faisant office de cible. Le canal reçoit les événements du flux DynamoDB et les envoie au bus d’événements, qui les envoie ensuite à plusieurs cibles en fonction des règles que vous avez spécifiées pour le bus d’événements.

# Autorisations relatives aux sources d'événements pour Amazon EventBridge Pipes
<a name="eb-pipes-permissions"></a>

Lorsque vous configurez un canal, vous pouvez utiliser un rôle d'exécution existant ou vous en faire EventBridge créer un avec les autorisations nécessaires. Les autorisations requises par EventBridge Pipes varient en fonction du type de source et sont répertoriées ci-dessous. Si vous configurez votre propre rôle d’exécution, vous devez ajouter ces autorisations vous-même.

**Note**  
Si vous n'êtes pas sûr des autorisations précises requises pour accéder à la source, utilisez la console EventBridge Pipes pour créer un nouveau rôle, puis inspectez les actions répertoriées dans la politique.

**Topics**
+ [Autorisations du rôle d’exécution DynamoDB](#pipes-perms-ddb)
+ [Autorisations du rôle d’exécution Kinesis](#pipes-perms-ak)
+ [Autorisations du rôle d’exécution Amazon MQ](#pipes-perms-mq)
+ [Autorisations du rôle d’exécution Amazon MSK](#pipes-perms-msk)
+ [Autorisations de rôle d’exécution Apache Kafka autogéré](#pipes-perms-kafka)
+ [Autorisations du rôle d’exécution Amazon SQS](#pipes-perms-sqs)
+ [Enrichissement et autorisations cibles](#pipes-perms-enhance-target)

## Autorisations du rôle d’exécution DynamoDB
<a name="pipes-perms-ddb"></a>

Pour DynamoDB Streams, EventBridge Pipes a besoin des autorisations suivantes pour gérer les ressources liées à votre flux de données DynamoDB.
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_ListStreams.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_ListStreams.html)

Pour envoyer des enregistrements de lots ayant échoué à la file d’attente de lettres mortes, le rôle d’exécution de votre canal doit disposer de l’autorisation suivante :
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)

## Autorisations du rôle d’exécution Kinesis
<a name="pipes-perms-ak"></a>

Pour Kinesis, EventBridge Pipes nécessite les autorisations suivantes pour gérer les ressources liées à votre flux de données Kinesis.
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStream.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStreamSummary.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_DescribeStreamSummary.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetRecords.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_GetShardIterator.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListShards.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListShards.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreams.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_ListStreams.html)
+ [https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html)

Pour envoyer des enregistrements de lots ayant échoué à la file d’attente de lettres mortes, le rôle d’exécution de votre canal doit disposer de l’autorisation suivante :
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)

## Autorisations du rôle d’exécution Amazon MQ
<a name="pipes-perms-mq"></a>

Pour Amazon MQ, EventBridge Pipes a besoin des autorisations suivantes pour gérer les ressources liées à votre courtier de messages Amazon MQ.
+ [https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-http-methods](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/brokers-broker-id.html#brokers-broker-id-http-methods)
+ [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)

## Autorisations du rôle d’exécution Amazon MSK
<a name="pipes-perms-msk"></a>

Pour Amazon MSK, EventBridge les autorisations suivantes sont requises pour gérer les ressources liées à votre rubrique Amazon MSK.

**Note**  
Si vous utilisez l’authentification basée sur les rôles IAM, votre rôle d’exécution aura besoin des autorisations répertoriées dans [Authentification basée sur les rôles IAM](eb-pipes-msk.md#pipes-msk-permissions-iam-policy) en plus de celles répertoriées ci-dessous.
+ [https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters-clusterarn.html#v2-clusters-clusterarnget](https://docs.aws.amazon.com/MSK/2.0/APIReference/v2-clusters-clusterarn.html#v2-clusters-clusterarnget)
+ [https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-bootstrap-brokers.html#clusters-clusterarn-bootstrap-brokersget](https://docs.aws.amazon.com/msk/1.0/apireference/clusters-clusterarn-bootstrap-brokers.html#clusters-clusterarn-bootstrap-brokersget)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)

## Autorisations de rôle d’exécution Apache Kafka autogéré
<a name="pipes-perms-kafka"></a>

Pour Apache Kafka autogéré, EventBridge les autorisations suivantes sont nécessaires pour gérer les ressources liées à votre flux Apache Kafka autogéré.

### Autorisations requises
<a name="pipes-perms-kafka-req"></a>

Pour créer et stocker des journaux dans un groupe de CloudWatch journaux dans Amazon Logs, votre canal doit disposer des autorisations suivantes dans son rôle d'exécution :
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogGroup.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_CreateLogStream.html)
+ [https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html](https://docs.aws.amazon.com/AmazonCloudWatchLogs/latest/APIReference/API_PutLogEvents.html)

### Autorisations facultatives
<a name="pipes-perms-kafka-optional"></a>

Votre canal peut également nécessiter ces autorisations pour :
+ Décrivez votre secret Secrets Manager.
+ Accédez à votre AWS Key Management Service (AWS KMS) clé gérée par le client.
+ Accédez à votre Amazon VPC.

### Secrets Manager et AWS KMS autorisations
<a name="pipes-perms-kafka-sm-kms"></a>

Selon le type de contrôle d’accès que vous configurez pour vos agents Apache Kafka, votre canal peut avoir besoin d’une autorisation pour accéder à votre secret Secrets Manager ou pour déchiffrer votre clé gérée par le client AWS KMS . Afin d’accéder à ces ressources, le rôle d’exécution de votre fonction doit disposer des autorisations suivantes :
+ [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html)
+ [https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)

### Autorisations VPC
<a name="pipes-perms-kafka-vpc"></a>

Si seuls des utilisateurs au sein d’un VPC peuvent accéder à votre cluster Apache Kafka autogéré, votre canal doit être autorisé à accéder à vos ressources Amazon VPC. Ces ressources incluent les sous-réseaux, groupes de sécurité et interfaces réseau de votre VPC. Afin d’accéder à ces ressources, le rôle d’exécution de votre canal doit disposer des autorisations suivantes :
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeNetworkInterfaces.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeVpcs.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeleteNetworkInterface.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)
+ [https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSecurityGroups.html)

## Autorisations du rôle d’exécution Amazon SQS
<a name="pipes-perms-sqs"></a>

Pour Amazon SQS, EventBridge les autorisations suivantes sont requises pour gérer les ressources liées à votre file d'attente Amazon SQS. 
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html)
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html)

## Enrichissement et autorisations cibles
<a name="pipes-perms-enhance-target"></a>

Pour effectuer des appels d'API sur les ressources que vous possédez, EventBridge Pipes a besoin des autorisations appropriées. EventBridge Pipes utilise le rôle IAM que vous spécifiez sur le canal pour l'enrichissement et cible les appels à l'aide du principal IAM. `pipes.amazonaws.com` 

# Création d'un EventBridge canal Amazon
<a name="eb-pipes-create"></a>

EventBridge Pipes vous permet de créer des point-to-point intégrations entre les sources et les cibles, notamment des transformations et des enrichissements d'événements avancés. 

Pour créer un EventBridge canal, vous devez suivre les étapes suivantes : 

1. [Spécification d’une source](#pipes-configure-source)

1. [Configuration du filtrage des événements (facultatif)](#pipes-configure-filtering)

1. [Définition de l’enrichissement des événements (facultatif)](#pipes-define-enrichment)

1. [Configuration d’une cible](#pipes-configure-target)

1. [Configuration des paramètres de canal](#pipes-configure-pipe-settings)

Pour configurer rapidement un tube d'échantillonnage, voir[Pour commencer : créer un EventBridge canal Amazon](pipes-get-started.md). Cette rubrique permet CloudFormation de déployer un canal et ses ressources associées, et vous présente une vue d'ensemble des fonctionnalités d'un canal.

Pour plus d'informations sur la création d'un canal à l'aide de la AWS CLI, voir [create-pipe](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/pipes/create-pipe.html) dans le manuel de référence des *commandes de la AWS CLI*.

## Spécification d’une source
<a name="pipes-configure-source"></a>

Pour commencer, spécifiez la source à partir de laquelle vous souhaitez que le canal reçoive les événements.

**Pour spécifier une source de canal à l’aide de la console**

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Dans le volet de navigation, choisissez **Pipelines**.

1. Choisissez **Créer un pipeline**.

1. Entrez un nom pour le canal.

1. (Facultatif) Ajoutez une description du canal.

1. Dans l’onglet **Construire un pipeline**, pour **Source**, choisissez le type de source que vous souhaitez spécifier pour ce canal, puis configurez la source.

   Les propriétés de configuration varient en fonction du type de source que vous choisissez :

------
#### [ Confluent ]

**Pour configurer un flux Confluent Cloud en tant que source, à l'aide de la console**

   1. Pour **Source**, choisissez **Confluent Cloud**.

   1. Pour **Serveurs Bootstrap**, entrez les adresses des paires `host:port` de vos agents.

   1. Pour **Nom de la rubrique**, entrez le nom de la rubrique à partir de laquelle le canal effectuera la lecture.

   1. (Facultatif) Pour **VPC**, choisissez un VPC. Ensuite, pour **Sous-réseaux VPC**, choisissez les sous-réseaux souhaités. Pour **Groupes de sécurité VPC**, choisissez les groupes de sécurité.

   1. Pour **Authentification (facultatif)**, activez **l'option Utiliser l'authentification** et procédez comme suit :

      1. Pour **Méthode d’authentification**, choisissez le type d’authentification.

      1. Pour **Clé secrète**, choisissez la clé secrète.

      Pour plus d'informations, consultez la section [Authentification auprès des ressources Confluent Cloud](https://docs.confluent.io/cloud/current/access-management/authenticate/overview.html) dans la documentation Confluent.

   1. (Facultatif) Pour **Paramètre supplémentaire - facultatif**, procédez comme suit :

      1. Pour **Position de départ**, choisissez l’une des valeurs suivantes :
         + **Dernier** : commencez à lire le flux par l’enregistrement le plus récent de la partition.
         + **Trim horizon** : commencez à lire le flux par le dernier enregistrement non découpé de la partition. Il s’agit de l’enregistrement le plus ancien de la partition.

      1. Pour **Taille du lot - facultatif**, entrez un nombre maximal d’enregistrements par lot. La valeur par défaut est 100.

      1. Pour **Fenêtre du lot - facultatif**, entrez un nombre maximal de secondes pour collecter les enregistrements avant de continuer.

------
#### [ DynamoDB ]

   1. Pour **Source**, choisissez **DynamoDB**.

   1. Pour **Flux DynamoDB**, choisissez le flux que vous souhaitez utiliser en tant que source.

   1. Pour **Position de départ**, choisissez l’une des valeurs suivantes :
      + **Dernier** : commencez à lire le flux par l’enregistrement le plus récent de la partition.
      + **Trim horizon** : commencez à lire le flux par le dernier enregistrement non découpé de la partition. Il s’agit de l’enregistrement le plus ancien de la partition.

   1. (Facultatif) Pour **Paramètre supplémentaire - facultatif**, procédez comme suit :

      1. Pour **Taille du lot - facultatif**, entrez un nombre maximal d’enregistrements par lot. La valeur par défaut est 10.

      1. Pour **Fenêtre du lot - facultatif**, entrez un nombre maximal de secondes pour collecter les enregistrements avant de continuer.

      1. Pour **Lots simultanés par partition - facultatif**, entrez le nombre de lots issus de la même partition qui peuvent être lus simultanément.

      1. Pour **En cas de défaillance partielle d’un lot**, choisissez ce qui suit :
         + **AUTOMATIC\$1BISECT** : divisez chaque lot en deux et effectuez une nouvelle tentative avec chaque moitié jusqu’à ce que tous les enregistrements soient traités ou qu’il reste un message d’échec dans le lot.
**Note**  
Si vous ne choisissez pas **AUTOMATIC\$1BISECT**, vous pouvez renvoyer certains enregistrements ayant échoué et uniquement ceux ayant fait l’objet d’une nouvelle tentative.

------
#### [ Kinesis ]

**Pour configurer une source Kinesis à l’aide de la console**

   1. Pour **Source**, choisissez **Kinesis**.

   1. Pour **Flux Kinesis**, choisissez le flux que vous souhaitez utiliser en tant que source.

   1. Pour **Position de départ**, choisissez l’une des valeurs suivantes :
      + **Dernier** : commencez à lire le flux par l’enregistrement le plus récent de la partition.
      + **Trim horizon** : commencez à lire le flux par le dernier enregistrement non découpé de la partition. Il s’agit de l’enregistrement le plus ancien de la partition.
      + **À l’horodatage** : commencez à lire le flux à partir d’une heure spécifiée. Sous **Horodatage**, entrez une date et une heure au format YYYY/MM/DD hh:mm:ss.

   1. (Facultatif) Pour **Paramètre supplémentaire - facultatif**, procédez comme suit :

      1. Pour **Taille du lot - facultatif**, entrez un nombre maximal d’enregistrements par lot. La valeur par défaut est 10.

      1. (Facultatif) Pour **Fenêtre du lot - facultatif**, entrez un nombre maximal de secondes pour collecter les enregistrements avant de continuer.

      1. Pour **Lots simultanés par partition - facultatif**, entrez le nombre de lots issus de la même partition qui peuvent être lus simultanément.

      1. Pour **En cas de défaillance partielle d’un lot**, choisissez ce qui suit :
         + **AUTOMATIC\$1BISECT** : divisez chaque lot en deux et effectuez une nouvelle tentative avec chaque moitié jusqu’à ce que tous les enregistrements soient traités ou qu’il reste un message d’échec dans le lot.
**Note**  
Si vous ne choisissez pas **AUTOMATIC\$1BISECT**, vous pouvez renvoyer certains enregistrements ayant échoué et uniquement ceux ayant fait l’objet d’une nouvelle tentative.

------
#### [ Amazon MQ ]

**Pour configurer une source Amazon MQ à l’aide de la console**

   1. Pour **Source**, choisissez **Amazon MQ**.

   1. Pour **Courtier Amazon MQ**, choisissez le flux que vous souhaitez utiliser en tant que source.

   1. Pour **Nom de la file**, entrez le nom de la file d’attente à partir de laquelle le canal effectuera la lecture.

   1. Pour **Méthode d’authentification**, choisissez **BASIC\$1AUTH**.

   1. Pour **Clé secrète**, choisissez la clé secrète.

   1. (Facultatif) Pour **Paramètre supplémentaire - facultatif**, procédez comme suit :

      1. Pour **Taille du lot - facultatif**, entrez un nombre maximal de messages par lot. La valeur par défaut est 100.

      1. Pour **Fenêtre du lot - facultatif**, entrez un nombre maximal de secondes pour collecter les enregistrements avant de continuer.

------
#### [ Amazon MSK ]

**Pour configurer une source Amazon MSK à l’aide de la console**

   1. Pour **Source**, choisissez **Amazon MSK**.

   1. Pour **Cluster Amazon MSK**, choisissez le cluster à utiliser.

   1. Pour **Nom de la rubrique**, entrez le nom de la rubrique à partir de laquelle le canal effectuera la lecture.

   1. (Facultatif) Pour **ID du groupe de consommateurs - facultatif**, entrez l’identifiant du groupe de consommateurs que le canal doit rejoindre.

   1. (Facultatif) Pour **Authentification - facultatif**, activez **Utiliser l’authentification** et procédez comme suit :

      1. Pour **Méthode d’authentification**, choisissez le type souhaité.

      1. Pour **Clé secrète**, choisissez la clé secrète.

   1. (Facultatif) Pour **Paramètre supplémentaire - facultatif**, procédez comme suit :

      1. Pour **Taille du lot - facultatif**, entrez un nombre maximal d’enregistrements par lot. La valeur par défaut est 100.

      1. Pour **Fenêtre du lot - facultatif**, entrez un nombre maximal de secondes pour collecter les enregistrements avant de continuer.

      1. Pour **Position de départ**, choisissez l’une des valeurs suivantes :
         + **Dernier** : commencez à lire la rubrique par l’enregistrement le plus récent de la partition.
         + **Trim horizon** : commencez à lire la rubrique par le dernier enregistrement non découpé de la partition. Il s’agit de l’enregistrement le plus ancien de la partition.
**Note**  
Pour Apache Kafka, **Trim horizon** est identique à **Premier**.

------
#### [ Self managed Apache Kafka ]

**Pour configurer une source Apache Kafka autogérée à l’aide de la console**

   1. Pour **Source**, choisissez **Apache Kafka autogéré**.

   1. Pour **Serveurs Bootstrap**, entrez les adresses des paires `host:port` de vos agents.

   1. Pour **Nom de la rubrique**, entrez le nom de la rubrique à partir de laquelle le canal effectuera la lecture.

   1. (Facultatif) Pour **VPC**, choisissez un VPC. Ensuite, pour **Sous-réseaux VPC**, choisissez les sous-réseaux souhaités. Pour **Groupes de sécurité VPC**, choisissez les groupes de sécurité.

   1. (Facultatif) Pour **Authentification - facultatif**, activez **Utiliser l’authentification** et procédez comme suit :

      1. Pour **Méthode d’authentification**, choisissez le type d’authentification.

      1. Pour **Clé secrète**, choisissez la clé secrète.

   1. (Facultatif) Pour **Paramètre supplémentaire - facultatif**, procédez comme suit :

      1. Pour **Position de départ**, choisissez l’une des valeurs suivantes :
         + **Dernier** : commencez à lire le flux par l’enregistrement le plus récent de la partition.
         + **Trim horizon** : commencez à lire le flux par le dernier enregistrement non découpé de la partition. Il s’agit de l’enregistrement le plus ancien de la partition.

      1. Pour **Taille du lot - facultatif**, entrez un nombre maximal d’enregistrements par lot. La valeur par défaut est 100.

      1. Pour **Fenêtre du lot - facultatif**, entrez un nombre maximal de secondes pour collecter les enregistrements avant de continuer.

------
#### [ Amazon SQS ]

**Pour configurer une source Amazon SQS à l’aide de la console**

   1. Pour **Source**, choisissez **SQS**.

   1. Pour **File d’attente SQS**, choisissez la file d’attente que vous souhaitez utiliser.

   1. (Facultatif) Pour **Paramètre supplémentaire - facultatif**, procédez comme suit :

      1. Pour **Taille du lot - facultatif**, entrez un nombre maximal d’enregistrements par lot. La valeur par défaut est 100.

      1. Pour **Fenêtre du lot - facultatif**, entrez un nombre maximal de secondes pour collecter les enregistrements avant de continuer.

------

## Configuration du filtrage des événements (facultatif)
<a name="pipes-configure-filtering"></a>

Vous pouvez ajouter un filtrage à votre canal afin d’envoyer uniquement un sous-ensemble d’événements de votre source à la cible.

**Pour configurer le filtrage à l’aide de la console**

1. Choisissez **Filtrage**.

1. Sous **Exemple d’événement - facultatif**, vous verrez un exemple d’événement que vous pouvez utiliser pour créer votre modèle d’événement, ou vous pouvez entrer votre propre événement en choisissant **Saisir mon propre**.

1. Sous **Modèle d’événement**, entrez le modèle d’événement que vous souhaitez utiliser pour filtrer les événements. Pour plus d'informations sur la création de filtres, consultez[Filtrage des événements dans Amazon EventBridge Pipes](eb-pipes-event-filtering.md).

   L’exemple de modèle d’événement suivant envoie uniquement des événements dont le champ **City** contient la valeur **Seattle**.

   ```
   {
     "data": {
       "City": ["Seattle"]
     }
   }
   ```

À présent que les événements sont filtrés, vous pouvez ajouter un enrichissement facultatif et une cible pour le canal.

## Définition de l’enrichissement des événements (facultatif)
<a name="pipes-define-enrichment"></a>

Vous pouvez envoyer les données d'événement pour les enrichir à une fonction Lambda, à une machine à AWS Step Functions états, à Amazon API Gateway ou à une destination d'API.

**Pour sélectionner l’enrichissement**

1. Choisissez **Enrichissement**.

1. Sous **Informations**, pour **Service**, sélectionnez le service et les paramètres associés que vous souhaitez utiliser pour l’enrichissement.

Vous pouvez également transformer les données avant de les envoyer pour les améliorer.

**(Facultatif) Pour définir le transformateur d’entrée**

1. Choisissez **Transformateur d’entrée d’enrichissement - facultatif**.

1. Pour **Sample events/Event Payload**, choisissez le type d'événement d'exemple.

1. Pour **Transformateur**, entrez la syntaxe du transformateur, par exemple `"Event happened at <$.detail.field>."`, où `<$.detail.field>` est une référence à un champ issu de l’exemple d’événement. Vous pouvez également double-cliquer sur un champ dans l’exemple d’événement pour l’ajouter au transformateur.

1. Pour **Sortie**, vérifiez que la sortie ressemble à ce que vous souhaitez.

À présent que les données ont été filtrées et améliorées, vous devez définir une cible à laquelle envoyer les données d’événement.

## Configuration d’une cible
<a name="pipes-configure-target"></a>

**Pour configurer une cible**

1. Choisissez **Target**.

1. Sous **Informations**, pour **Service cible**, choisissez la cible. Les champs qui s’affichent varient en fonction de la cible que vous choisissez. Entrez les informations spécifiques à ce type de cible, selon vos besoins.

Vous pouvez également transformer les données avant de les envoyer à la cible.

**(Facultatif) Pour définir le transformateur d’entrée**

1. Choisissez **Transformateur d’entrée cible - facultatif**.

1. Pour **Sample events/Event Payload**, choisissez le type d'événement d'exemple.

1. Pour **Transformateur**, entrez la syntaxe du transformateur, par exemple `"Event happened at <$.detail.field>."`, où `<$.detail.field>` est une référence à un champ issu de l’exemple d’événement. Vous pouvez également double-cliquer sur un champ dans l’exemple d’événement pour l’ajouter au transformateur.

1. Pour **Sortie**, vérifiez que la sortie ressemble à ce que vous souhaitez.

À présent que le canal est configuré, assurez-vous que ses paramètres sont correctement configurés.

## Configuration des paramètres de canal
<a name="pipes-configure-pipe-settings"></a>

Un canal est actif par défaut, mais vous pouvez le désactiver. Vous pouvez également spécifier les autorisations du canal, configurer la journalisation du canal et ajouter des balises.

**Pour configurer les paramètres de canal**

1. Cliquez sur l’onglet **Réglages des pipelines**.

1. Par défaut, les canaux récemment créés sont actifs dès leur création. Si vous souhaitez créer un canal inactif, sous **Activation**, pour **Activer le pipeline**, désactivez **Actif**.

1. Sous **Autorisations**, pour **Rôle d’exécution**, effectuez l’une des opérations suivantes :

   1. Pour EventBridge créer un nouveau rôle d'exécution pour ce canal, choisissez **Create a new role for this specific resource.** Sous **Nom du rôle**, vous pouvez éventuellement modifier le nom du rôle.

   1. Pour utiliser un rôle d’exécution existant, choisissez **Utiliser un rôle existant**. Sous **Nom du rôle**, choisissez le rôle.

1. (Facultatif) Si vous avez spécifié un DynamoDB flux Kinesis ou comme source de canal, vous pouvez configurer une politique de nouvelles tentatives et une file d'attente de lettres mortes (DLQ).

   Pour **Stratégie de nouvelles tentatives et file d’attente de lettres mortes - facultatif**, procédez comme suit :

   Sous **Politique de nouvelles tentatives**, procédez comme suit :

   1. Si vous souhaitez activer les politiques de nouvelles tentatives, activez **Réessayer**. Par défaut, aucune politique de nouvelle tentative n’est activée pour les canaux récemment créés. 

   1. Pour **Maximum age of event** (Âge maximal de l'événement), saisissez une valeur comprise entre une minute (00:01) et 24 heures (24:00).

   1. Pour **Retry attempts (Nouvelles tentatives)**, saisissez un nombre compris entre 0 et 185.

   1. Si vous souhaitez utiliser une file d’attente de lettres mortes (DLQ), activez **File d’attente de lettres mortes**, choisissez la méthode de votre choix et choisissez la file d’attente ou la rubrique que vous souhaitez utiliser. Par défaut, les canaux récemment créés n’utilisent pas de DLQ. 

1. Choisissez la forme KMS key EventBridge à utiliser lors du chiffrement des données du canal.

   Pour plus d'informations sur EventBridge les utilisations KMS keys, voir[Chiffrement au repos](eb-data-protection.md#eb-encryption-at-rest).
   + Choisissez **Utiliser Clé détenue par AWS** pour chiffrer EventBridge les données à l'aide d'un Clé détenue par AWS.

     Il s' Clé détenue par AWS agit d'un compte KMS key qui EventBridge possède et gère pour une utilisation dans plusieurs AWS comptes. En général, à moins que vous ne soyez obligé d'auditer ou de contrôler la clé de chiffrement qui protège vos ressources, une Clé détenue par AWS est un bon choix. 

     Il s’agit de l’option par défaut.
   + Choisissez **Utiliser clé gérée par le client** pour chiffrer les données EventBridge à l'aide de celles clé gérée par le client que vous spécifiez ou créez.

     Clés gérées par le client se trouvent KMS keys dans le AWS compte que vous créez, détenez et gérez. Vous en avez le plein contrôle KMS keys.

     1. Spécifiez un existant clé gérée par le client ou choisissez **Créer un nouveau KMS key**.

       EventBridge affiche le statut de la clé et tous les alias de clé associés à la clé spécifiée clé gérée par le client.

1. (Facultatif) Sous **Journaux - facultatif**, vous pouvez configurer la manière dont EventBridge Pipes envoie les informations de journalisation aux services pris en charge, notamment comment configurer ces journaux. 

   Pour plus d’informations sur la journalisation des enregistrements de journaux, consultez [Enregistrement des performances d'Amazon EventBridge Pipes](eb-pipes-logs.md).

   CloudWatch les journaux sont sélectionnés comme destination des journaux par défaut, tout comme le niveau du `ERROR` journal. Ainsi, par défaut, EventBridge Pipes crée un nouveau groupe de CloudWatch journaux auquel il envoie des enregistrements contenant le `ERROR` niveau de détail.

   Pour que EventBridge Pipes envoie des enregistrements de journal vers l'une des destinations de journal prises en charge, procédez comme suit : 

   1. Sous **Journaux - facultatif**, choisissez les destinations vers lesquelles vous souhaitez que les enregistrements de journaux soient livrés.

   1. Pour **Niveau du journal**, choisissez le niveau d'information EventBridge à inclure dans les enregistrements du journal. Le niveau de journalisation `ERROR` est sélectionné par défaut.

      Pour de plus amples informations, veuillez consulter [Spécification du niveau de journalisation des EventBridge tuyaux](eb-pipes-logs.md#eb-pipes-logs-level).

   1. Sélectionnez **Inclure les données d'exécution** si vous souhaitez inclure les informations relatives EventBridge à la charge utile des événements ainsi que les informations relatives aux demandes de service et aux réponses dans les enregistrements du journal.

      Pour de plus amples informations, veuillez consulter [Inclure les données d'exécution dans les logs de EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).

   1. Configurez chaque destination de journal que vous avez sélectionnée :

      Pour CloudWatch Logs les journaux, sous **CloudWatch journaux**, procédez comme suit :
      + Pour le **groupe de CloudWatch journaux**, choisissez de EventBridge créer un nouveau groupe de journaux, de sélectionner un groupe de journaux existant ou de spécifier l'ARN d'un groupe de journaux existant.
      + Pour les nouveaux groupes de journaux, modifiez le nom du groupe de journaux comme vous le souhaitez.

      CloudWatch logs est sélectionné par défaut.

      Pour les journaux de Firehose flux, sous **journal de Firehose flux**, sélectionnez le Firehose flux. 

      Pour Amazon S3 les journaux, sous **S3 logs**, procédez comme suit :
      + Entrez le nom du compartiment à utiliser comme destination du journal.
      + Entrez l'ID de AWS compte du propriétaire du compartiment.
      + Entrez le texte de préfixe que vous souhaitez utiliser lorsque EventBridge crée des objets S3.

        Pour plus d’informations, consultez [Organisation des objets à l’aide de préfixes](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html) dans le *Guide de l’utilisateur Amazon Simple Storage Service *.
      + Choisissez la manière dont vous EventBridge souhaitez formater les enregistrements du journal S3 :
        + `json` : JSON 
        + `plain` : texte brut
        + `w3c` : [Format de fichier de journalisation étendu W3C](https://www.w3.org/TR/WD-logfile)

1. (Facultatif) Sous **Balises - facultatif**, choisissez **Ajouter une nouvelle balise** et entrez une ou plusieurs balises pour la règle. Pour de plus amples informations, veuillez consulter [Marquage des ressources sur Amazon EventBridge](eb-tagging.md).

1. Choisissez **Créer un pipeline**.

## Validation des paramètres de configuration
<a name="pipes-validation"></a>

Après la création d'un canal, EventBridge valide les paramètres de configuration suivants :
+ **Rôle IAM** : étant donné que la source d'un canal ne peut pas être modifiée une fois le canal créé, EventBridge vérifie que le rôle IAM fourni peut accéder à la source.
**Note**  
EventBridge n'effectue pas la même validation pour les enrichissements ou les cibles car ils peuvent être mis à jour après la création du canal.
+ Traitement par **lots** : EventBridge vérifie que la taille du lot de la source ne dépasse pas la taille de lot maximale de la cible. Si tel est le cas, EventBridge nécessite une taille de lot inférieure. En outre, si une cible ne prend pas en charge le traitement par lots, vous ne pouvez pas configurer le traitement par lots EventBridge pour la source.
+ **Enrichissements** : EventBridge confirme que la taille de lot pour les enrichissements d'API Gateway et de destination d'API est de 1, car seules les tailles de lot de 1 sont prises en charge.

# Démarrage ou arrêt d'un EventBridge canal Amazon
<a name="pipes-start-stop"></a>

Par défaut, un canal est à l’état `Running` et traite les événements lors de sa création.

Si vous créez un canal avec des sources Amazon SQS, Kinesis ou DynamoDB, sa création peut généralement prendre une minute ou deux.

Si vous créez un canal avec des sources Amazon MSK, Apache Kafka autogéré ou Amazon MQ, sa création peut prendre jusqu’à dix minutes.

**Pour créer un canal sans traiter les événements à l’aide de la console**
+ Désactivez le paramètre **Activer le pipeline**.

**Pour créer un canal sans traiter les événements par programmation**
+ Dans votre appel d’API, définissez `DesiredState` sur `Stopped`.

**Pour démarrer ou arrêter un canal existant à l’aide de la console**
+ Dans l’onglet **Réglages des pipelines**, sous **Activation**, pour **Activer le pipeline**, activez ou désactivez **Actif**.

**Pour démarrer ou arrêter un canal existant par programmation**
+ Dans votre appel d’API, définissez le paramètre `DesiredState` sur `RUNNING` ou `STOPPED`.

Il peut y avoir un délai entre le moment où un canal est à l’état `STOPPED` et celui où il ne traite plus les événements : 
+ Pour Amazon SQS et les sources de flux, ce délai est généralement inférieur à deux minutes.
+ Pour les sources Amazon MQ et Apache Kafka, ce délai peut atteindre quinze minutes.

# Sources d'Amazon EventBridge Pipes
<a name="eb-pipes-event-source"></a>

EventBridge Pipes reçoit des données d'événements provenant de diverses sources, applique des filtres et des enrichissements facultatifs à ces données et les envoie vers une destination.

Si une source impose un ordre aux événements envoyés à EventBridge Pipes, cet ordre est maintenu tout au long du processus jusqu'à la destination.

Les AWS services suivants peuvent être spécifiés comme sources pour EventBridge Pipes :
+ [Flux Amazon DynamoDB](eb-pipes-dynamodb.md)
+ [Flux Amazon Kinesis](eb-pipes-kinesis.md)
+ [Agent Amazon MQ](eb-pipes-mq.md)
+ [Flux Amazon MSK](eb-pipes-msk.md)
+ [File d’attente Amazon SQS](eb-pipes-sqs.md)
+ [Stream Apache Kafka](eb-pipes-kafka.md)

  Lorsque vous spécifiez un flux Apache Kafka comme source de canal, vous pouvez spécifier un flux Apache Kafka que vous gérez vous-même ou un flux géré par un fournisseur tiers tel que :
  + [https://www.confluent.io/](https://www.confluent.io/)
  + [https://www.cloudkarafka.com/](https://www.cloudkarafka.com/)
  + [https://redpanda.com/](https://redpanda.com/)

# Stream Amazon DynamoDB en tant que source pour Pipes EventBridge
<a name="eb-pipes-dynamodb"></a>

Vous pouvez utiliser EventBridge Pipes pour recevoir des enregistrements dans un flux DynamoDB. Ensuite, vous pouvez éventuellement filtrer ou améliorer ces enregistrements avant de les envoyer à une cible pour être traités. Il existe des paramètres spécifiques à Amazon DynamoDB Streams que vous pouvez sélectionner lors de la configuration du canal. EventBridge Pipes conserve l'ordre des enregistrements du flux de données lors de l'envoi de ces données vers la destination.

**Important**  
La désactivation d’un flux DynamoDB qui est la source d’un canal rend ce canal inutilisable, même si vous réactivez le flux par la suite. Cela se produit pour les raisons suivantes :  
Vous ne pouvez pas arrêter, démarrer ou mettre à jour un canal dont la source est désactivée.
Vous ne pouvez pas mettre à jour un canal avec une nouvelle source après sa création. Lorsque vous réactivez un flux DynamoDB, un nouvel Amazon Resource Name (ARN) lui est affecté et il n’est plus associé à votre canal.
Si vous réactivez le flux DynamoDB, vous devrez créer un nouveau canal à l’aide du nouvel ARN du flux.

**Exemple d’évènement**

L’exemple d’événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d’événements, ou pour définir la transformation d’entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d’informations sur les champs que vous pouvez filtrer, consultez [Filtrage des événements dans Amazon EventBridge Pipes](eb-pipes-event-filtering.md).

```
[
  {
    "eventID": "1",
    "eventVersion": "1.0",
    "dynamodb": {
      "Keys": {
        "Id": {
          "N": "101"
        }
      },
      "NewImage": {
        "Message": {
          "S": "New item!"
        },
        "Id": {
          "N": "101"
        }
      },
      "StreamViewType": "NEW_AND_OLD_IMAGES",
      "SequenceNumber": "111",
      "SizeBytes": 26
    },
    "awsRegion": "us-west-2",
    "eventName": "INSERT",
    "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable",
    "eventSource": "aws:dynamodb"
  },
  {
    "eventID": "2",
    "eventVersion": "1.0",
    "dynamodb": {
      "OldImage": {
        "Message": {
          "S": "New item!"
        },
        "Id": {
          "N": "101"
        }
      },
      "SequenceNumber": "222",
      "Keys": {
        "Id": {
          "N": "101"
        }
      },
      "SizeBytes": 59,
      "NewImage": {
        "Message": {
          "S": "This item has changed"
        },
        "Id": {
          "N": "101"
        }
      },
      "StreamViewType": "NEW_AND_OLD_IMAGES"
    },
    "awsRegion": "us-west-2",
    "eventName": "MODIFY",
    "eventSourceARN": "arn:aws:dynamodb:us-east-1:111122223333:table/EventSourceTable",
    "eventSource": "aws:dynamodb"
  }
]
```

## Flux d’interrogation et de mise en lots
<a name="pipes-ddb-polling"></a>

EventBridge interroge les partitions de votre flux DynamoDB à la recherche d'enregistrements à une fréquence de base de quatre fois par seconde. Lorsque les enregistrements sont disponibles, EventBridge traite l'événement et attend le résultat. Si le traitement aboutit, EventBridge reprend le sondage jusqu'à ce qu'il reçoive d'autres enregistrements.

Par défaut, EventBridge invoque votre canal dès que les enregistrements sont disponibles. Si le lot qui EventBridge lit à partir de la source ne contient qu'un seul enregistrement, un seul événement est traité. Pour éviter de traiter un petit nombre d’enregistrements, vous pouvez indiquer au canal de les mettre en mémoire tampon pendant cinq minutes maximum en configurant une fenêtre de traitement par lots. Avant de traiter les événements, EventBridge continue de lire les enregistrements depuis la source jusqu'à ce que le lot soit complet, que la fenêtre de traitement par lots expire ou que le lot atteigne la limite de charge utile de 6 Mo.

**Important**  
Le canal transmettra les enregistrements de flux de DynamoDB à Amazon SQS au moins une fois. Pour garantir qu'aucun enregistrement ne soit supprimé, nous vous suggérons de définir une politique de nouvelles tentatives avec un âge maximum inférieur à la période de rétention du flux DynamoDB. En général, les flux DynamoDB conservent les événements pendant 24 heures.

Vous pouvez également augmenter la simultanéité en traitant plusieurs lots de chaque partition en parallèle. EventBridge peut traiter simultanément jusqu'à 10 lots par partition. Si vous augmentez le nombre de lots simultanés par partition, vous garantissez EventBridge toujours le traitement dans l'ordre au niveau de la clé de partition.

Configurez le paramètre `ParallelizationFactor` pour traiter une partition d’un flux de données Kinesis ou DynamoDB avec plusieurs exécutions de canal simultanément. Vous pouvez spécifier le nombre de lots simultanés qui partent d'une EventBridge partition via un facteur de parallélisation compris entre 1 (par défaut) et 10. Par exemple, lorsque vous définissez cette valeur `ParallelizationFactor` sur 2, vous pouvez avoir 200 exécutions de EventBridge Pipe simultanées au maximum pour traiter 100 fragments de données Kinesis. Cela permet d’augmenter le débit de traitement quand le volume de données est volatil et que la valeur du paramètre `IteratorAge` est élevée. Notez que le facteur de parallélisation ne fonctionnera pas si vous utilisez l’agrégation Kinesis. 

## Position de départ du sondage et du stream
<a name="pipes-ddb-stream-start-position"></a>

Sachez que l’interrogation des sources de flux lors de la création et des mises à jour du canal est finalement cohérente.
+ Lors de la création du canal, le démarrage de l’interrogation des événements depuis le flux peut prendre plusieurs minutes.
+ Lors des mises à jour du canal dans la configuration d’interrogation des sources, l’arrêt et le redémarrage de l’interrogation des événements depuis le flux peuvent prendre plusieurs minutes. 

Cela signifie que si vous spécifiez `LATEST` comme position de départ du flux, le canal peut manquer des événements envoyés lors de la création ou des mises à jour du canal. Pour vous assurer de ne manquer aucun événement, définissez la position de départ du flux sur `TRIM_HORIZON`.

## Signalement des échecs d’articles par lots
<a name="pipes-ddb-batch-failures"></a>

Lorsqu'il EventBridge consomme et traite des données en streaming à partir d'une source, il vérifie par défaut le numéro de séquence le plus élevé d'un lot, mais uniquement lorsque le lot est totalement réussi. Pour éviter de retraiter les messages dont le traitement a réussi dans un lot ayant échoué, vous pouvez configurer votre enrichissement ou votre cible de sorte à renvoyer un objet en indiquant les messages qui ont réussi et ceux qui ont échoué. C’est ce que l’on appelle une réponse partielle de lot.

Pour de plus amples informations, veuillez consulter [Défaillance partielle d’un lot](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure).

### Conditions de réussite et d’échec
<a name="pipes-ddb-batch-failures-conditions"></a>

Si vous renvoyez l'un des éléments suivants, EventBridge considère un lot comme une réussite totale :
+ Une liste `batchItemFailure` vide
+ Une liste `batchItemFailure` nulle
+ Une `EventResponse` vide
+ Une `EventResponse` nulle

Si vous renvoyez l'un des éléments suivants, EventBridge considère un lot comme un échec total :
+ Une chaîne `itemIdentifier` vide
+ Un `itemIdentifier` nul
+ Un `itemIdentifier` avec un nom de clé incorrect

EventBridge les nouvelles tentatives échouent en fonction de votre stratégie de réessai.

# Amazon Kinesis Stream en tant que source pour Pipes EventBridge
<a name="eb-pipes-kinesis"></a>

Vous pouvez utiliser EventBridge Pipes pour recevoir des enregistrements dans un flux de données Kinesis. Ensuite, vous pouvez éventuellement filtrer ou améliorer ces enregistrements avant de les envoyer à l’une des destinations disponibles pour être traités. Vous pouvez choisir des paramètres spécifiques à Kinesis lors de la configuration du canal. EventBridge Pipes conserve l'ordre des enregistrements du flux de données lors de l'envoi de ces données vers la destination.

Un flux de données Kinesis est un ensemble de [partitions](https://docs.aws.amazon.com/kinesis/latest/dev/key-concepts.html#shard). Chaque partition contient une séquence d’enregistrements de données. Un **consommateur** est une application qui traite les données d’un flux de données Kinesis. [Vous pouvez mapper un EventBridge canal à un consommateur à débit partagé (itérateur standard) ou à un consommateur à débit dédié doté d'un ventilateur amélioré.](https://docs.aws.amazon.com/kinesis/latest/dev/enhanced-consumers.html)

Pour les itérateurs standard, EventBridge utilise le protocole HTTP pour interroger chaque partition de votre flux Kinesis à la recherche d'enregistrements. Le canal partage le débit de lecture avec d’autres consommateurs de la partition.

Pour réduire la latence et optimiser le débit en lecture, vous pouvez créer un consommateur de flux de données avec diffusion améliorée. Les consommateurs de flux obtiennent une connexion dédiée pour chaque partition qui n’a pas d’impact sur les autres applications lisant sur le flux. Le débit dédié peut aider si vous avez de nombreuses applications lisant les mêmes données, ou si vous retraitez un flux avec de gros enregistrements. Kinesis transmet les enregistrements via HTTP/2. EventBridge Pour en savoir plus sur les flux de données Kinesis, consultez [Lecture de données à partir d’Amazon Kinesis Data Streams](https://docs.aws.amazon.com/kinesis/latest/dev/building-consumers.html).

**Exemple d’évènement**

L’exemple d’événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d’événements, ou pour définir la transformation d’entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d’informations sur les champs que vous pouvez filtrer, consultez [Filtrage des événements dans Amazon EventBridge Pipes](eb-pipes-event-filtering.md).

```
[
  {
    "kinesisSchemaVersion": "1.0",
    "partitionKey": "1",
    "sequenceNumber": "49590338271490256608559692538361571095921575989136588898",
    "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
    "approximateArrivalTimestamp": 1545084650.987,
    "eventSource": "aws:kinesis",
    "eventVersion": "1.0",
    "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898",
    "eventName": "aws:kinesis:record",
    "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role",
    "awsRegion": "us-east-2",
    "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream"
  },
  {
    "kinesisSchemaVersion": "1.0",
    "partitionKey": "1",
    "sequenceNumber": "49590338271490256608559692540925702759324208523137515618",
    "data": "VGhpcyBpcyBvbmx5IGEgdGVzdC4=",
    "approximateArrivalTimestamp": 1545084711.166,
    "eventSource": "aws:kinesis",
    "eventVersion": "1.0",
    "eventID": "shardId-000000000006:49590338271490256608559692540925702759324208523137515618",
    "eventName": "aws:kinesis:record",
    "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role",
    "awsRegion": "us-east-2",
    "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream"
  }
]
```

## Flux d’interrogation et de mise en lots
<a name="pipes-ak-polling"></a>

EventBridge interroge les partitions de votre flux Kinesis à la recherche d'enregistrements à une fréquence de base d'une fois par seconde. Lorsque les enregistrements sont disponibles, EventBridge traite l'événement et attend le résultat. Si le traitement aboutit, EventBridge reprend le sondage jusqu'à ce qu'il reçoive d'autres enregistrements.

Par défaut, EventBridge invoque votre canal dès que les enregistrements sont disponibles. Si le lot qui EventBridge lit à partir de la source ne contient qu'un seul enregistrement, un seul événement est traité. Pour éviter de traiter un petit nombre d’enregistrements, vous pouvez indiquer au canal de les mettre en mémoire tampon pendant cinq minutes maximum en configurant une fenêtre de traitement par lots. Avant de traiter les événements, EventBridge continue de lire les enregistrements depuis la source jusqu'à ce que le lot soit complet, que la fenêtre de traitement par lots expire ou que le lot atteigne la limite de charge utile de 6 Mo.

Vous pouvez également augmenter la simultanéité en traitant plusieurs lots de chaque partition en parallèle. EventBridge peut traiter simultanément jusqu'à 10 lots par partition. Si vous augmentez le nombre de lots simultanés par partition, vous garantissez EventBridge toujours le traitement dans l'ordre au niveau de la clé de partition.

Configurez le paramètre `ParallelizationFactor` pour traiter une partition d’un flux de données Kinesis ou DynamoDB avec plusieurs exécutions de canal simultanément. Vous pouvez spécifier le nombre de lots simultanés qui partent d'une EventBridge partition via un facteur de parallélisation compris entre 1 (par défaut) et 10. Par exemple, lorsque vous définissez cette valeur `ParallelizationFactor` sur 2, vous pouvez avoir 200 exécutions de EventBridge Pipe simultanées au maximum pour traiter 100 fragments de données Kinesis. Cela permet d’augmenter le débit de traitement quand le volume de données est volatil et que la valeur du paramètre `IteratorAge` est élevée. Notez que le facteur de parallélisation ne fonctionnera pas si vous utilisez l’agrégation Kinesis. 

## Position de départ du sondage et du stream
<a name="pipes-ak-stream-start-position"></a>

Sachez que l’interrogation des sources de flux lors de la création et des mises à jour du canal est finalement cohérente.
+ Lors de la création du canal, le démarrage de l’interrogation des événements depuis le flux peut prendre plusieurs minutes.
+ Lors des mises à jour du canal dans la configuration d’interrogation des sources, l’arrêt et le redémarrage de l’interrogation des événements depuis le flux peuvent prendre plusieurs minutes. 

Cela signifie que si vous spécifiez `LATEST` comme position de départ du flux, le canal peut manquer des événements envoyés lors de la création ou des mises à jour du canal. Pour vous assurer de ne manquer aucun événement, spécifiez la position de départ du flux comme `TRIM_HORIZON` ou `AT_TIMESTAMP`.

## Signalement des échecs d’articles par lots
<a name="pipes-ak-batch-failures"></a>

Lorsqu'il EventBridge consomme et traite des données en streaming à partir d'une source, il vérifie par défaut le numéro de séquence le plus élevé d'un lot, mais uniquement lorsque le lot est totalement réussi. Pour éviter de retraiter les messages dont le traitement a réussi dans un lot ayant échoué, vous pouvez configurer votre enrichissement ou votre cible de sorte à renvoyer un objet en indiquant les messages qui ont réussi et ceux qui ont échoué. C’est ce que l’on appelle une réponse partielle de lot.

Pour de plus amples informations, veuillez consulter [Défaillance partielle d’un lot](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure).

### Conditions de réussite et d’échec
<a name="pipes-ak-batch-failures-conditions"></a>

Si vous renvoyez l'un des éléments suivants, EventBridge considère un lot comme une réussite totale :
+ Une liste `batchItemFailure` vide
+ Une liste `batchItemFailure` nulle
+ Une `EventResponse` vide
+ Une `EventResponse` nulle

Si vous renvoyez l'un des éléments suivants, EventBridge considère un lot comme un échec total :
+ Une chaîne `itemIdentifier` vide
+ Un `itemIdentifier` nul
+ Un `itemIdentifier` avec un nom de clé incorrect

EventBridge les nouvelles tentatives échouent en fonction de votre stratégie de relance.

# Le courtier de messages Amazon MQ en tant que source dans Pipes EventBridge
<a name="eb-pipes-mq"></a>

Vous pouvez utiliser EventBridge Pipes pour recevoir des enregistrements d'un courtier de messages Amazon MQ. Ensuite, vous pouvez éventuellement filtrer ou améliorer ces enregistrements avant de les envoyer à l’une des destinations disponibles pour être traités. Il existe des paramètres spécifiques à Amazon MQ que vous pouvez choisir lors de la configuration d'un canal. EventBridge Pipes conserve l'ordre des enregistrements provenant du courtier de messages lors de l'envoi de ces données à la destination.

Amazon MQ est un service d’agent de messages géré pour [Apache ActiveMQ](https://activemq.apache.org/) et [RabbitMQ](https://www.rabbitmq.com/). Un agent de messages permet à des applications et composants logiciels de communiquer à l’aide de différents langages de programmation, systèmes d’exploitation et autres protocoles de messagerie formels avec des rubriques ou des files d’attente comme destinations d’événements.

Amazon MQ peut également gérer des instances Amazon Elastic Compute Cloud (Amazon EC2) en votre nom en installant des agents ActiveMQ ou RabbitMQ. Une fois qu’un agent est installé, il fournit différentes topologies de réseau et d’autres besoins en infrastructure à vos instances.

La source Amazon MQ est soumise aux restrictions de configuration suivantes :
+ **Compte croisé** : EventBridge ne prend pas en charge le traitement multicompte. Vous ne pouvez pas l'utiliser EventBridge pour traiter les enregistrements d'un courtier de messages Amazon MQ associé à un autre AWS compte.
+ **Authentification** [— Pour ActiveMQ, seul ActiveMQ est pris en charge. SimpleAuthenticationPlugin](https://activemq.apache.org/security#simple-authentication-plugin) Pour RabbitMQ, seule l’authentification [PLAIN](https://www.rabbitmq.com/access-control.html#mechanisms) est prise en charge. Pour gérer les informations d’identification, utilisez AWS Secrets Manager. Pour plus d’informations sur l’authentification ActiveMQ, consultez [Intégration des agents ActiveMQ avec LDAP](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-authentication-authorization.html) dans le Guide du développeur Amazon MQ.
+ **Quota de connexion** : les agents ont un nombre maximal de connexions autorisées pour chaque protocole de niveau filaire. Ce quota est basé sur le type d’instance de l’agent. Pour plus d’informations, consultez la section [Agents](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-limits.html#broker-limits) de **Quotas dans Amazon MQ** dans le Guide du développeur Amazon MQ.
+ **Connectivité** : vous pouvez créer des agents dans un cloud privé virtuel (VPC) public ou privé. Pour le mode privé VPCs, votre canal doit accéder au VPC pour recevoir des messages.
+ **Destinations d’événements** : seules les destinations de file d’attente sont prises en charge. Toutefois, vous pouvez utiliser une rubrique virtuelle, qui se comporte comme une rubrique en interne et comme une file d’attente en externe, lorsqu’elle interagit avec vos canaux. Pour plus d’informations, consultez [Destinations virtuelles](https://activemq.apache.org/virtual-destinations) (langue française non garantie) sur le site web d’Apache ActiveMQ et [Hôtes virtuels](https://www.rabbitmq.com/vhosts.html) (langue française non garantie) sur le site web de RabbitMQ.
+ **Topologie réseau** : pour ActiveMQ, une seule instance ou un seul agent en veille est pris en charge pour un canal. Pour RabbitMQ, un seul agent d’instance ou un seul déploiement de cluster est pris en charge pour chaque canal. Les agents à instance unique nécessitent un point de terminaison de basculement. Pour plus d’informations sur ces modes de déploiement de l’agent, consultez [Architecture d’agent ActiveMQ](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-architecture.html) et [Architecture d’agent RabbitMQ](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/rabbitmq-broker-architecture.html) dans le Guide du développeur Amazon MQ.
+ **Protocoles** : les protocoles pris en charge dépendent de l’intégration Amazon MQ que vous utilisez.
  + Pour les intégrations ActiveMQ EventBridge , utilise OpenWire/Java le protocole Message Service (JMS) pour consommer les messages. La consommation de messages n'est prise en charge par aucun autre protocole. EventBridge prend uniquement en charge les `BytesMessage` opérations `TextMessage` et dans le cadre du protocole JMS. Pour plus d'informations sur le OpenWire protocole, consultez [OpenWire](https://activemq.apache.org/openwire.html)le site Web d'Apache ActiveMQ.
  + Pour les intégrations RabbitMQ, EventBridge utilise le protocole AMQP 0-9-1 pour consommer les messages. Aucun autre protocole n’est pris en charge pour la consommation de messages. Pour plus d’informations sur l’implémentation par RabbitMQ du protocole AMQP 0-9-1, consultez [Guide de référence complet AMQP 0-9-1](https://www.rabbitmq.com/amqp-0-9-1-reference.html) sur le site web de RabbitMQ.

EventBridge prend automatiquement en charge les dernières versions d'ActiveMQ et de RabbitMQ prises en charge par Amazon MQ. Pour connaître les dernières versions prises en charge, consultez [Notes de mise à jour Amazon MQ](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-release-notes.html) dans le Guide du développeur Amazon MQ.

**Note**  
Par défaut, Amazon MQ comporte une fenêtre de maintenance hebdomadaire pour les agents. Pendant cette période, les agents ne sont pas disponibles. Pour les courtiers qui ne sont pas en veille, ils EventBridge ne traiteront pas les messages avant la fin de la fenêtre.

**Exemples d’événements**

L’exemple d’événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d’événements, ou pour définir la transformation d’entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d’informations sur les champs que vous pouvez filtrer, consultez [Filtrage des événements dans Amazon EventBridge Pipes](eb-pipes-event-filtering.md).

**ActiveMQ**

```
[
  {
    "eventSource": "aws:amq",
    "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8",    
    "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.govskope.ca-37557-1234520418293-4:1:1:1:1",
    "messageType": "jms/text-message",
    "data": "QUJDOkFBQUE=",
    "connectionId": "myJMSCoID",
    "redelivered": false,
    "destination": {
      "physicalname": "testQueue"
    },
    "timestamp": 1598827811958,
    "brokerInTime": 1598827811958,
    "brokerOutTime": 1598827811959
  },
  {
    "eventSource": "aws:amq",
    "eventSourceArn": "arn:aws:mq:us-west-2:112556298976:broker:test:b-9bcfa592-423a-4942-879d-eb284b418fc8",        
    "messageID": "ID:b-9bcfa592-423a-4942-879d-eb284b418fc8-1---mq---us-west-2.amazonaws.com.rproxy.govskope.ca-37557-1234520418293-4:1:1:1:1",
    "messageType": "jms/bytes-message",
    "data": "3DTOOW7crj51prgVLQaGQ82S48k=",
    "connectionId": "myJMSCoID1",
    "persistent": false,
    "destination": {
      "physicalname": "testQueue"
    },
    "timestamp": 1598827811958,
    "brokerInTime": 1598827811958,
    "brokerOutTime": 1598827811959
  }
]
```

**RabbitMQ**

```
[
  {
    "eventSource": "aws:rmq",
    "eventSourceArn": "arn:aws:mq:us-west-2:111122223333:broker:pizzaBroker:b-9bcfa592-423a-4942-879d-eb284b418fc8",
    "eventSourceKey": "pizzaQueue::/",
    "basicProperties": {
      "contentType": "text/plain",
      "contentEncoding": null,
      "headers": {
        "header1": {
          "bytes": [
            118,
            97,
            108,
            117,
            101,
            49
          ]
        },
        "header2": {
          "bytes": [
            118,
            97,
            108,
            117,
            101,
            50
          ]
        },
        "numberInHeader": 10
      },
      "deliveryMode": 1,
      "priority": 34,
      "correlationId": null,
      "replyTo": null,
      "expiration": "60000",
      "messageId": null,
      "timestamp": "Jan 1, 1970, 12:33:41 AM",
      "type": null,
      "userId": "AIDACKCEVSQ6C2EXAMPLE",
      "appId": null,
      "clusterId": null,
      "bodySize": 80
    },
    "redelivered": false,
    "data": "eyJ0aW1lb3V0IjowLCJkYXRhIjoiQ1pybWYwR3c4T3Y0YnFMUXhENEUifQ=="
  }
]
```

## Groupe de consommateurs
<a name="pipes-mq-consumer-group"></a>

Pour interagir avec Amazon MQ, EventBridge créez un groupe de consommateurs capable de lire les avis de vos courtiers Amazon MQ. Le groupe de consommateurs est créé avec le même ID que l’UUID du canal.

Pour les sources Amazon MQ, regroupe EventBridge les enregistrements et les envoie à votre fonction en une seule charge utile. Pour contrôler le comportement, vous pouvez configurer la fenêtre de traitement par lots et la taille du lot. EventBridge extrait les messages jusqu'à ce que l'une des situations suivantes se produise :
+ Les enregistrements traités atteignent la taille de charge utile maximale de 6 Mo.
+ La fenêtre de traitement par lots expire.
+ Le nombre d’enregistrements atteint la taille totale du lot. 

EventBridge convertit votre lot en une seule charge utile, puis invoque votre fonction. Les messages ne sont ni conservés ni désérialisés. Au lieu de cela, le groupe de consommateurs les récupère sous la forme d’un objet BLOB d’octets. Ensuite, il les code en base64 dans une charge utile JSON. Si le canal renvoie une erreur pour l'un des messages d'un lot, EventBridge réessaie l'ensemble du lot de messages jusqu'à ce que le traitement aboutisse ou que les messages expirent.

## Configuration réseau
<a name="pipes-mq-vpc-config"></a>

Par défaut, les agents Amazon MQ sont créés avec l'indicateur `PubliclyAccessible` défini sur false. Ce n’est que lorsque `PubliclyAccessible` est défini sur true que l’agent reçoit une adresse IP publique. Pour un accès complet avec votre canal, votre agent doit utiliser un point de terminaison public ou fournir l’accès au VPC.

Si votre courtier Amazon MQ n'est pas accessible au public, EventBridge il doit avoir accès aux ressources Amazon Virtual Private Cloud (Amazon VPC) associées à votre courtier.
+ Pour accéder au VPC de vos courtiers Amazon MQ EventBridge , vous pouvez utiliser un accès Internet sortant pour les sous-réseaux de votre source. Pour les sous-réseaux publics, il doit s’agir d’une [passerelle NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) gérée. Pour les sous-réseaux privés, il peut s’agir d’une passerelle NAT ou de votre propre NAT. Assurez-vous que le NAT possède une adresse IP publique et peut se connecter à Internet.
+ EventBridge Pipes prend également en charge la diffusion d'événements [AWS PrivateLink](https://aws.amazon.com/privatelink/), ce qui vous permet d'envoyer des événements depuis une source d'événements située dans un Amazon Virtual Private Cloud (Amazon VPC) vers une cible Pipes sans passer par l'Internet public. Vous pouvez utiliser Pipes pour interroger depuis Amazon Managed Streaming pour Apache Kafka (Amazon MSK), Apache Kafka autogéré et des Amazon MQ sources résidant dans un sous-réseau privé sans avoir à déployer une passerelle Internet, à configurer des règles de pare-feu ou à configurer des serveurs proxy.

  *Pour configurer un point de terminaison VPC, consultez la section [Créer un point de terminaison VPC dans le guide de l'utilisateur](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).AWS PrivateLink * Pour le nom du service, sélectionnez`com.amazonaws.region.pipes-data`.

Vous devez configurer vos groupes de sécurité Amazon VPC avec les règles suivantes (au minimum) :
+ Règles de trafic entrant : autorisez tout le trafic sur le port du courtier Amazon MQ pour les groupes de sécurité spécifiés pour votre source.
+ Règles sortantes : autorisent tout le trafic sur le port 443 pour toutes les destinations. Autorisez tout le trafic sur le port du courtier Amazon MQ pour les groupes de sécurité spécifiés pour votre source.

  Les ports Broker incluent :
  + 9092 pour le texte en clair
  + 9094 pour TLS
  + 9096 pour SASL
  + 9098 pour IAM

**Note**  
Votre configuration Amazon VPC est découvrable via l’[API Amazon MQ](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/resources.html). Vous n’avez pas besoin de la définir pendant la configuration.

# Rubrique Amazon Managed Streaming pour Apache Kafka en tant que source dans Pipes EventBridge
<a name="eb-pipes-msk"></a>

Vous pouvez utiliser EventBridge Pipes pour recevoir des enregistrements provenant d'un sujet [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html), y compris du type de cluster [Amazon MSK](https://aws.amazon.com/msk/features/msk-serverless/) Serverless. Vous pouvez éventuellement filtrer ou améliorer ces enregistrements avant de les envoyer à l’une des destinations disponibles pour être traités. Il existe des paramètres spécifiques à Amazon MSK que vous pouvez choisir lors de la configuration d'un canal. EventBridge Pipes conserve l'ordre des enregistrements provenant du courtier de messages lors de l'envoi de ces données à la destination.

Amazon MSK est un service entièrement géré qui vous permet de créer et d’exécuter des applications qui utilisent Apache Kafka pour traiter les données en streaming. Amazon MSK simplifie la configuration, la mise à l’échelle et la gestion des clusters exécutant Apache Kafka. Avec Amazon MSK, vous pouvez configurer votre application pour plusieurs zones de disponibilité et pour des raisons de sécurité avec Gestion des identités et des accès AWS (IAM). Amazon MSK prend en charge plusieurs versions open source de Kafka.

Amazon MSK en tant que source fonctionne de la même manière qu'Amazon Simple Queue Service (Amazon SQS) ou Amazon Kinesis. EventBridgeinterroge en interne les nouveaux messages provenant de la source, puis invoque la cible de manière synchrone. EventBridge lit les messages par lots et les fournit à votre fonction sous forme de charge utile d'événements. La taille de lot maximale est configurable. (par défaut, 100 messages).

Pour les sources basées sur Apache Kafka, EventBridge prend en charge les paramètres de contrôle du traitement, tels que les fenêtres de traitement par lots et la taille des lots.

EventBridge lit les messages de manière séquentielle pour chaque partition. Après EventBridge avoir traité chaque lot, il valide les décalages des messages de ce lot. Si la cible du canal renvoie une erreur pour l'un des messages d'un lot, EventBridge réessaie l'ensemble du lot de messages jusqu'à ce que le traitement aboutisse ou que les messages expirent.

EventBridge envoie le lot de messages lorsqu'il invoque la cible. La charge utile d’un événement contient un tableau de messages. Chaque élément de tableau contient des détails de la rubrique Amazon MSK et un identifiant de partition, ainsi qu’un horodatage et un message codé en base 64.

**Exemples d’événements**

L’exemple d’événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d’événements, ou pour définir la transformation d’entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d’informations sur les champs que vous pouvez filtrer, consultez [Filtrage des événements dans Amazon EventBridge Pipes](eb-pipes-event-filtering.md).

```
[
  {
    "eventSource": "aws:kafka",
    "eventSourceArn": "arn:aws:kafka:sa-east-1:123456789012:cluster/vpc-2priv-2pub/751d2973-a626-431c-9d4e-d7975eb44dd7-2",    
    "eventSourceKey": "mytopic-0",
    "topic": "mytopic",
    "partition": "0",
    "offset": 15,
    "timestamp": 1545084650987,
    "timestampType": "CREATE_TIME",
    "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", 
    "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
    "headers": [
      {
        "headerKey": [
          104,
          101,
          97,
          100,
          101,
          114,
          86,
          97,
          108,
          117,
          101
        ]
      }
    ]
  }
]
```

## Position de départ du sondage et du stream
<a name="pipes-msk-stream-start-position"></a>

Sachez que l’interrogation des sources de flux lors de la création et des mises à jour du canal est finalement cohérente.
+ Lors de la création du canal, le démarrage de l’interrogation des événements depuis le flux peut prendre plusieurs minutes.
+ Lors des mises à jour du canal dans la configuration d’interrogation des sources, l’arrêt et le redémarrage de l’interrogation des événements depuis le flux peuvent prendre plusieurs minutes. 

Cela signifie que si vous spécifiez `LATEST` comme position de départ du flux, le canal peut manquer des événements envoyés lors de la création ou des mises à jour du canal. Pour vous assurer de ne manquer aucun événement, définissez la position de départ du flux sur `TRIM_HORIZON`.

## Authentification du cluster MSK
<a name="pipes-msk-cluster-permissions"></a>

EventBridge a besoin d'une autorisation pour accéder au cluster Amazon MSK, récupérer des enregistrements et effectuer d'autres tâches. Amazon MSK prend en charge plusieurs options de contrôle de l’accès client au cluster MSK. Pour plus d’informations sur la méthode d’authentification utilisée, consultez [Comment EventBridge choisir un courtier Bootstrap](#pipes-msk-bootstrap-brokers).

**Topics**
+ [Accès non authentifié](#pipes-msk-permissions-none)
+ [Authentification SASL/SCRAM](#pipes-msk-permissions-add-secret)
+ [Authentification basée sur les rôles IAM](#pipes-msk-permissions-iam-policy)
+ [Authentification TLS mutuelle](#pipes-msk-permissions-mTLS)
+ [Configuration du secret mTLS](#smaa-auth-secret)
+ [Comment EventBridge choisir un courtier Bootstrap](#pipes-msk-bootstrap-brokers)

### Accès non authentifié
<a name="pipes-msk-permissions-none"></a>

Nous recommandons d’utiliser uniquement un accès non authentifié pour le développement. L’accès non authentifié ne fonctionnera que si l’authentification basée sur les rôles IAM est désactivée pour le cluster.

### Authentification SASL/SCRAM
<a name="pipes-msk-permissions-add-secret"></a>

Amazon MSK prend en charge l'authentification simple et le mécanisme d'authentification par réponse aux Layer/Salted défis de sécurité (SASL/SCRAM) avec le chiffrement TLS (Transport Layer Security). EventBridge Pour vous connecter au cluster, vous devez enregistrer les informations d'authentification (informations de connexion) dans un AWS Secrets Manager secret.

Pour plus d’informations sur l’utilisation de Secrets Manager, consultez [Authentification par nom d’utilisateur et mot de passe avec AWS Secrets Manager](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html) dans le *Guide du développeur Amazon Managed Streaming for Apache Kafka*.

Amazon MSK ne prend pas en charge SASL/PLAIN l'authentification.

### Authentification basée sur les rôles IAM
<a name="pipes-msk-permissions-iam-policy"></a>

Vous pouvez utiliser IAM pour authentifier l’identité des clients qui se connectent au cluster MSK. Si l'authentification IAM est active sur votre cluster MSK et que vous ne fournissez pas de secret pour l'authentification, l'authentification IAM est EventBridge automatiquement utilisée par défaut. Pour créer et déployer des stratégies utilisateur ou basées sur des rôles IAM, utilisez la console IAM ou l'API. Pour plus d'informations, consultez [Contrôle d'accès IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html) dans le *Guide du développeur Amazon Managed Streaming for Apache Kafka*.

 EventBridge Pour permettre de se connecter au cluster MSK, de lire des enregistrements et d'effectuer d'autres actions requises, ajoutez les autorisations suivantes au rôle d'exécution de vos canaux.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kafka-cluster:Connect",
                "kafka-cluster:DescribeGroup",
                "kafka-cluster:AlterGroup",
                "kafka-cluster:DescribeTopic",
                "kafka-cluster:ReadData",
                "kafka-cluster:DescribeClusterDynamicConfiguration"
            ],
            "Resource": [
            "arn:aws:kafka:us-east-1:123456789012:cluster/cluster-name/cluster-uuid",
    "arn:aws:kafka:us-east-1:123456789012:topic/cluster-name/cluster-uuid/topic-name",
    "arn:aws:kafka:us-east-1:123456789012:group/cluster-name/cluster-uuid/consumer-group-id"
            ]
        }
    ]
}
```

------

Vous pouvez étendre ces autorisations à un cluster, une rubrique et un groupe spécifiques. Pour plus d’informations, consultez [Actions Amazon MSK Kafka](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html#kafka-actions) dans le *Guide du développeur Amazon Managed Streaming for Apache Kafka*.

### Authentification TLS mutuelle
<a name="pipes-msk-permissions-mTLS"></a>

Mutual TLS (mTLS) fournit une authentification bidirectionnelle entre le client et le serveur. Le client envoie un certificat au serveur pour que le serveur vérifie le client, et le serveur envoie un certificat au client pour que le client vérifie le serveur. 

Pour Amazon MSK, EventBridge agit en tant que client. Vous configurez un certificat client (sous forme de secret dans Secrets Manager) pour vous authentifier EventBridge auprès des courtiers de votre cluster MSK. Le certificat client doit être signé par une autorité de certification (CA) située dans le magasin d’approbations du serveur. Le cluster MSK envoie un certificat de serveur EventBridge pour authentifier les courtiers. EventBridge Le certificat du serveur doit être signé par une autorité de certification figurant dans le AWS trust store. 

Amazon MSK ne prend pas en charge les certificats de serveur auto-signés, car tous les courtiers d'Amazon MSK utilisent des [certificats publics](https://docs.aws.amazon.com/msk/latest/developerguide/msk-encryption.html) signés par [Amazon Trust Services CAs](https://www.amazontrust.com/repository/), qui EventBridge approuve par défaut.



Pour plus d’informations sur le protocole mTLS pour Amazon MSK, consultez [Authentification Mutual TLS](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html) dans le *Guide du développeur Amazon Managed Streaming for Apache Kafka*.

### Configuration du secret mTLS
<a name="smaa-auth-secret"></a>

Le secret CLIENT\$1CERTIFICATE\$1TLS\$1AUTH nécessite un champ de certificat et un champ de clé privée. Pour une clé privée chiffrée, le secret nécessite un mot de passe de clé privée. Le certificat et la clé privée doivent être au format PEM.

**Note**  
EventBridge prend en charge les algorithmes de chiffrement à clé privée [PBES1](https://datatracker.ietf.org/doc/html/rfc2898/#section-6.1)(mais pas PBES2).

Le champ de certificat doit contenir une liste de certificats, commençant par le certificat client, suivi de tous les certificats intermédiaires et se terminant par le certificat racine. Chaque certificat doit commencer sur une nouvelle ligne avec la structure suivante :

```
-----BEGIN CERTIFICATE-----  
        <certificate contents>
-----END CERTIFICATE-----
```

Secrets Manager prend en charge les secrets jusqu’à 65 536 octets, ce qui offre suffisamment d’espace pour de longues chaînes de certificats.

La clé privée doit être au format [PKCS \$18](https://datatracker.ietf.org/doc/html/rfc5208), avec la structure suivante :

```
-----BEGIN PRIVATE KEY-----  
         <private key contents>
-----END PRIVATE KEY-----
```

Pour une clé privée chiffrée, utilisez la structure suivante :

```
-----BEGIN ENCRYPTED PRIVATE KEY-----  
          <private key contents>
-----END ENCRYPTED PRIVATE KEY-----
```

L’exemple suivant affiche le contenu d’un secret pour l’authentification mTLS à l’aide d’une clé privée chiffrée. Pour une clé privée chiffrée, vous devez inclure le mot de passe de clé privée dans le secret.

```
{
 "privateKeyPassword": "testpassword",
 "certificate": "-----BEGIN CERTIFICATE-----
MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw
...
j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk
cmUuiAii9R0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb
...
rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no
c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg==
-----END CERTIFICATE-----",
 "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp
...
QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ
zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA==
-----END ENCRYPTED PRIVATE KEY-----"
}
```

### Comment EventBridge choisir un courtier Bootstrap
<a name="pipes-msk-bootstrap-brokers"></a>

EventBridge choisit un [courtier bootstrap](https://docs.aws.amazon.com/msk/latest/developerguide/msk-get-bootstrap-brokers.html) en fonction des méthodes d'authentification disponibles sur votre cluster et du fait que vous fournissez un secret pour l'authentification. Si vous fournissez un secret pour MTL ou SASL/SCRAM, choisissez EventBridge automatiquement cette méthode d'authentification. Si vous ne fournissez pas de secret, EventBridge choisissez la méthode d'authentification la plus puissante active sur votre cluster. Voici l'ordre de priorité dans lequel un courtier est EventBridge sélectionné, de l'authentification la plus forte à la plus faible :
+ MTLs (secret fourni pour les mTLS)
+ SASL/SCRAM (secret provided for SASL/SCRAM)
+ SASL IAM (aucun secret fourni et authentification IAM active)
+ Protocole TLS non authentifié (aucun secret fourni et authentification IAM non active)
+ Texte brut (aucun secret fourni, l’authentification IAM et le protocole TLS non authentifié ne sont pas actifs)

**Note**  
S'il ne EventBridge parvient pas à se connecter au type de courtier le plus sûr, il ne tente pas de se connecter à un autre type de courtier (plus faible). Si vous souhaitez EventBridge choisir un type de courtier plus faible, désactivez toutes les méthodes d'authentification renforcées sur votre cluster.

## Configuration réseau
<a name="pipes-msk-vpc-config"></a>

EventBridge doit avoir accès aux ressources Amazon Virtual Private Cloud (Amazon VPC) associées à votre cluster Amazon MSK.
+ Pour accéder au VPC de votre cluster Amazon MSK, EventBridge vous pouvez utiliser un accès Internet sortant pour les sous-réseaux de votre source. Pour les sous-réseaux privés, il peut s’agir d’une passerelle NAT ou de votre propre NAT. Assurez-vous que le NAT possède une adresse IP publique et peut se connecter à Internet. Pour les sous-réseaux publics, vous devez utiliser des points de terminaison VPC (expliqués ci-dessous).
+ EventBridge Pipes prend également en charge la diffusion d'événements [AWS PrivateLink](https://aws.amazon.com/privatelink/), ce qui vous permet d'envoyer des événements depuis une source d'événements située dans un Amazon Virtual Private Cloud (Amazon VPC) vers une cible Pipes sans passer par l'Internet public. Vous pouvez utiliser Pipes pour interroger depuis Amazon Managed Streaming pour Apache Kafka (Amazon MSK), Apache Kafka autogéré et des Amazon MQ sources résidant dans un sous-réseau privé sans avoir à déployer une passerelle Internet, à configurer des règles de pare-feu ou à configurer des serveurs proxy. Vous pouvez également utiliser les points de terminaison VPC pour prendre en charge la diffusion à partir de clusters Kafka dans des sous-réseaux publics.

  *Pour configurer un point de terminaison VPC, consultez la section [Créer un point de terminaison VPC dans le guide de l'utilisateur](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).AWS PrivateLink * Pour le nom du service, sélectionnez`com.amazonaws.region.pipes-data`.

Vous devez configurer vos groupes de sécurité Amazon VPC avec les règles suivantes (au minimum) :
+ Règles de trafic entrant : autorisez tout le trafic sur le port du courtier Amazon MSK pour les groupes de sécurité spécifiés pour votre source.
+ Règles sortantes : autorisent tout le trafic sur le port 443 pour toutes les destinations. Autorisez tout le trafic sur le port du courtier Amazon MSK pour les groupes de sécurité spécifiés pour votre source.

  Les ports Broker incluent :
  + 9092 pour le texte en clair
  + 9094 pour TLS
  + 9096 pour SASL
  + 9098 pour IAM

**Note**  
Votre configuration Amazon VPC est détectable via l’[API Amazon MSK](https://docs.aws.amazon.com/msk/1.0/apireference/resources.html). Vous n’avez pas besoin de la définir pendant la configuration.

## Identifiant de groupe de consommateurs personnalisable
<a name="pipes-msk-consumer-group"></a>

Lorsque vous configurez Apache Kafka en tant que source, vous pouvez spécifier un identifiant de groupe de consommateurs. Cet identifiant de groupe de consommateurs est un identifiant existant pour le groupe de consommateurs Apache Kafka auquel vous souhaitez rattacher votre canal. Vous pouvez utiliser cette fonctionnalité pour migrer toutes les configurations de traitement des enregistrements Apache Kafka en cours depuis d'autres utilisateurs vers. EventBridge

Si vous spécifiez un identifiant de groupe de consommateurs et qu’il existe d’autres sondeurs actifs au sein de ce groupe de consommateurs, Apache Kafka distribue des messages à tous les consommateurs. En d'autres termes, EventBridge ne reçoit pas tous les messages relatifs au sujet Apache Kafka. Si vous EventBridge souhaitez gérer tous les messages du sujet, désactivez tous les autres sondeurs de ce groupe de consommateurs.

En outre, si vous spécifiez un identifiant de groupe de consommateurs et qu'Apache Kafka trouve un groupe de consommateurs valide portant le même identifiant, il EventBridge ignore le `StartingPosition` paramètre de votre canal. EventBridge Commence plutôt à traiter les enregistrements en fonction de la compensation engagée par le groupe de consommateurs. Si vous spécifiez un identifiant de groupe de consommateurs et qu'Apache Kafka ne trouve aucun groupe de consommateurs existant, EventBridge configure votre source avec l'identifiant spécifié. `StartingPosition`

L’identifiant du groupe de consommateurs que vous spécifiez doit être unique parmi toutes vos sources d’événements Apache Kafka. Après avoir créé un canal avec l’identifiant de groupe de consommateurs spécifié, vous ne pouvez plus mettre à jour cette valeur.

## Autoscaling de la source Amazon MSK
<a name="pipes-msk-ops-scaling"></a>

Lorsque vous créez initialement une source Amazon MSK, EventBridge alloue un consommateur pour traiter toutes les partitions de la rubrique Apache Kafka. Chaque consommateur dispose de plusieurs processeurs exécutés en parallèle pour gérer des charges de travail accrues. En outre, EventBridge augmente ou diminue automatiquement le nombre de consommateurs en fonction de la charge de travail. Pour préserver l’ordre des messages dans chaque partition, le nombre maximum de consommateurs est de un par partition dans la rubrique.

 EventBridge Évalue, à intervalles d'une minute, le décalage entre les utilisateurs et toutes les partitions du sujet. Si le décalage est trop élevé, la partition reçoit les messages plus rapidement qu'elle ne EventBridge peut les traiter. Si nécessaire, EventBridge ajoute ou supprime des consommateurs du sujet. Le processus de mise à l’échelle consistant à ajouter ou à supprimer des consommateurs a lieu dans les trois minutes suivant l’évaluation.

Si votre cible est surchargée, vous EventBridge réduisez le nombre de consommateurs. Cette action réduit la charge de travail du canal en diminuant le nombre de messages que les consommateurs peuvent échanger avec le canal.

# Apache Kafka diffuse en tant que source dans Pipes EventBridge
<a name="eb-pipes-kafka"></a>

Apache Kafka est une plateforme open source de streaming d’événements qui prend en charge des charges de travail telles que les canaux de données et l’analytique de streaming. Vous pouvez utiliser [Amazon Managed Streaming for Apache Kafka](eb-pipes-msk.md) (Amazon MSK) ou un cluster Apache Kafka autogéré. En AWS termes terminologiques, un cluster *autogéré* fait référence à tout cluster Apache Kafka non hébergé par AWS. Cela inclut à la fois les clusters que vous gérez vous-même, ainsi que ceux hébergés par un fournisseur tiers, tels que [https://www.confluent.io/](https://www.confluent.io/), [https://www.cloudkarafka.com/](https://www.cloudkarafka.com/), ou [https://redpanda.com/](https://redpanda.com/).

Pour plus d'informations sur les autres options d' AWS hébergement pour votre cluster, consultez la section [Meilleures pratiques pour exécuter Apache Kafka AWS sur](https://aws.amazon.com/blogs/big-data/best-practices-for-running-apache-kafka-on-aws/) le *blog AWS Big Data*.

Apache Kafka en tant que source fonctionne de la même manière qu'Amazon Simple Queue Service (Amazon SQS) ou Amazon Kinesis. EventBridgeinterroge en interne les nouveaux messages provenant de la source, puis invoque la cible de manière synchrone. EventBridge lit les messages par lots et les fournit à votre fonction sous forme de charge utile d'événements. La taille de lot maximale est configurable. (par défaut, 100 messages).

Pour les sources basées sur Apache Kafka, EventBridge prend en charge les paramètres de contrôle du traitement, tels que les fenêtres de traitement par lots et la taille des lots.

EventBridge envoie le lot de messages dans le paramètre d'événement lorsqu'il invoque votre canal. La charge utile d’un événement contient un tableau de messages. Chaque élément de tableau contient les détails de la rubrique Apache Kafka et l’identifiant de partition Apache Kafka, ainsi qu’un horodatage et un message codé en base64.

**Exemples d’événements**

L’exemple d’événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d’événements, ou pour définir la transformation d’entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d’informations sur les champs que vous pouvez filtrer, consultez [Filtrage des événements dans Amazon EventBridge Pipes](eb-pipes-event-filtering.md).

```
[
  {
    "eventSource": "SelfManagedKafka",
    "bootstrapServers": "b-2.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092,b-1.demo-cluster-1.a1bcde.c1.kafka.us-east-1.amazonaws.com:9092",
    "eventSourceKey": "mytopic-0",
    "topic": "mytopic",
    "partition": 0,
    "offset": 15,
    "timestamp": 1545084650987,
    "timestampType": "CREATE_TIME",
    "key":"abcDEFghiJKLmnoPQRstuVWXyz1234==", 
    "value":"SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
    "headers": [
      {
        "headerKey": [
          104,
          101,
          97,
          100,
          101,
          114,
          86,
          97,
          108,
          117,
          101
        ]
      }
    ]
  }
]
```

## Authentification de cluster Apache Kafka
<a name="pipes-smaa-authentication"></a>

EventBridge Pipes prend en charge plusieurs méthodes pour s'authentifier auprès de votre cluster Apache Kafka autogéré. Veillez à configurer le cluster Apache Kafka de sorte à utiliser l’une des méthodes d’authentification prises en charge suivantes : Pour plus d’informations sur la sécurité Apache Kafka, consultez la section [Sécurité](http://kafka.apache.org/documentation.html#security) de la documentation d’Apache Kafka.

### Accès VPC
<a name="pipes-smaa-auth-vpc"></a>

Si vous utilisez un environnement Apache Kafka autogéré dans lequel seuls les utilisateurs d'Apache Kafka au sein de votre VPC ont accès à vos courtiers Apache Kafka, vous devez configurer Amazon Virtual Private Cloud (Amazon VPC) dans la source Apache Kafka. 

### Authentification SASL/SCRAM
<a name="pipes-smaa-auth-sasl"></a>

EventBridge Pipes prend en charge l'authentification simple et Layer/Salted Challenge Response Authentication Mechanism (SASL/SCRAM) authentication with Transport Layer Security (TLS) encryption. EventBridge Pipes sends the encrypted credentials to authenticate with the cluster. For more information about SASL/SCRAM l'authentification de sécurité, voir [RFC 5802](https://tools.ietf.org/html/rfc5802).

EventBridge Pipes prend en charge SASL/PLAIN authentication with TLS encryption. With SASL/PLAIN l'authentification, EventBridge Pipes envoie les informations d'identification sous forme de texte clair (non crypté) au serveur.

Pour l’authentification SASL, vous devez stocker les informations d’identification en tant que secret dans AWS Secrets Manager.

### Authentification TLS mutuelle
<a name="pipes-smaa-auth-mtls"></a>

Mutual TLS (mTLS) fournit une authentification bidirectionnelle entre le client et le serveur. Le client envoie un certificat au serveur pour que le serveur vérifie le client, et le serveur envoie un certificat au client pour que le client vérifie le serveur. 

Dans Apache Kafka autogéré, EventBridge Pipes agit en tant que client. Vous configurez un certificat client (en tant que secret dans Secrets Manager) pour authentifier EventBridge Pipes auprès de vos courtiers Apache Kafka. Le certificat client doit être signé par une autorité de certification (CA) située dans le magasin d’approbations du serveur.

Le cluster Apache Kafka envoie un certificat de serveur à EventBridge Pipes pour authentifier les courtiers Apache Kafka auprès de Pipes. EventBridge Le certificat de serveur peut être un certificat d'autorité de certification public ou privéCA/self-signed certificate. The public CA certificate must be signed by a CA that's in the EventBridge Pipes trust store. For a private CA/self, vous configurez le certificat d'autorité de certification racine du serveur (en tant que secret dans Secrets Manager). EventBridge Pipes utilise le certificat racine pour vérifier les courtiers Apache Kafka.

Pour plus d’informations sur mTLS, consultez [Présentation de l’authentification TLS mutuelle pour Amazon MSK en tant que source](https://aws.amazon.com/blogs/compute/introducing-mutual-tls-authentication-for-amazon-msk-as-an-event-source) (langue française non garantie).

### Configuration du secret du certificat client
<a name="pipes-smaa-auth-secret"></a>

Le secret CLIENT\$1CERTIFICATE\$1TLS\$1AUTH nécessite un champ de certificat et un champ de clé privée. Pour une clé privée chiffrée, le secret nécessite un mot de passe de clé privée. Le certificat et la clé privée doivent être au format PEM.

**Note**  
EventBridge Pipes prend en charge les algorithmes de chiffrement à clé privée [PBES1](https://datatracker.ietf.org/doc/html/rfc2898/#section-6.1)(mais pas PBES2).

Le champ de certificat doit contenir une liste de certificats, commençant par le certificat client, suivi de tous les certificats intermédiaires et se terminant par le certificat racine. Chaque certificat doit commencer sur une nouvelle ligne avec la structure suivante :

```
-----BEGIN CERTIFICATE-----  
        <certificate contents>
-----END CERTIFICATE-----
```

Secrets Manager prend en charge les secrets jusqu’à 65 536 octets, ce qui offre suffisamment d’espace pour de longues chaînes de certificats.

La clé privée doit être au format [PKCS \$18](https://datatracker.ietf.org/doc/html/rfc5208), avec la structure suivante :

```
-----BEGIN PRIVATE KEY-----  
         <private key contents>
-----END PRIVATE KEY-----
```

Pour une clé privée chiffrée, utilisez la structure suivante :

```
-----BEGIN ENCRYPTED PRIVATE KEY-----  
          <private key contents>
-----END ENCRYPTED PRIVATE KEY-----
```

L’exemple suivant affiche le contenu d’un secret pour l’authentification mTLS à l’aide d’une clé privée chiffrée. Pour une clé privée chiffrée, incluez le mot de passe de clé privée dans le secret.

```
{
 "privateKeyPassword": "testpassword",
 "certificate": "-----BEGIN CERTIFICATE-----
MIIE5DCCAsygAwIBAgIRAPJdwaFaNRrytHBto0j5BA0wDQYJKoZIhvcNAQELBQAw
...
j0Lh4/+1HfgyE2KlmII36dg4IMzNjAFEBZiCRoPimO40s1cRqtFHXoal0QQbIlxk
cmUuiAii9R0=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFgjCCA2qgAwIBAgIQdjNZd6uFf9hbNC5RdfmHrzANBgkqhkiG9w0BAQsFADBb
...
rQoiowbbk5wXCheYSANQIfTZ6weQTgiCHCCbuuMKNVS95FkXm0vqVD/YpXKwA/no
c8PH3PSoAaRwMMgOSA2ALJvbRz8mpg==
-----END CERTIFICATE-----",
 "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----
MIIFKzBVBgkqhkiG9w0BBQ0wSDAnBgkqhkiG9w0BBQwwGgQUiAFcK5hT/X7Kjmgp
...
QrSekqF+kWzmB6nAfSzgO9IaoAaytLvNgGTckWeUkWn/V0Ck+LdGUXzAC4RxZnoQ
zp2mwJn2NYB7AZ7+imp0azDZb+8YG2aUCiyqb6PnnA==
-----END ENCRYPTED PRIVATE KEY-----"
}
```

### Configuration du secret du certificat d’autorité de certification racine du serveur
<a name="pipes-smaa-auth-ca-cert"></a>

Vous créez ce secret si vos agents Apache Kafka utilisent le chiffrement TLS avec des certificats signés par une CA privée. Vous pouvez utiliser le chiffrement TLS pour l'authentification VPC ou SASL/SCRAM, SASL/PLAIN mTLS.

Le secret du certificat de CA racine du serveur requiert un champ contenant le certificat de CA racine de l’agent Apache Kafka au format PEM. La structure du secret est présentée dans l’exemple suivant.

```
{
     "certificate": "-----BEGIN CERTIFICATE-----       
  MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx
  EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT
  HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs
  ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dG...
  -----END CERTIFICATE-----"
```

## Configuration réseau
<a name="pipes-kafka-vpc-config"></a>

Si vous utilisez un environnement Apache Kafka autogéré qui utilise une connectivité VPC privée EventBridge , vous devez avoir accès aux ressources Amazon Virtual Private Cloud (Amazon VPC) associées à vos courtiers Apache Kafka. 
+ Pour accéder au VPC de votre cluster Apache Kafka, EventBridge vous pouvez utiliser un accès Internet sortant pour les sous-réseaux de votre source. Pour les sous-réseaux privés, il peut s’agir d’une passerelle NAT ou de votre propre NAT. Assurez-vous que le NAT possède une adresse IP publique et peut se connecter à Internet. Pour les sous-réseaux publics, vous devez utiliser des points de terminaison VPC (expliqués ci-dessous).
+ EventBridge Pipes prend également en charge la diffusion d'événements [AWS PrivateLink](https://aws.amazon.com/privatelink/), ce qui vous permet d'envoyer des événements depuis une source d'événements située dans un Amazon Virtual Private Cloud (Amazon VPC) vers une cible Pipes sans passer par l'Internet public. Vous pouvez utiliser Pipes pour interroger depuis Amazon Managed Streaming pour Apache Kafka (Amazon MSK), Apache Kafka autogéré et des Amazon MQ sources résidant dans un sous-réseau privé sans avoir à déployer une passerelle Internet, à configurer des règles de pare-feu ou à configurer des serveurs proxy. Vous pouvez également utiliser les points de terminaison VPC pour prendre en charge la diffusion à partir de clusters Kafka dans des sous-réseaux publics.

  *Pour configurer un point de terminaison VPC, consultez la section [Créer un point de terminaison VPC dans le guide de l'utilisateur](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws).AWS PrivateLink * Pour le nom du service, sélectionnez`com.amazonaws.region.pipes-data`.

Vous devez configurer vos groupes de sécurité Amazon VPC avec les règles suivantes (au minimum) :
+ Règles de trafic entrant : autorisez tout le trafic sur le port du broker Apache Kafka pour les groupes de sécurité spécifiés pour votre source.
+ Règles sortantes : autorisent tout le trafic sur le port 443 pour toutes les destinations. Autorisez tout le trafic sur le port du broker Apache Kafka pour les groupes de sécurité spécifiés pour votre source.

  Les ports Broker incluent :
  + 9092 pour le texte en clair
  + 9094 pour TLS
  + 9096 pour SASL
  + 9098 pour IAM

## Mise à l'échelle automatique des consommateurs avec les sources Apache Kafka
<a name="pipes-kafka-ops-scaling"></a>

Lorsque vous créez initialement une source Apache Kafka, EventBridge elle alloue un consommateur pour traiter toutes les partitions du sujet Kafka. Chaque consommateur dispose de plusieurs processeurs exécutés en parallèle pour gérer des charges de travail accrues. En outre, EventBridge augmente ou diminue automatiquement le nombre de consommateurs en fonction de la charge de travail. Pour préserver l’ordre des messages dans chaque partition, le nombre maximum de consommateurs est de un par partition dans la rubrique.

 EventBridge Évalue, à intervalles d'une minute, le décalage entre les utilisateurs et toutes les partitions du sujet. Si le décalage est trop élevé, la partition reçoit les messages plus rapidement qu'elle ne EventBridge peut les traiter. Si nécessaire, EventBridge ajoute ou supprime des consommateurs du sujet. Le processus de mise à l’échelle consistant à ajouter ou à supprimer des consommateurs a lieu dans les trois minutes suivant l’évaluation.

Si votre cible est surchargée, vous EventBridge réduisez le nombre de consommateurs. Cette action réduit la charge de travail de la fonction en diminuant le nombre de messages que les consommateurs peuvent échanger avec la fonction.

# Amazon Simple Queue Service en tant que source dans EventBridge Pipes
<a name="eb-pipes-sqs"></a>

Vous pouvez utiliser EventBridge Pipes pour recevoir des enregistrements d'une file d'attente Amazon SQS. Ensuite, vous pouvez éventuellement filtrer ou améliorer ces enregistrements avant de les envoyer à une destination disponible pour être traités.

Vous pouvez utiliser un canal pour traiter les messages d'une file d'attente Amazon Simple Queue Service (Amazon SQS). EventBridge Les tuyaux supportent les [files d'attente standard et les files d'attente](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/standard-queues.html) [du premier entré, premier sorti (FIFO)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html). Avec Amazon SQS, vous pouvez décharger des tâches d’un composant de votre application en les envoyant à une file d’attente, puis en les traitant de manière asynchrone.

EventBridge interroge la file d'attente et invoque votre canal de manière synchrone avec un événement contenant des messages de file d'attente. EventBridge lit les messages par lots et invoque votre canal une fois pour chaque lot. Lorsque votre canal traite avec succès un lot, il EventBridge supprime ses messages de la file d'attente.

Par défaut, EventBridge interroge simultanément jusqu'à 10 messages dans votre file d'attente et envoie ce lot à votre canal. Pour éviter d’invoquer le canal avec un petit nombre d’enregistrements, vous pouvez indiquer à la source d’événement de les mettre en mémoire tampon pendant cinq minutes maximum en configurant une fenêtre de traitement par lots. Avant d'appeler le canal, EventBridge continue à interroger les messages de la file d'attente standard Amazon SQS jusqu'à ce que l'un des événements suivants se produise :
+ La fenêtre de traitement par lots expire.
+ Le quota de taille de la charge utile d’invocation est atteint.
+ La taille de lot maximale configurée est atteinte.

**Note**  
Si vous utilisez une fenêtre de traitement par lots et que votre file d'attente Amazon SQS contient peu de trafic, vous EventBridge pouvez attendre jusqu'à 20 secondes avant d'appeler votre canal. C’est le cas même si vous définissez une fenêtre de traitement par lots inférieure à 20 secondes. Pour les files d’attente FIFO, les enregistrements contiennent des attributs supplémentaires liés à la déduplication et au séquençage.

Lors de la EventBridge lecture d'un lot, les messages restent dans la file d'attente mais sont masqués pendant la durée du [délai de visibilité de la file d'attente.](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) Si votre canal traite le lot avec succès, EventBridge supprime les messages de la file d'attente. Par défaut, si votre canal rencontre une erreur lors du traitement d’un lot, tous les messages de ce lot redeviennent visibles dans la file d’attente. Pour cette raison, le code de votre canal doit pouvoir traiter le même message plusieurs fois sans effets secondaires involontaires. Vous pouvez modifier ce comportement de retraitement en incluant les défaillances d’éléments de lot dans la réponse de votre canal. L'exemple suivant présente un événement pour un lot de deux messages.

**Exemples d’événements**

L’exemple d’événement suivant montre les informations reçues par le canal. Vous pouvez utiliser cet événement pour créer et filtrer vos modèles d’événements, ou pour définir la transformation d’entrée. Tous les champs ne peuvent pas être filtrés. Pour plus d’informations sur les champs que vous pouvez filtrer, consultez [Filtrage des événements dans Amazon EventBridge Pipes](eb-pipes-event-filtering.md).

**File d’attente standard**

```
[
  {
    "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d",
    "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...",
    "body": "Test message.",
    "attributes": {
      "ApproximateReceiveCount": "1",
      "SentTimestamp": "1545082649183",
      "SenderId": "AIDAIENQZJOLO23YVJ4VO",
      "ApproximateFirstReceiveTimestamp": "1545082649185"
    },
    "messageAttributes": {},
    "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3",
    "eventSource": "aws:sqs",
    "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue",
    "awsRegion": "us-east-2"
  },
  {
    "messageId": "2e1424d4-f796-459a-8184-9c92662be6da",
    "receiptHandle": "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq...",
    "body": "Test message.",
    "attributes": {
      "ApproximateReceiveCount": "1",
      "SentTimestamp": "1545082650636",
      "SenderId": "AIDAIENQZJOLO23YVJ4VO",
      "ApproximateFirstReceiveTimestamp": "1545082650649"
    },
    "messageAttributes": {},
    "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3",
    "eventSource": "aws:sqs",
    "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue",
    "awsRegion": "us-east-2"
  }
]
```

**File d’attente FIFO**

```
[
  {
    "messageId": "11d6ee51-4cc7-4302-9e22-7cd8afdaadf5",
    "receiptHandle": "AQEBBX8nesZEXmkhsmZeyIE8iQAMig7qw...",
    "body": "Test message.",
    "attributes": {
      "ApproximateReceiveCount": "1",
      "SentTimestamp": "1573251510774",
      "SequenceNumber": "18849496460467696128",
      "MessageGroupId": "1",
      "SenderId": "AIDAIO23YVJENQZJOL4VO",
      "MessageDeduplicationId": "1",
      "ApproximateFirstReceiveTimestamp": "1573251510774"
    },
    "messageAttributes": {},
    "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3",
    "eventSource": "aws:sqs",
    "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:fifo.fifo",
    "awsRegion": "us-east-2"
  }
]
```

## Dimensionnement et traitement
<a name="pipes-sqs-scaling"></a>

Pour les files d'attente standard, EventBridge utilise un [long sondage](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html) pour interroger une file d'attente jusqu'à ce qu'elle devienne active. Lorsque des messages sont disponibles, EventBridge lit jusqu'à cinq lots et les envoie à votre canal. Si les messages sont toujours disponibles, EventBridge augmente le nombre de processus lisant des lots de 300 instances supplémentaires par minute. Le nombre maximal de lots qui peuvent être traités simultanément par un canal est de 1 000.

Pour les files d'attente FIFO, EventBridge envoie des messages à votre canal dans l'ordre dans lequel il les reçoit. Lorsque vous envoyez un message à une file d’attente FIFO, vous spécifiez un [ID de groupe de messages](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html). Amazon SQS facilite l'envoi de messages d'un même groupe à EventBridge, dans l'ordre. EventBridge trie les messages reçus en groupes et n'envoie qu'un seul lot à la fois pour un groupe. Si votre canal renvoie une erreur, le canal tente toutes les tentatives sur les messages concernés avant de EventBridge recevoir des messages supplémentaires du même groupe.

## Configuration d'une file d'attente à utiliser avec EventBridge Pipes
<a name="pipes-sqs-configure-queue"></a>

[Créez une file d’attente Amazon SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-create-queue.html) à utiliser en tant que source pour votre canal. Configurez ensuite la file d'attente pour laisser le temps à votre canal de traiter chaque lot d'événements et de réessayer en réponse EventBridge à des erreurs de régulation à mesure qu'il prend de l'ampleur.

Pour laisser à votre canal le temps de traiter chaque lot d’enregistrements, définissez le délai de visibilité de la file d’attente source sur au moins six fois le temps d’exécution combiné de l’enrichissement du canal et des composants cibles. Le temps supplémentaire permet de EventBridge réessayer si votre tuyau est étranglé lors du traitement d'un lot précédent.

Si votre canal ne parvient pas à traiter un message plusieurs fois de suite, Amazon SQS peut envoyer celui-ci à une [file d’attente de lettres mortes](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html). Lorsque votre canal renvoie une erreur, il le EventBridge conserve dans la file d'attente. Une fois le délai de visibilité expiré, EventBridge reçoit à nouveau le message. Pour envoyer des messages à une deuxième file d’attente après plusieurs réceptions, configurez une file d’attente de lettres mortes sur votre file d’attente source.

**Note**  
Assurez-vous que vous configurez la file d’attente de lettres mortes dans la file d’attente source, mais pas sur le canal. La file d’attente de lettres mortes que vous configurez sur un canal est utilisée pour la file d’attente d’invocation asynchrone du canal, mais pas pour les files d’attente sources.

Si votre canal renvoie une erreur ou ne peut pas être invoqué, car il a atteint le niveau de simultanéité maximal, le traitement peut aboutir avec des tentatives supplémentaires. Pour donner plus de chances aux messages d’être traités avant de les envoyer dans la file d’attente de lettres mortes, définissez `maxReceiveCount` sur **5** au minimum dans la stratégie de réacheminement de la file d’attente source.

## Signalement des échecs d’articles par lots
<a name="pipes-sqs-batch-failures"></a>

Lorsqu'il EventBridge consomme et traite des données en streaming à partir d'une source, il vérifie par défaut le numéro de séquence le plus élevé d'un lot, mais uniquement lorsque le lot est totalement réussi. Pour éviter de retraiter les messages dont le traitement a réussi dans un lot ayant échoué, vous pouvez configurer votre enrichissement ou votre cible de sorte à renvoyer un objet en indiquant les messages qui ont réussi et ceux qui ont échoué. C’est ce que l’on appelle une réponse partielle de lot.

Pour de plus amples informations, veuillez consulter [Défaillance partielle d’un lot](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure).

### Conditions de réussite et d’échec
<a name="pipes-sqs-batch-failures-conditions"></a>

Si vous renvoyez l'un des éléments suivants, EventBridge considère un lot comme une réussite totale :
+ Une liste `batchItemFailure` vide
+ Une liste `batchItemFailure` nulle
+ Une `EventResponse` vide
+ Une `EventResponse` nulle

Si vous renvoyez l'un des éléments suivants, EventBridge considère un lot comme un échec total :
+ Une chaîne `itemIdentifier` vide
+ Un `itemIdentifier` nul
+ Un `itemIdentifier` avec un nom de clé incorrect

EventBridge les nouvelles tentatives échouent en fonction de votre stratégie de réessai.

# Filtrage des événements dans Amazon EventBridge Pipes
<a name="eb-pipes-event-filtering"></a>

Avec EventBridge Pipes, vous pouvez filtrer les événements d'une source donnée et n'en traiter qu'un sous-ensemble. Ce filtrage fonctionne de la même manière que le filtrage sur un bus d' EventBridge événements ou le mappage d'une source d'événements Lambda, en utilisant des modèles d'événements. Pour plus d’informations sur les modèles d’événements, consultez [Création de modèles EventBridge d'événements Amazon](eb-event-patterns.md).

Un objet `FilterCriteria` de critères de filtre est une structure composée d’une liste de filtres (`Filters`). Chaque filtre est une structure qui définit un modèle de filtrage (`Pattern`). Un `Pattern` est une représentation sous forme de chaîne d'une règle de filtre JSON. Un objet `FilterCriteria` ressemble à l'exemple suivant :

```
{
  "Filters": [
    {"Pattern": "{ \"Metadata1\": [ pattern1 ], \"data\": { \"Data1\": [ pattern2 ] }}"
    }
  ]
}
```

Pour plus de clarté, voici la valeur du `Pattern` de filtre étendu en JSON simple :

```
{
  "Metadata1": [ pattern1 ],
  "data": {"Data1": [ pattern2 ]}
}
```

Amazon Kinesis, Amazon MQ, Amazon MSK et Apache Kafka autogéré appliquent le codage Base64 à la charge utile, mais pas aux champs de métadonnées. Supposons, par exemple, que votre flux Kinesis contienne un événement tel que celui-ci :

```
{
  "kinesisSchemaVersion": "1.0",
  "partitionKey": "1",
  "sequenceNumber": "49590338271490256608559692538361571095921575989136588898",
  "data": {"City": "Seattle",
    "State": "WA",
    "Temperature": "46",
    "Month": "December"
  },
  "approximateArrivalTimestamp": 1545084650.987
}
```

Lorsque l’événement passe par votre canal, il ressemble à ce qui suit avec le champ `data` codé en base64 :

```
{
  "kinesisSchemaVersion": "1.0",
  "partitionKey": "1",
  "sequenceNumber": "49590338271490256608559692538361571095921575989136588898",
  "data": "SGVsbG8sIHRoaXMgaXMgYSB0ZXN0Lg==",
  "approximateArrivalTimestamp": 1545084650.987,
  "eventSource": "aws:kinesis",
  "eventVersion": "1.0",
  "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898",
  "eventName": "aws:kinesis:record",
  "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role",
  "awsRegion": "us-east-2",
  "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream"
}
```

Lorsque vous créez des filtres d'événements, EventBridge Pipes peut accéder au contenu des événements. Ce contenu est soit mis en échappement dans le code JSON, comme le champ `body` Amazon SQS, soit codé en base64, comme le champ `data` Kinesis. Si vos données sont du format JSON valide, vos modèles d'entrée ou vos chemins JSON pour les paramètres cibles peuvent référencer directement le contenu, car EventBridge Pipes le décodera automatiquement. Par exemple, si une source d’événement Kinesis est au format JSON valide, vous pouvez référencer une variable à l’aide de `<$.data.someKey>`.

Dans la continuité de notre exemple, pour filtrer les `partitionKey` métadonnées non codées situées à l'extérieur de l'`data`objet et la `City` propriété codée en base64 à l'intérieur de l'`data`objet, vous devez utiliser le filtre suivant :

```
{
  "partitionKey": [ "1" ],
  "data": {
    "City": [ "Seattle" ]
  }
}
```

Lorsque vous créez des modèles d’événements, vous pouvez filtrer en fonction des champs envoyés par l’API source, mais pas des champs ajoutés par l’opération d’interrogation. Les champs suivants ne peuvent pas être utilisés dans les modèles d’événements :
+ `awsRegion`
+ `eventSource`
+ `eventSourceARN`
+ `eventVersion`
+ `eventID`
+ `eventName`
+ `invokeIdentityArn`
+ `eventSourceKey`

Les sections suivantes expliquent le comportement de filtrage pour chaque type de source d'événement pris en charge.

## Filtrer les messages Amazon SQS
<a name="pipes-filter-sqs"></a>

Si un message Amazon SQS ne répond pas à vos critères de filtrage, il est EventBridge automatiquement supprimé de la file d'attente. Vous n’avez pas besoin de supprimer manuellement ces messages dans Amazon SQS. Il est peu probable que la connexion de plusieurs canaux à une file d'attente SQS soit une configuration utile, car les canaux seraient en concurrence pour les messages qui seront supprimés s'ils ne correspondent pas.

Le corps d'un message Amazon SQS peut contenir n'importe quelle chaîne, pas uniquement du JSON. EventBridge Pipes s'attend à ce que votre `FilterCriteria` format corresponde au format des messages entrants, qu'il s'agisse d'un JSON valide ou d'une chaîne simple. S'il y a une incompatibilité, EventBridge Pipes supprime le message. Si vous `FilterCriteria` n'incluez pas`body`, c'est-à-dire que vous filtrez uniquement par métadonnées, EventBridge Pipes ignore cette vérification. Le tableau suivant résume l'évaluation :


| Format du du modèle de filtre | Format entrant | Résultat | 
| --- | --- | --- | 
|  Chaîne de texte brut  |  Chaîne de texte brut  |  EventBridge filtres en fonction de vos critères de filtrage.  | 
|  Chaîne de texte brut  |  JSON valide  |  EventBridge supprime le message.  | 
|  JSON valide  |  Chaîne de texte brut  |  EventBridge supprime le message.  | 
|  JSON valide  |  JSON valide  |  EventBridge filtres en fonction de vos critères de filtrage.  | 
|  Aucun modèle de filtre pour `body`  |  Chaîne de texte brut  |  EventBridge filtres en fonction de vos critères de filtrage.  | 
|  Aucun modèle de filtre pour `body`  |  JSON valide  |  EventBridge filtres en fonction de vos critères de filtrage.  | 

## Filtrage des messages Kinesis et DynamoDB
<a name="pipes-filter-kinesis-dynamobd"></a>

Une fois que vos critères de filtre traitent un enregistrement Kinesis ou DynamoDB, l’itérateur des flux passe au-delà de cet enregistrement. Si l’enregistrement ne répond pas à vos critères de filtre, vous n’avez pas besoin de supprimer manuellement l’enregistrement de la source de votre événement. Après la période de conservation, Kinesis et DynamoDB suppriment automatiquement ces anciens enregistrements. Si vous souhaitez que les enregistrements soient supprimés plus tôt, consultez [Modification de la période de conservation des données](https://docs.aws.amazon.com/kinesis/latest/dev/kinesis-extended-retention.html).

Pour filtrer correctement les événements provenant de sources d'événements de flux, le champ de données et vos critères de filtre pour le champ de données doivent être au format JSON valide. (Pour Kinesis, le champ de données est `data`. Pour DynamoDB, le champ de données est`dynamodb`.) Si l'un des champs n'est pas dans un format JSON valide, EventBridge supprime le message ou génère une exception. Le tableau suivant résume le comportement spécifique :


| Format du du modèle de filtre | Format entrant | Résultat | 
| --- | --- | --- | 
|  JSON valide  |  JSON valide  |  EventBridge filtres en fonction de vos critères de filtrage.  | 
|  JSON valide  |  Non JSON  |  EventBridge supprime le message.  | 
|  Aucun modèle de filtre pour `data` (Kinesis) ou (`dynamodb`DynamoDB)  |  JSON valide  |  EventBridge filtres en fonction de vos critères de filtrage.  | 
|  Aucun modèle de filtre pour `data` (Kinesis) ou (`dynamodb`DynamoDB)  |  Non JSON  |  EventBridge filtres en fonction de vos critères de filtrage.  | 
|  Non JSON  |  N’importe lequel  |  EventBridge lance une exception au moment de la création ou de la mise à jour de Pipe. Le modèle de filtre doit être au format JSON valide.  | 

## Filtrage des messages Amazon Managed Streaming for Apache Kafka, Apache Kafka autogérés et Amazon MQ
<a name="pipes-filter-poller"></a>

**Note**  
Une fois que vous avez attaché des critères de filtre à une source d’événement Apache Kafka ou Amazon MQ, l’application de vos règles de filtrage aux événements peut prendre jusqu’à 15 minutes.

Pour les [sources Amazon MQ](eb-pipes-mq.md), le champ de message est `data`. Pour les sources Apache Kafka ([Amazon MSK](eb-pipes-msk.md) et [Apache Kafka autogéré](eb-pipes-kafka.md)), il existe deux champs de message : `key` et `value`.

EventBridge supprime les messages qui ne correspondent pas à tous les champs inclus dans le filtre. Pour Apache Kafka, EventBridge valide les décalages pour les messages correspondants et non correspondants après avoir invoqué avec succès la cible. Pour Amazon MQ, EventBridge accuse réception des messages correspondants après avoir correctement invoqué la fonction et accuse réception des messages non correspondants lors du filtrage de ceux-ci.

Les messages Apache Kafka et Amazon MQ doivent être des chaînes codées en UTF-8, soit des chaînes en texte brut, soit au format JSON. En effet, il EventBridge décode les tableaux d'octets d'Apache Kafka et Amazon MQ en UTF-8 avant d'appliquer les critères de filtrage. Si vos messages utilisent un autre encodage, tel que UTF-16 ou ASCII, ou si le format du message ne correspond pas au `FilterCriteria` format, EventBridge traite uniquement les filtres de métadonnées. Le tableau suivant résume le comportement spécifique :


| Format du du modèle de filtre | Format entrant | Résultat | 
| --- | --- | --- | 
|  Chaîne de texte brut  |  Chaîne de texte brut  |  EventBridge filtres en fonction de vos critères de filtrage.  | 
|  Chaîne de texte brut  |  JSON valide  |  EventBridge filtre uniquement sur les métadonnées, en ignorant le `data` champ (Amazon MQ) ou `key` les `value` champs (Apache Kafka)  | 
|  JSON valide  |  Chaîne de texte brut  |  EventBridge filtre uniquement sur les métadonnées, en ignorant le `data` champ (Amazon MQ) ou `key` les `value` champs (Apache Kafka)  | 
|  JSON valide  |  JSON valide  |  EventBridge filtres en fonction de vos critères de filtrage.  | 
|  Aucun modèle de filtre pour `data` (Amazon MQ) ou `value` (Apache `key` Kafka)  |  Chaîne de texte brut  |  EventBridge filtre uniquement sur les métadonnées, en ignorant le `data` champ (Amazon MQ) ou `key` les `value` champs (Apache Kafka)  | 
|  Aucun modèle de filtre pour `data` (Amazon MQ) ou `value` (Apache `key` Kafka)  |  JSON valide  |  EventBridge filtre uniquement sur les métadonnées, en ignorant le `data` champ (Amazon MQ) ou `key` les `value` champs (Apache Kafka)  | 
|  N’importe lequel  |  Chaîne non encodée en UTF  |  EventBridge filtre uniquement sur les métadonnées, en ignorant le `data` champ (Amazon MQ) ou `key` les `value` champs (Apache Kafka)  | 

## Différences entre Lambda ESM et Pipes EventBridge
<a name="pipes-filter-esm-diff"></a>

Lors du filtrage des événements, Lambda ESM et EventBridge Pipes fonctionnent généralement de la même manière. La principale différence réside dans le fait que le champ `eventSourceKey` n’est pas présent dans les charges utiles ESM.

## Utilisation d'opérateurs de comparaison dans les filtres pour tuyaux
<a name="pipes-filter-comparison-operators"></a>

Les opérateurs de comparaison vous permettent de créer des modèles d'événements qui correspondent aux valeurs des champs des événements.

Pour une liste complète des opérateurs de comparaison pris en charge pour une utilisation dans les filtres de tuyauterie, voir[Opérateurs de comparaison](eb-create-pattern-operators.md).

# Enrichissement des événements dans Amazon EventBridge Pipes
<a name="pipes-enrichment"></a>

Avec l'étape d'enrichissement de EventBridge Pipes, vous pouvez améliorer les données de la source avant de les envoyer à la cible. Par exemple, vous pouvez recevoir des événements de type *Ticket créé* qui n’incluent pas l’ensemble des données de ticket. Grâce à l’enrichissement, vous pouvez demander à une fonction Lambda d’appeler l’API `get-ticket` pour obtenir les détails complets du ticket. Les canaux peuvent ensuite envoyer ces informations à une [cible](eb-pipes-event-target.md).

Vous pouvez configurer les enrichissements suivants lors de la configuration d'un tuyau dans EventBridge :
+ Destination d'API
+ Amazon API Gateway
+ fonction Lambda
+ Machine d’état Step Functions
**Note**  
EventBridge Pipes prend uniquement en charge les [flux de travail Express](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) en tant qu'enrichissement.

EventBridge invoque les enrichissements de manière synchrone car il doit attendre une réponse de l'enrichissement avant d'invoquer la cible.

Les réponses de l’enrichissement sont limitées à une taille maximale de 6 Mo.

Vous pouvez également transformer les données que vous recevez de la source avant de les envoyer pour amélioration. Pour de plus amples informations, veuillez consulter [Transformation EventBridge des entrées Amazon Pipes](eb-pipes-input-transformation.md).

## Filtrage des événements à l’aide de l’enrichissement
<a name="pipes-enrichment-filtering"></a>

EventBridge Pipes transmet les réponses d'enrichissement directement à la cible configurée. Cela inclut les réponses de type tableau pour les cibles qui prennent en charge les lots. Pour plus d’informations sur le comportement d’un lot, consultez [Traitement par lots et simultanéité d'Amazon EventBridge Pipes](eb-pipes-batching-concurrency.md). Vous pouvez également utiliser votre enrichissement comme filtre et transmettre moins d’événements que ceux reçus de la source. Si vous ne souhaitez pas invoquer la cible, renvoyez une réponse vide, telle que `""`, `{}` ou `[]`.

**Note**  
Si vous souhaitez invoquer la cible avec une charge utile vide, renvoyez un tableau avec du code JSON vide `[{}]`.

## Invocation d’enrichissements
<a name="pipes-invocation"></a>

EventBridge invoque les enrichissements de manière synchrone (type d'invocation défini sur`REQUEST_RESPONSE`) car il doit attendre une réponse de l'enrichissement avant d'invoquer la cible.

**Note**  
Pour les machines d'état Step Functions, les [flux de travail Express EventBridge ne sont pris](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) en charge que sous forme d'enrichissements, car ils peuvent être invoqués de manière synchrone.

# Objectifs d'Amazon EventBridge Pipes
<a name="eb-pipes-event-target"></a>

Vous pouvez envoyer les données de votre canal à une cible spécifique. Vous pouvez configurer les cibles suivantes lors de la configuration d'un canal dans EventBridge :
+ [Destination d'API](eb-api-destinations.md)
+ [API Gateway](eb-api-gateway-target.md)
+ [File d’attente des tâches de traitement par lot](#pipes-targets-specifics-batch)
+ [CloudWatch groupe de journaux](#pipes-targets-specifics-cwl)
+ [Tâche ECS](#pipes-targets-specifics-ecs-task)
+ [Bus d'événements dans le même compte et la même région](#pipes-targets-specifics-eventbridge)
+ Flux de diffusion Firehose
+ Modèle d'évaluation Inspector
+ Flux Kinesis
+ [Fonction Lambda (SYNC ou ASYNC)](#pipes-targets-specifics-lambda-stepfunctions)
+ Requêtes d’API relatives aux données du cluster Redshift
+ SageMaker Pipeline d'IA
+ Rubrique Amazon SNS (rubriques FIFO SNS non prises en charge)
+ File d’attente Amazon SQS
+ [Machine d’état Step Functions](#pipes-targets-specifics-lambda-stepfunctions)
  + Flux de travaux express (SYNC ou ASYNC)
  + Flux de travaux standard (ASYNC)
+ [Timestream pour LiveAnalytics table](#pipes-targets-specifics-timestream)

## Paramètres de cible
<a name="pipes-targets-specific-parms"></a>

Certains services cibles n'envoient pas la charge utile de l'événement à la cible, mais traitent l'événement comme un déclencheur pour appeler une API spécifique. EventBridge utilise le [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html)pour spécifier quelles informations sont envoyées à cette API. Cela inclut les éléments suivants :
+ Destinations d’API (Les données envoyées à une destination d’API doivent correspondre à la structure de l’API. Vous devez utiliser l’objet [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate) pour vous assurer que les données sont correctement structurées. Si vous souhaitez inclure la charge utile de l’événement d’origine, référencez-la dans [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate).)
+ API Gateway (Les données envoyées à API Gateway doivent correspondre à la structure de l’API. Vous devez utiliser l’objet [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate) pour vous assurer que les données sont correctement structurées. Si vous souhaitez inclure la charge utile de l’événement d’origine, référencez-la dans [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetParameters.html#pipes-Type-PipeTargetParameters-InputTemplate).)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetRedshiftDataParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetRedshiftDataParameters.html) (clusters d’API de données Amazon Redshift)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetSageMakerPipelineParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetSageMakerPipelineParameters.html)(Pipelines de création de modèles Amazon SageMaker Runtime)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetBatchJobParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetBatchJobParameters.html) (AWS Batch)

**Note**  
EventBridge ne prend pas en charge toutes les syntaxes JSON Path et ne l'évalue pas lors de l'exécution. La syntaxe prise en charge inclut :   
notation par points (par exemple, `$.detail`)
tirets
traits de soulignement
caractères alphanumériques
index de tableau
caractères génériques (\$1)
barres obliques vers l'avant

### Paramètres de chemin dynamiques
<a name="pipes-targets-dynamic-parms"></a>

EventBridge Les paramètres cibles des tuyaux prennent en charge la syntaxe de chemin dynamique JSON facultative. Vous pouvez utiliser cette syntaxe pour spécifier des chemins JSON au lieu de valeurs statiques (par exemple, `$.detail.state`). La valeur entière doit être un chemin JSON, pas seulement une partie de celui-ci. Par exemple, `RedshiftParameters.Sql` peut avoir la valeur `$.detail.state`, mais pas la valeur `"SELECT * FROM $.detail.state"`. Ces chemins sont remplacés de manière dynamique lors de l’exécution par des données provenant de la charge utile de l’événement elle-même au niveau du chemin spécifié. Les paramètres de chemin dynamiques ne peuvent pas faire référence à des valeurs nouvelles ou transformées résultant d’une transformation d’entrée. La syntaxe prise en charge pour les chemins JSON de paramètres dynamiques est la même que lors de la transformation d’une entrée. Pour de plus amples informations, veuillez consulter [Transformation EventBridge des entrées Amazon Pipes](eb-pipes-input-transformation.md).

La syntaxe dynamique peut être utilisée sur tous les champs de chaîne, autres que les champs enum, de tous les paramètres d'enrichissement et de cible de EventBridge Pipes, sauf :
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetCloudWatchLogsParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetCloudWatchLogsParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetEventBridgeEventBusParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetEventBridgeEventBusParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeEnrichmentHttpParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeEnrichmentHttpParameters.html)
+ [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetHttpParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetHttpParameters.html)

[Par exemple, pour définir la cible Kinesis `PartitionKey` d'un canal sur une clé personnalisée provenant de votre événement source, définissez le. KinesisTargetParameter PartitionKey](https://docs.aws.amazon.com/)pour : 
+ `"$.data.someKey"` pour une source Kinesis
+ `"$.body.someKey"` pour une source Amazon SQS

Ensuite, si la charge utile de l'événement est une chaîne JSON valide, par exemple`{"someKey":"someValue"}`, EventBridge extrait la valeur du chemin JSON et l'utilise comme paramètre cible. Dans cet exemple, EventBridge définirait le Kinesis `PartitionKey` sur « »*someValue*.

## Permissions
<a name="pipes-targets-permissions"></a>

Pour effectuer des appels d'API sur les ressources que vous possédez, EventBridge Pipes a besoin des autorisations appropriées. EventBridge PIpes utilise le rôle IAM que vous spécifiez sur le canal pour l'enrichissement et cible les appels à l'aide du principal IAM. `pipes.amazonaws.com`

## Invocation de cibles
<a name="pipes-targets-invocation"></a>

EventBridge propose les méthodes suivantes pour invoquer une cible :
+ **Synchrone** (type d'invocation défini sur`REQUEST_RESPONSE`) : EventBridge attend une réponse de la cible avant de continuer.
+ De **manière asynchrone** (type d'invocation défini sur`FIRE_AND_FORGET`) : EventBridge n'attend pas de réponse avant de continuer.

Par défaut, pour les canaux dont les sources sont ordonnées, EventBridge invoque les cibles de manière synchrone car une réponse de la cible est nécessaire avant de passer à l'événement suivant. 

Si une source ne fait pas respecter l'ordre, telle qu'une file d'attente Amazon SQS standard, elle EventBridge peut invoquer une cible prise en charge de manière synchrone ou asynchrone. 

Avec les fonctions Lambda et les machines d’état Step Functions, vous pouvez configurer le type d’invocation.

**Note**  
Pour les machines d’état Step Functions, les [flux de travaux standard](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html) doivent être invoqués de manière asynchrone.

## Limites de taille de charge utile
<a name="pipes-targets-payload-size"></a>

EventBridge Pipes prend en charge des charges utiles allant jusqu'à 6 Mo. Cependant, la limite de charge utile effective est déterminée par la valeur la plus faible : la limite de 6 Mo de Pipes ou la taille de charge utile maximale du service cible. Par exemple :
+ Les fonctions Lambda prennent en charge des charges utiles allant jusqu'à 6 Mo. La limite effective pour un canal ciblant Lambda est donc de 6 Mo.
+ EventBridge les bus d'événements prennent en charge des charges utiles allant jusqu'à 1 Mo, de sorte que la limite effective pour un canal ciblant un bus d'événements est de 1 Mo.
+ Les machines d'état Step Functions prennent en charge des charges utiles allant jusqu'à 256 Ko. La limite effective pour un canal ciblant Step Functions est donc de 256 Ko.

Lorsque vous configurez votre canal, assurez-vous que la taille de votre charge utile, y compris les transformations appliquées par enrichissement ou transformation d'entrée, ne dépasse pas la taille de charge utile maximale de la cible.

## AWS Batch les files d'attente de travail ciblent les spécificités
<a name="pipes-targets-specifics-batch"></a>

Tous les AWS Batch `submitJob` paramètres sont configurés explicitement avec`BatchParameters`, et comme tous les paramètres Pipe, ils peuvent être dynamiques à l'aide d'un chemin JSON vers la charge utile de votre événement entrant.

## CloudWatch Spécificités des cibles du groupe de logs
<a name="pipes-targets-specifics-cwl"></a>

Que vous utilisiez un transformateur d’entrée ou non, la charge utile de l’événement est utilisée comme message du journal. Vous pouvez définir `Timestamp` (ou le nom explicite `LogStreamName` de votre destination) via `CloudWatchLogsParameters` dans `PipeTarget`. Comme pour tous les paramètres de canal, ces paramètres peuvent être dynamiques en utilisant un chemin JSON pointant vers la charge utile de votre événement entrant.

## Spécificités de la cible des tâches Amazon ECS
<a name="pipes-targets-specifics-ecs-task"></a>

Tous les paramètres `runTask` Amazon ECS sont configurés de manière explicite via `EcsParameters`. Comme pour tous les paramètres de canal, ces paramètres peuvent être dynamiques en utilisant un chemin JSON pointant vers la charge utile de votre événement entrant.

## Spécificités des cibles des fonctions Lambda et du flux de travail Step Functions
<a name="pipes-targets-specifics-lambda-stepfunctions"></a>

Lambda et Step Functions ne disposent pas d’une API par lots. Pour traiter des lots d’événements provenant d’une source de canal, le lot est converti en tableau JSON et transmis en tant qu’entrée à la cible Lambda ou Step Functions. Pour de plus amples informations, veuillez consulter [Traitement par lots et simultanéité d'Amazon EventBridge Pipes](eb-pipes-batching-concurrency.md). 

## Timestream pour les détails LiveAnalytics de la cible du tableau
<a name="pipes-targets-specifics-timestream"></a>

Les considérations à prendre en compte lors de la spécification d'une LiveAnalytics table Timestream for comme cible de canal incluent :
+ Les flux Apache Kafka (y compris ceux provenant de Amazon MSK fournisseurs tiers) ne sont actuellement pas pris en charge en tant que source de canaux.
+ Si vous avez indiqué un DynamoDB flux Kinesis ou comme source de canal, vous devez spécifier le nombre de tentatives de nouvelle tentative.

  Pour de plus amples informations, veuillez consulter [Configuration des paramètres de canal](eb-pipes-create.md#pipes-configure-pipe-settings).

## EventBridge spécificités de la cible du bus d'événements
<a name="pipes-targets-specifics-eventbridge"></a>

Lorsque vous configurez un bus d' EventBridge événements comme cible de canal, la charge utile provenant de votre canal est automatiquement placée dans la `detail` section de l' EventBridge événement. [https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetEventBridgeEventBusParameters.html](https://docs.aws.amazon.com/eventbridge/latest/pipes-reference/API_PipeTargetEventBridgeEventBusParameters.html)À utiliser pour configurer les événements `source` et `detail-type` les champs. Les deux champs prennent en charge la syntaxe de chemin JSON dynamique pour extraire des valeurs de la charge utile de votre événement. Par exemple, définissez `Source` sur `$.body.source` ou `DetailType` sur`$.data.eventType`. Vous pouvez également utiliser des transformateurs d'entrée pour modifier la structure de l'événement avant qu'elle ne soit placée `detail` sur le terrain. Pour de plus amples informations, veuillez consulter [Transformation EventBridge des entrées Amazon Pipes](eb-pipes-input-transformation.md).

# Traitement par lots et simultanéité d'Amazon EventBridge Pipes
<a name="eb-pipes-batching-concurrency"></a>

## Comportement de traitement par lots
<a name="pipes-batching"></a>

EventBridge Pipes prend en charge le traitement par lots depuis la source et vers les cibles qui le supportent. En outre, le traitement par lots jusqu'à l'enrichissement est pris en charge pour AWS Lambda et AWS Step Functions. Étant donné que différents services prennent en charge différents niveaux de traitement par lots, vous ne pouvez pas configurer un canal avec une taille de lot supérieure à celle prise en charge par la cible. Par exemple, les sources de flux Amazon Kinesis prennent en charge une taille de lot maximale de 10 000 enregistrements, mais Amazon Simple Queue Service prend en charge un maximum de 10 messages par lot en tant que cible. Par conséquent, un canal partant d’un flux Kinesis jusqu’à une file d’attente Amazon SQS peut avoir une taille de lot maximale configurée sur la source de 10.

Si vous configurez un canal avec un enrichissement ou une cible qui ne prend pas en charge le traitement par lots, vous ne pourrez pas activer le traitement par lots sur la source.

Lorsque le traitement par lots est activé sur la source, des tableaux d’enregistrements JSON sont transmis par le canal, puis mappés à l’API par lots d’un enrichissement ou d’une cible pris(e) en charge. Les [transformateurs d’entrée](eb-pipes-input-transformation.md) sont appliqués séparément sur chaque enregistrement JSON individuel du tableau, et non sur le tableau dans son ensemble. Pour obtenir des exemples de tableaux, consultez [Sources d'Amazon EventBridge Pipes](eb-pipes-event-source.md) et sélectionnez une source spécifique. Pipes utilisera l’API par lots pour l’enrichissement ou la cible pris(e) en charge, même si la taille du lot est égale à 1. Si l’enrichissement ou la cible ne possède pas d’API par lots, mais reçoit des charges utiles JSON complètes, telles que Lambda et Step Functions, l’intégralité du tableau JSON est envoyée en une seule demande. La demande sera envoyée sous forme de tableau JSON même si la taille du lot est de 1.

Si un canal est configuré pour le traitement par lots au niveau de la source, et que la cible prend en charge le traitement par lots, vous pouvez renvoyer un tableau d’éléments JSON depuis votre enrichissement. Ce tableau peut inclure un tableau plus court ou plus long que la source d’origine. Toutefois, si la taille du tableau est supérieure à la taille de lot prise en charge par la cible, le canal n’invoquera pas la cible.

### Cibles pouvant être traitées par lots prises en charge
<a name="pipes-batchable-target"></a>


| Cible | Taille maximale du lot | 
| --- | --- | 
| CloudWatch Journaux | 10 000 | 
| EventBridge bus événementiel | 10 | 
| Flux Firehose | 500 | 
| Flux Kinesis | 500 | 
| Fonction Lambda | définie par le client | 
| Machine d’état Step Functions | définie par le client | 
| Rubrique Amazon SNS | 10 | 
| File d’attente Amazon SQS | 10 | 

Les enrichissements et cibles suivants reçoivent la charge utile complète d’événements par lots à traiter et sont limités par la taille de la charge utile totale de l’événement, plutôt que par la taille du lot :
+ Machine d’état Step Functions (262 144 caractères)
+ Fonction Lambda (6 Mo)

### Défaillance partielle d’un lot
<a name="pipes-partial-batch-failure"></a>

Pour Amazon SQS et les sources de flux, telles que Kinesis et DynamoDB, Pipes prend en charge la gestion des défaillances partielles par lots en EventBridge cas de défaillance cible. Si la cible prend en charge le traitement par lots et que seule une partie du lot aboutit, réessaie EventBridge automatiquement de regrouper le reste de la charge utile. Pour le contenu le plus up-to-date enrichi, cette nouvelle tentative s'effectue sur l'ensemble du canal, y compris en réinvoquant tout enrichissement configuré.

La gestion des défaillances partielles de lot pour l’enrichissement n’est pas prise en charge.

Pour les cibles Lambda et Step Functions, vous pouvez également spécifier une défaillance partielle en renvoyant une charge utile avec une structure définie depuis la cible. Cela indique les événements qui doivent faire l’objet d’une nouvelle tentative. 

**Exemple de structure de charge utile en cas de défaillance partielle**

```
{ 
  "batchItemFailures": [ 
    {
      "itemIdentifier": "id2"
    },
    {
      "itemIdentifier": "id4"
    }
]
```

Dans l’exemple, `itemIdentifier` correspond à l’identifiant des événements gérés par votre cible à partir de leur source d’origine. Pour Amazon SQS, il s’agit de `messageId`. Pour Kinesis et DynamoDB, il s’agit de `eventID`. Pour que EventBridge Pipes puisse gérer correctement les défaillances partielles des lots provenant des cibles, ces champs doivent être inclus dans toute charge utile du tableau renvoyée par l'enrichissement.

## Comportement du débit et de la simultanéité
<a name="pipes-concurrency"></a>

Chaque événement ou lot d’événements reçu par un canal en direction d’un enrichissement ou d’une cible est considéré comme une *exécution* de canal. Un canal à l’état `STARTED` interroge en permanence les événements provenant de la source, en augmentant ou en diminuant en fonction du backlog disponible et des paramètres de traitement par lots configurés. 

Pour en savoir plus sur les quotas pour les exécutions de canal simultanées et le nombre de canaux par compte et par région, consultez [EventBridge Quotas de tuyaux](eb-quota.md#eb-pipes-limits).

Par défaut, un seul canal est mis à l’échelle en fonction du nombre maximal d’exécutions simultanées suivant, selon la source :
+ **DynamoDB** : les exécutions simultanées peuvent atteindre la valeur de `ParallelizationFactor` configurée sur le canal multipliée par le nombre de partitions dans le flux.
+ **Apache Kafka** : les exécutions simultanées peuvent atteindre le nombre de partitions sur la rubrique, c’est-à-dire 1 000 au maximum.
+ **Kinesis** — Les exécutions simultanées peuvent atteindre un niveau aussi élevé que le nombre de partitions `ParallelizationFactor` configurées sur le canal multiplié par le nombre de fragments présents dans le flux.
+ **Amazon MQ** : 5
+ **Amazon SQS** : 1 250

Si vous devez augmenter le débit d’interrogation maximal ou les limites de simultanéité, [contactez l’assistance](https://console.aws.amazon.com/support/home?#/case/create?issueType=technical).

**Note**  
Les limites d’exécution sont considérées comme des restrictions optimales en matière de sécurité. Bien que l’interrogation ne soit pas limitée au-dessous de ces valeurs, un canal ou un compte peut dépasser ces valeurs recommandées.

Les exécutions de canal sont limitées à 5 minutes maximum, enrichissement et traitement de la cible inclus. Cette limite ne peut pas être augmentée pour le moment.

Les canaux dont les sources sont strictement ordonnées (telles que les files d'attente FIFO Amazon SQS, Kinesis et DynamoDB Streams, ou les sujets Apache Kafka) sont également limités en termes de simultanéité par la configuration de la source, telle que le nombre de IDs groupes de messages pour les files d'attente FIFO ou le nombre de partitions pour les files d'attente Kinesis. Étant donné que l’ordre est strictement garanti dans le cadre de ces contraintes, un canal dont la source est ordonnée ne peut pas dépasser ces limites de simultanéité. 

# Transformation EventBridge des entrées Amazon Pipes
<a name="eb-pipes-input-transformation"></a>

Amazon EventBridge Pipes prend en charge les transformateurs d'entrée facultatifs lors du transfert de données à l'enrichissement et à la cible. Vous pouvez utiliser des transformateurs d’entrée pour remodeler la charge utile d’entrée des événements JSON afin de répondre aux besoins du service d’enrichissement ou de cible. Pour Amazon API Gateway et les destinations d'API, voici comment vous adaptez l'événement d'entrée au RESTful modèle de votre API. Les transformateurs d’entrée sont modélisés sous forme de paramètre `InputTemplate`. Il peut s’agir de texte libre, d’un chemin JSON vers la charge utile de l’événement ou d’un objet JSON qui inclut des chemins JSON en ligne vers la charge utile de l’événement. Pour l’enrichissement, la charge utile de l’événement provient de la source. Pour les cibles, la charge utile de l’événement correspond à ce qui est renvoyé par l’enrichissement, si une telle charge est configurée sur le canal. Outre les données propres au service incluses dans la charge utile de l’événement, vous pouvez utiliser des [variables réservées](#input-transform-reserved) dans `InputTemplate` pour référencer les données de votre canal.

Pour accéder aux éléments d’un tableau, utilisez la notation entre crochets.

**Note**  
EventBridge ne prend pas en charge toutes les syntaxes JSON Path et ne l'évalue pas lors de l'exécution. La syntaxe prise en charge inclut :   
notation par points (par exemple, `$.detail`)
tirets
traits de soulignement
caractères alphanumériques
index de tableau
caractères génériques (\$1)
barres obliques vers l'avant

Voici des exemples de paramètres `InputTemplate` faisant référence à la charge utile d’un événement Amazon SQS :

**Chaîne statique**

```
InputTemplate: "Hello, sender"
```

**Chemin JSON**

```
InputTemplate: <$.attributes.SenderId>
```

**Chaîne dynamique**

```
InputTemplate: "Hello, <$.attributes.SenderId>"
```

**JSON statique**

```
InputTemplate: >
{
  "key1": "value1",
  "key2": "value2",
  "key3": "value3",
}
```

**JSON dynamique**

```
InputTemplate: >
{
  "key1": "value1"
  "key2": <$.body.key>,
  "d": <aws.pipes.event.ingestion-time>
}
```

Utilisation de la notation entre crochets pour accéder à un élément dans un tableau :

```
InputTemplate: >
{
  "key1": "value1"
  "key2": <$.body.Records[3]>,
  "d": <aws.pipes.event.ingestion-time>
}
```

**Note**  
EventBridge remplace les transformateurs d'entrée lors de l'exécution pour garantir une sortie JSON valide. Pour cette raison, placez des guillemets autour des variables qui font référence aux paramètres de chemin JSON, mais ne placez pas de guillemets autour des variables qui font référence à des objets ou des tableaux JSON.

## Variables réservées
<a name="input-transform-reserved"></a>

Les modèles d’entrée peuvent utiliser les variables réservées suivantes :
+ `<aws.pipes.pipe-arn>` : Amazon Resource Name (ARN) du canal.
+ `<aws.pipes.pipe-name>` : nom du canal.
+ `<aws.pipes.source-arn>` : ARN de la source d’événement du canal.
+ `<aws.pipes.enrichment-arn>` : ARN de l’enrichissement du canal.
+ `<aws.pipes.target-arn>` : ARN de la cible du canal.
+ `<aws.pipes.event.ingestion-time>` : heure à laquelle l’événement a été reçu par le transformateur d’entrée. Il s’agit d’un horodatage ISO 8601. Cette durée est différente pour le transformateur d’entrée de l’enrichissement et le transformateur d’entrée de la cible, selon le moment où l’enrichissement a terminé de traiter l’événement.
+ `<aws.pipes.event>` : événement tel qu’il a été reçu par le transformateur d’entrée.

  Pour un transformateur d’entrée d’enrichissement, il s’agit de l’événement provenant de la source. Il contient la charge utile d’origine de la source, ainsi que des métadonnées supplémentaires propres au service. Pour obtenir des exemples propres à un service, consultez [Sources d'Amazon EventBridge Pipes](eb-pipes-event-source.md).

  Pour un transformateur d’entrée de cible, il s’agit de l’événement renvoyé par l’enrichissement, s’il est configuré, sans métadonnées supplémentaires. En tant que telle, une charge utile renvoyée par l’enrichissement peut ne pas être au format JSON. Si aucun enrichissement n’est configuré sur le canal, il s’agit de l’événement provenant de la source avec des métadonnées.
+ `<aws.pipes.event.json>` : identique à `aws.pipes.event`, mais la variable n’a de valeur que si la charge utile d’origine, provenant de la source ou renvoyée par l’enrichissement, est au format JSON. Si le canal contient un champ codé, tel que le champ `body` Amazon SQS ou `data` Kinesis, ces champs sont décodés et convertis au format JSON valide. Comme elle n’est pas mise en échappement, la variable ne peut être utilisée que comme valeur pour un champ JSON. Pour de plus amples informations, veuillez consulter [Analyse implicite des données de corps](#input-transform-implicit).

## Exemple de transformation d’entrée
<a name="input-transform-example"></a>

Voici un exemple d’événement Amazon EC2 que nous pouvons utiliser comme *exemple d’événement*.

```
{
  "version": "0",
  "id": "7bf73129-1428-4cd3-a780-95db273d1602",
  "detail-type": "EC2 Instance State-change Notification",
  "source": "aws.ec2",
  "account": "123456789012",
  "time": "2015-11-11T21:29:54Z",
  "region": "us-east-1",
  "resources": [
    "arn:aws:ec2:us-east-1:123456789012:instance/i-abcd1111"
  ],
  "detail": {
    "instance-id": "i-0123456789",
    "state": "RUNNING"
  }
}
```

Utilisons le code JSON suivant comme *transformateur*.

```
{
  "instance" : <$.detail.instance-id>,
  "state": <$.detail.state>,
  "pipeArn" : <aws.pipes.pipe-arn>,
  "pipeName" : <aws.pipes.pipe-name>,
  "originalEvent" : <aws.pipes.event.json>
}
```

La *sortie* générée est la suivante :

```
{
  "instance" : "i-0123456789",
  "state": "RUNNING",
  "pipeArn" : "arn:aws:pipe:us-east-1:123456789012:pipe/example",
  "pipeName" : "example",
  "originalEvent" : {
    ... // commented for brevity
  }
}
```

## Analyse implicite des données de corps
<a name="input-transform-implicit"></a>

Les champs suivants de la charge utile entrante peuvent être mis en échappement dans le code JSON, tels que l’objet Amazon SQS `body`, ou codés en base64, tels que l’objet Kinesis `data`. Pour le [filtrage](eb-pipes-event-filtering.md) et la transformation des entrées, EventBridge transforme ces champs en JSON valide afin que les sous-valeurs puissent être référencées directement. Par exemple, `<$.data.someKey>` pour Kinesis.

Pour que la cible reçoive la charge utile d’origine sans aucune métadonnée supplémentaire, utilisez un transformateur d’entrée avec ces données de corps, propres à la source. Par exemple, `<$.body>` pour Amazon SQS ou `<$.data>` pour Kinesis. Si la charge utile d’origine est une chaîne JSON valide (par exemple, `{"key": "value"}`), l’utilisation du transformateur d’entrée avec des données de corps propres à la source entraînera la suppression des guillemets contenus dans la charge utile source d’origine. Par exemple, `{"key": "value"}` deviendra `"{key: value}"` une fois livré à la cible. Si votre cible nécessite des charges utiles JSON valides (par exemple, EventBridge Lambda ou Step Functions), cela entraînera un échec de livraison. Pour que la cible reçoive les données source d’origine sans générer de code JSON non valide, encapsulez le transformateur d’entrée des données de corps source au format JSON. Par exemple, `{"data": <$.data>}`.

L’analyse implicite du corps peut également être utilisée pour renseigner dynamiquement les valeurs de la plupart des paramètres de cible ou d’enrichissement du canal. Pour de plus amples informations, consultez [Paramètres de chemin dynamiques](eb-pipes-event-target.md#pipes-targets-dynamic-parms).

**Note**  
Si la charge utile d’origine est au format JSON valide, ce champ contient le code JSON non mis en échappement et non codé en base64. Toutefois, si la charge utile n'est pas un JSON valide, les champs répertoriés ci-dessous sont EventBridge encodés en base64, à l'exception d'Amazon SQS.
+ **Active MQ** : `data`
+ **Kinesis** : `data`
+ **Amazon MSK** : `key` et `value`
+ **Rabbit MQ** : `data`
+ **Apache Kafka autogéré** : `key` et `value`
+ **Amazon SQS** : `body`

## Problèmes courants liés à la transformation d’entrée
<a name="eb-pipes-transform-input-issues"></a>

Voici quelques problèmes courants lors de la transformation des entrées en EventBridge tubes :
+  Pour les chaînes, des guillemets sont requis.
+  Il n'y a pas de validation lors de la création du chemin JSON pour votre modèle.
+  Si vous spécifiez une variable à mettre en correspondance avec un chemin JSON qui n’existe pas dans l’événement, cette variable n’est pas créée et n’apparaîtra pas dans la sortie.
+ Les propriétés JSON telles que `aws.pipes.event.json` ne peuvent être utilisées que comme valeur d’un champ JSON, et non en ligne dans d’autres chaînes.
+  EventBridge n'échappe pas aux valeurs extraites par *Input Path*, lors du remplissage du *modèle d'entrée* pour une cible.
+ Si un chemin JSON fait référence à un objet ou à un tableau JSON, mais que la variable est référencée dans une chaîne, EventBridge supprime tous les guillemets internes pour garantir la validité de la chaîne. Par exemple, « Body is <\$1.body> » entraînerait la EventBridge suppression des guillemets de l'objet. 

  Par conséquent, si vous souhaitez générer un objet JSON basé sur une seule variable de chemin JSON, vous devez le placer sous forme de clé. Dans cet exemple, `{"body": <$.body>}`.
+ Les guillemets ne sont pas obligatoires pour les variables qui représentent des chaînes. Ils sont autorisés, mais EventBridge Pipes ajoute automatiquement des guillemets aux valeurs des variables de chaîne pendant la transformation, afin de garantir que le résultat de la transformation est un JSON valide. EventBridge Pipes n'ajoute pas de guillemets aux variables qui représentent des objets ou des tableaux JSON. N’ajoutez pas de guillemets pour les variables qui représentent des objets ou des tableaux JSON.

  Par exemple, le modèle d’entrée suivant inclut des variables qui représentent à la fois des chaînes et des objets JSON :

  ```
  {
    "pipeArn" : <aws.pipes.pipe-arn>,
    "pipeName" : <aws.pipes.pipe-name>,
    "originalEvent" : <aws.pipes.event.json>
  }
  ```

  Le résultat est un code JSON valide avec des guillemets appropriés :

  ```
  {
    "pipeArn" : "arn:aws:events:us-east-2:123456789012:pipe/example",
    "pipeName" : "example",
    "originalEvent" : {
      ... // commented for brevity
    }
  }
  ```
+ Pour les enrichissements ou les cibles Lambda ou Step Functions, les lots sont livrés à la cible sous forme de tableaux JSON, même si la taille du lot est de 1. Cependant, les transformateurs d’entrée seront toujours appliqués aux enregistrements individuels du tableau JSON, et non au tableau dans son ensemble. Pour de plus amples informations, veuillez consulter [Traitement par lots et simultanéité d'Amazon EventBridge Pipes](eb-pipes-batching-concurrency.md).
+ Les transformateurs d'entrée et le filtrage peuvent extraire des valeurs JSON qui ont été codées en chaîne une fois, mais pas des valeurs codées en chaîne deux fois. Cela se produit généralement lorsqu'un message Amazon SNS est envoyé à Amazon SQS. Lorsqu'Amazon SQS reçoit le message Amazon SNS, il le met en chaîne dans son intégralité. Lorsque Pipes reçoit ensuite ce message Amazon SQS, le contenu du message Amazon SNS apparaît dans `body` le champ et est accessible. Toutefois, si le `Message` champ Amazon SNS lui-même contient du JSON sous forme de chaînes, ce contenu imbriqué est codé deux fois et n'est pas accessible par les transformateurs ou les filtres d'entrée. Par exemple, `<$.body.TopicArn>` est accessible, mais ne l'`<$.body.Message.operation>`est pas si le `Message` champ contient du JSON sous forme de chaînes, tel que. `"{\\\"operation\\\":\\\"UPDATE\\\",\\\"email\\\":\\\"user@example.com\\\"}"`

  Pour contourner cette limitation, utilisez une étape d'enrichissement avec une fonction Lambda pour analyser le contenu codé deux fois et extraire les valeurs imbriquées. Pour plus d'informations sur l'enrichissement, consultez[Enrichissement](pipes-enrichment.md).

# Enregistrement des performances d'Amazon EventBridge Pipes
<a name="eb-pipes-logs"></a>

EventBridge La journalisation des canaux vous permet de demander à EventBridge Pipes d'envoyer des enregistrements détaillant les performances des canaux aux AWS services pris en charge. Utilisez les journaux pour en savoir plus sur les performances d’exécution de votre canal et pour faciliter le dépannage et le débogage.

Vous pouvez sélectionner les AWS services suivants comme *destinations de log vers* lesquelles EventBridge Pipes livre des enregistrements :
+ CloudWatch Journaux

  EventBridge fournit des enregistrements de journaux au groupe de CloudWatch journaux de journaux spécifié. 

  Utilisez CloudWatch les journaux pour centraliser les journaux de tous les systèmes, applications et AWS services que vous utilisez, au sein d'un seul service hautement évolutif. Pour plus d'informations, consultez la section [Utilisation des groupes de journaux et des flux](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html) de * CloudWatch journaux dans le guide de l'utilisateur Amazon Logs*.
+ Journaux de diffusion de Firehose

  EventBridge fournit des enregistrements de journal à un flux de diffusion Firehose. 

  Amazon Data Firehose est un service entièrement géré qui fournit des données de streaming en temps réel à des destinations telles que certains AWS services, ainsi qu'à tout point de terminaison HTTP personnalisé ou à tout point de terminaison HTTP appartenant à des fournisseurs de services tiers pris en charge. Pour plus d'informations, consultez la section [Création d'un flux de diffusion Amazon Data Firehose](https://docs.aws.amazon.com/firehose/latest/dev/basic-create.html) dans le guide de l'utilisateur *d'Amazon Data Firehose*.
+ Journaux Amazon S3

  EventBridge fournit les enregistrements de journal sous forme d'objets Amazon S3 au compartiment spécifié.

  Amazon S3 est un service de stockage d'objets qui offre une évolutivité, une disponibilité des données, une sécurité et des performances de pointe. Pour plus d’informations, consultez [Chargement, téléchargement et utilisation des objets dans Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/uploading-downloading-objects.html) dans le *Guide de l’utilisateur Amazon Simple Storage Service*.

## Comment fonctionne la journalisation sur Amazon EventBridge Pipes
<a name="eb-pipes-logs-overview"></a>

Une *exécution* de canal est un événement ou un lot d'événements reçu par un canal qui se dirige vers une and/or cible d'enrichissement. Si cette option est activée, EventBridge génère un enregistrement de journal pour chaque étape d'exécution exécutée lors du traitement du lot d'événements. Les informations contenues dans l’enregistrement s’appliquent au lot d’événements, qu’il s’agisse d’un événement unique ou de 10 000 événements au maximum.

Vous pouvez configurer la taille du lot d’événements sur la source et la cible du canal. Pour de plus amples informations, veuillez consulter [Traitement par lots et simultanéité d'Amazon EventBridge Pipes](eb-pipes-batching-concurrency.md).

Les données d’enregistrement envoyées à chaque destination de journal sont les mêmes.

Si une destination Amazon CloudWatch Logs est configurée, les enregistrements de journal envoyés à toutes les destinations sont limités à 256 Ko. Les champs seront tronqués si nécessaire.

Vous pouvez personnaliser les enregistrements EventBridge envoyés aux destinations de journal sélectionnées de la manière suivante :
+ Vous pouvez spécifier le *niveau de journalisation*, qui détermine les étapes d'exécution pour lesquelles les EventBridge enregistrements sont envoyés aux destinations de journalisation sélectionnées. Pour de plus amples informations, veuillez consulter [Spécification du niveau de journalisation des EventBridge tuyaux](#eb-pipes-logs-level).
+ Vous pouvez spécifier si EventBridge Pipes inclut les données d'exécution dans les enregistrements des étapes d'exécution lorsque cela est pertinent. Ces données comprennent : 
  + La charge utile du lot d’événements
  + La demande envoyée au service d' AWS enrichissement ou au service cible
  + La réponse renvoyée par le service AWS d'enrichissement ou le service cible

  Pour de plus amples informations, veuillez consulter [Inclure les données d'exécution dans les logs de EventBridge Pipes](#eb-pipes-logs-execution-data).

## Spécification du niveau de journalisation des EventBridge tuyaux
<a name="eb-pipes-logs-level"></a>

Vous pouvez spécifier les types d'étapes d'exécution pour lesquelles des EventBridge enregistrements sont envoyés aux destinations de journal sélectionnées. 

Choisissez parmi les niveaux de détail suivants à inclure dans les enregistrements de journal. Le niveau de journalisation s’applique à toutes les destinations de journal spécifiées pour le canal. Chaque niveau de journalisation inclut les étapes d’exécution des niveaux de journalisation précédents.
+ **OFF** — EventBridge n'envoie aucun enregistrement vers les destinations de journal spécifiées. Il s’agit du paramètre par défaut.
+ **ERREUR** — EventBridge envoie tous les enregistrements relatifs aux erreurs générées lors de l'exécution du canal vers les destinations de journal spécifiées.
+ **INFO** — EventBridge envoie tous les enregistrements relatifs aux erreurs, et sélectionne les autres étapes effectuées lors de l'exécution du canal vers les destinations de journal spécifiées.
+ **TRACE** — EventBridge envoie tous les enregistrements générés au cours de n'importe quelle étape de l'exécution du canal vers les destinations de journal spécifiées.

Dans la EventBridge console, CloudWatch les journaux sont sélectionnés comme destination par défaut, tout comme le niveau du `ERROR` journal. Ainsi, par défaut, EventBridge Pipes crée un nouveau groupe de CloudWatch journaux auquel il envoie des enregistrements contenant le `ERROR` niveau de détail. Aucune valeur par défaut n’est sélectionnée lorsque vous configurez les journaux par programmation. 

Le tableau suivant répertorie les étapes d’exécution incluses dans chaque niveau de journalisation.


****  

| Step (Étape) | TRACE | INFO | ERROR | OFF | 
| --- | --- | --- | --- | --- | 
|  Échec de l'exécution  | x | h/24, j/7 | x |   | 
|  Échec partiel de l’exécution  | x | h/24, j/7 | x |  | 
|  Exécution commencée  | x | x |   |   | 
|  Réussite de l'exécution  | x | x |   |   | 
|  Exécution limitée  | x | h/24, j/7 | x |   | 
|  Execution Timeout (Délai d'exécution)  | x | h/24, j/7 | x |   | 
|  Échec de l’invocation d’enrichissement  | x | h/24, j/7 | x |  | 
|  Invocation d’enrichissement ignorée  | x | x |  |  | 
|  L’invocation d’enrichissement a démarré  | x |  |  |  | 
|  Réussite de l’invocation d’enrichissement  | x |  |  |  | 
|  Début de l’étape d’enrichissement  | x | x |  |  | 
|  Échec de l’étape d’enrichissement  | x | h/24, j/7 | x |  | 
|  Réussite de l’étape d’enrichissement  | x | x |  |  | 
|  Echec de la transformation d’enrichissement  | x | h/24, j/7 | x |  | 
|  La transformation d’enrichissement a démarré  | x |  |  |  | 
|  Réussite de la transformation d’enrichissement  | x |  |  |  | 
|  Échec de l’invocation de la cible  | x | h/24, j/7 | x |  | 
|  Échec partiel de l’invocation de la cible  | x | h/24, j/7 | x |  | 
|  Invocation de la cible ignorée  | x |  |  |  | 
|  L’invocation de la cible a démarré  | x |  |  |  | 
|  Réussite de l’invocation de la cible  | x |  |  |  | 
|  Début de l’étape de la cible  | x | x |  |  | 
|  Échec de l’étape de la cible  | x | h/24, j/7 | x |  | 
|  Échec partiel de l’étape de la cible  | x | h/24, j/7 | x |  | 
|  Étape de la cible ignorée  | x |  |  |  | 
|  Réussite de l’étape de la cible  | x | x |  |  | 
|  Échec de la transformation de la cible  | x | h/24, j/7 | x |  | 
|  La transformation de la cible a démarré  | x |  |  |  | 
|  Réussite de la transformation de la cible  | x |  |  |  | 

## Inclure les données d'exécution dans les logs de EventBridge Pipes
<a name="eb-pipes-logs-execution-data"></a>

Vous pouvez spécifier EventBridge pour inclure les *données d'exécution* dans les enregistrements qu'il génère. Les données d’exécution incluent des champs représentant la charge utile du lot d’événements, ainsi que la demande envoyée à l’enrichissement et à la cible et la réponse de ces derniers.

Les données d’exécution sont utiles pour le dépannage et le débogage. Le champ `payload` contient le contenu réel de chaque événement inclus dans le lot, ce qui vous permet de corréler des événements individuels à une exécution de canal spécifique.

Si vous choisissez d’inclure les données d’exécution, elles sont incluses pour toutes les destinations de journal spécifiées pour le canal.

**Important**  
Ces champs peuvent contenir des informations sensibles. EventBridge ne tente pas de supprimer le contenu de ces champs pendant la journalisation.

Lorsque vous incluez des données d'exécution, EventBridge ajoutez les champs suivants aux enregistrements concernés : 
+ **`payload`**

  Représente le contenu du lot d’événements traité par le canal.

  EventBridge inclut le `payload` champ dans les enregistrements générés aux étapes où le contenu du lot d'événements peut avoir été mis à jour. Ces étapes sont les suivantes :
  + `EXECUTION_STARTED`
  + `ENRICHMENT_TRANSFORMATION_SUCCEEDED`
  + `ENRICHMENT_STAGE_SUCCEEDED`
  + `TARGET_TRANSFORMATION_SUCCEEDED`
  + `TARGET_STAGE_SUCCEEDED`
+ **`awsRequest`**

  Représente la demande envoyée à l’enrichissement ou à la cible sous forme de chaîne JSON. Pour les demandes envoyées à une destination d’API, il s’agit de la requête HTTP envoyée à ce point de terminaison.

  EventBridge inclut le `awsRequest` champ dans les enregistrements générés lors des dernières étapes de l'enrichissement et du ciblage, c'est-à-dire après avoir EventBridge exécuté ou tenté d'exécuter la demande par rapport à l'enrichissement ou au service cible spécifié. Ces étapes sont les suivantes :
  + `ENRICHMENT_INVOCATION_FAILED`
  + `ENRICHMENT_INVOCATION_SUCCEEDED`
  + `TARGET_INVOCATION_FAILED`
  + `TARGET_INVOCATION_PARTIALLY_FAILED`
  + `TARGET_INVOCATION_SUCCEEDED`
+ **`awsResponse`**

  Représente la réponse renvoyée par l’enrichissement ou la cible, au format JSON. Pour les demandes envoyées à une destination d’API, il s’agit de la réponse HTTP renvoyée par ce point de terminaison.

  De même`awsRequest`, EventBridge inclut le `awsResponse` champ dans les enregistrements générés lors des dernières étapes de l'enrichissement et du ciblage, c'est-à-dire après avoir EventBridge exécuté ou tenté d'exécuter une demande concernant le service d'enrichissement ou le service cible spécifié et reçu une réponse. Ces étapes sont les suivantes :
  + `ENRICHMENT_INVOCATION_FAILED`
  + `ENRICHMENT_INVOCATION_SUCCEEDED`
  + `TARGET_INVOCATION_FAILED`
  + `TARGET_INVOCATION_PARTIALLY_FAILED`
  + `TARGET_INVOCATION_SUCCEEDED`

Pour obtenir une description des étapes d’exécution de canal, consultez [EventBridge Étapes d'exécution des tuyaux](eb-pipes-logs-execution-steps.md).

### Tronquer les données d'exécution dans les enregistrements du journal EventBridge Pipes
<a name="eb-pipes-logs-execution-data-truncation"></a>

Si vous choisissez d' EventBridge inclure les données d'exécution dans les enregistrements du journal d'un canal, il est possible qu'un enregistrement dépasse la limite de 256 Ko. Pour éviter cela, tronque EventBridge automatiquement les champs de données d'exécution, dans l'ordre suivant. EventBridge tronque entièrement chaque champ avant de tronquer le champ suivant. EventBridge tronque les données des champs simplement en supprimant des caractères à la fin de la chaîne de données ; aucune tentative n'est faite pour tronquer en fonction de l'importance des données, et la troncature invalidera le formatage JSON.
+ `payload`
+ `awsRequest`
+ `awsResponse`

Si EventBridge des champs sont tronqués dans l'événement, le `truncatedFields` champ inclut une liste des champs de données tronqués.

## Signalement d'erreurs dans les enregistrements du journal EventBridge Pipes
<a name="eb-pipes-logs-errors"></a>

EventBridge inclut également les données d'erreur, lorsqu'elles sont disponibles, dans les étapes d'exécution du canal qui représentent les états de défaillance. Les étapes sont les suivantes :
+ `ExecutionThrottled`
+ `ExecutionTimeout`
+ `ExecutionFailed`
+ `ExecutionPartiallyFailed`
+ `EnrichmentTransformationFailed`
+ `EnrichmentInvocationFailed`
+ `EnrichmentStageFailed`
+ `TargetTransformationFailed`
+ `TargetInvocationFailed`
+ `TargetInvocationPartiallyFailed`
+ `TargetStageFailed`
+ `TargetStagePartiallyFailed`

# EventBridge Étapes d'exécution des tuyaux
<a name="eb-pipes-logs-execution-steps"></a>

En comprenant le déroulement des étapes d’exécution d’un canal, vous pourrez mieux résoudre les problèmes liés aux performances de votre canal ou les déboguer à l’aide de journaux.

Une *exécution* de canal est un événement ou un lot d’événements reçu par un canal en direction d’un enrichissement ou d’une cible. Si cette option est activée, EventBridge génère un enregistrement de journal pour chaque étape d'exécution exécutée lors du traitement du lot d'événements. 

Globalement, l’exécution comporte deux *étapes* ou ensemble d’étapes : l’enrichissement et la cible. Chacune de ces étapes comprend des étapes de transformation et d’invocation.

Les principales étapes d’une exécution de canal réussie sont les suivantes :
+ L’exécution du canal démarre.
+ L’exécution passe à l’étape de l’enrichissement si vous avez spécifié un enrichissement pour les événements. Si vous n’avez pas spécifié d’enrichissement, l’exécution passe à l’étape de la cible.

  Au cours de l’étape d’enrichissement, le canal effectue la transformation que vous avez spécifiée, puis invoque l’enrichissement.
+ Au cours de l’étape de cible, le canal effectue la transformation que vous avez spécifiée, puis invoque la cible. 

  Si vous n’avez pas spécifié de transformation ou de cible, l’exécution ignore l’étape de la cible.
+ L’exécution du canal se termine avec succès.

Le schéma ci-dessous illustre le déroulement des étapes. Les lignes pointillées représentent les chemins divergents.

![\[Une exécution en chaîne comprenant des étapes d'enrichissement et de ciblage, avec des étapes de transformation et d'invocation.\]](http://docs.aws.amazon.com/fr_fr/eventbridge/latest/userguide/images/pipes-logging-overview_eventbridge_architecture.svg)


Le schéma ci-dessous présente une vue détaillée du flux d’exécution d’un canal, avec toutes les étapes d’exécution possibles représentées. Les lignes pointillées représentent à nouveau les chemins divergents.

Pour obtenir la liste complète des étapes d’exécution d’un canal, consultez [Spécification du niveau de journalisation des EventBridge tuyaux](eb-pipes-logs.md#eb-pipes-logs-level).

![\[Le flux d'exécution du tube, y compris toutes les étapes et les étapes avec tous les résultats possibles.\]](http://docs.aws.amazon.com/fr_fr/eventbridge/latest/userguide/images/pipes-logging-detailed_eventbridge_architecture.svg)


Notez que l’invocation de la cible peut entraîner une défaillance partielle du lot. Pour de plus amples informations, veuillez consulter [Comportement de traitement par lots](eb-pipes-batching-concurrency.md#pipes-batching).

# EventBridge Référence du schéma du journal des tuyaux
<a name="eb-pipes-logs-schema"></a>

La référence suivante détaille le schéma des enregistrements du journal EventBridge Pipes.

Chaque enregistrement de journal représente une étape d’exécution du canal et peut contenir jusqu’à 10 000 événements si la source et la cible du canal ont été configurées pour le traitement par lots.

Pour de plus amples informations, veuillez consulter [Enregistrement des performances d'Amazon EventBridge Pipes](eb-pipes-logs.md).

```
{
    "executionId": "guid",
    "timestamp": "date_time",
    "messageType": "execution_step",
    "resourceArn": "arn:aws:pipes:region:account:pipe/pipe-name",
    "logLevel": "TRACE | INFO | ERROR",
    "payload": "{}",
    "awsRequest": "{}"
    "awsResponse":"{}"
    "truncatedFields": ["awsRequest","awsResponse","payload"],
    "error": {
        "httpStatusCode": code,
        "message": "error_message",
        "details": "",
        "awsService": "service_name",
        "requestId": "service_request_id"
    }
}
```

**executionId**  <a name="pipe-log-schema-execution-id"></a>
ID de l’exécution de canal.  
Une exécution de canal est un événement ou un lot d’événements reçu par un canal en direction d’un enrichissement ou d’une cible. Pour de plus amples informations, veuillez consulter [Comment fonctionne la journalisation sur Amazon EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-overview).

**timestamp**  <a name="pipe-log-schema-timestamp"></a>
Date et heure auxquelles l’événement de journal a été émis.  
Unité : milliseconde

**messageType**  <a name="pipe-log-schema-message-type"></a>
Étape d’exécution du canal pour laquelle l’enregistrement a été généré.  
Pour plus d’informations sur les étapes d’exécution d’un canal, consultez [EventBridge Étapes d'exécution des tuyaux](eb-pipes-logs-execution-steps.md).

**resourceArn**  <a name="pipe-log-schema-resource-arn"></a>
Amazon Resource Name (ARN) du canal.

**logLevel**  <a name="pipe-log-schema-loglevel"></a>
Niveau de détail spécifié pour le journal du canal.  
*Valeurs valides* : `ERROR` \$1 `INFO` \$1 `TRACE`  
Pour de plus amples informations, veuillez consulter [Spécification du niveau de journalisation des EventBridge tuyaux](eb-pipes-logs.md#eb-pipes-logs-level).

**payload**  <a name="pipe-log-schema-payload"></a>
Contenu du lot d’événements traité par le canal.  
EventBridge inclut ce champ uniquement si vous avez spécifié d'inclure les données d'exécution dans les journaux de ce canal. Pour de plus amples informations, consultez [Inclure les données d'exécution dans les logs de EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).  
Ces champs peuvent contenir des informations sensibles. EventBridge ne tente pas de supprimer le contenu de ces champs pendant la journalisation.
Pour de plus amples informations, veuillez consulter [Inclure les données d'exécution dans les logs de EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).

**awsRequest**  <a name="pipe-log-schema-aws-request"></a>
Demande envoyée à l’enrichissement ou à la cible, au format JSON. Pour les demandes envoyées à une destination d’API, il s’agit de la requête HTTP envoyée à ce point de terminaison.  
EventBridge inclut ce champ uniquement si vous avez spécifié d'inclure les données d'exécution dans les journaux de ce canal. Pour de plus amples informations, consultez [Inclure les données d'exécution dans les logs de EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).  
Ces champs peuvent contenir des informations sensibles. EventBridge ne tente pas de supprimer le contenu de ces champs pendant la journalisation.
Pour de plus amples informations, veuillez consulter [Inclure les données d'exécution dans les logs de EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).

**awsResponse**  <a name="pipe-log-schema-aws-response"></a>
Réponse renvoyée par l’enrichissement ou la cible, au format JSON. Pour les demandes envoyées à une destination d’API, il s’agit de la réponse HTTP renvoyée par ce point de terminaison, pas la réponse renvoyée par le service de destination d’API lui-même.  
EventBridge inclut ce champ uniquement si vous avez spécifié d'inclure les données d'exécution dans les journaux de ce canal. Pour de plus amples informations, consultez [Inclure les données d'exécution dans les logs de EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).  
Ces champs peuvent contenir des informations sensibles. EventBridge ne tente pas de supprimer le contenu de ces champs pendant la journalisation.
Pour de plus amples informations, veuillez consulter [Inclure les données d'exécution dans les logs de EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data).

**truncatedFields**  <a name="pipe-log-schema-truncated-fields"></a>
La liste de tous les champs de données d'exécution EventBridge a été tronquée pour maintenir l'enregistrement en dessous de la limite de taille de 256 Ko.  
S'il EventBridge n'est pas nécessaire de tronquer aucun des champs de données d'exécution, ce champ est présent mais`null`.  
Pour de plus amples informations, veuillez consulter [Tronquer les données d'exécution dans les enregistrements du journal EventBridge Pipes](eb-pipes-logs.md#eb-pipes-logs-execution-data-truncation).

**error**  <a name="pipe-log-schema-error"></a>
Contient des informations relatives aux erreurs générées lors de cette étape d’exécution du canal.   
Si aucune erreur n’a été générée lors de cette étape d’exécution du canal, ce champ est présent mais `null`.    
**httpStatusCode**  <a name="pipe-log-schema-http-status-code"></a>
Code de statut HTTP renvoyé par le service appelé.  
**message**  <a name="pipe-log-schema-message"></a>
Message d’erreur renvoyé par le service appelé.  
**details**  <a name="pipe-log-schema-details"></a>
Toute information d’erreur détaillée renvoyée par le service appelé.  
**awsService**  <a name="pipe-log-schema-aws-service"></a>
Nom du service appelé.  
**requestId**  <a name="pipe-log-schema-request-id"></a>
ID de cette demande provenant du service appelé.

# Enregistrement et surveillance d'Amazon EventBridge Pipes à l'aide d'Amazon CloudWatch Logs
<a name="eb-pipes-monitoring"></a>

Vous pouvez enregistrer EventBridge les invocations de Pipes à l'aide de métriques CloudTrail et surveiller leur état de santé. CloudWatch 

## CloudWatch métriques
<a name="pipes-monitoring-cloudwatch"></a>

EventBridge Pipes envoie des métriques à Amazon CloudWatch toutes les minutes, qu'il s'agisse d'une exécution limitée d'un canal ou d'une cible invoquée avec succès.


| Métrique | Description | Dimensions | Uunités | 
| --- | --- | --- | --- | 
|  `Concurrency`  |  Nombre d’exécutions simultanées d’un canal.  | AwsAccountId | Aucune | 
| `Duration` |  Durée d’exécution du canal.  | PipeName | Millisecondes | 
|  `EventCount`  |  Nombre d’événements traités par un canal.  | PipeName | Aucune | 
|  `EventSize`  |  Taille de la charge utile de l’événement qui a invoqué le canal.  | PipeName | Octets | 
|  `ExecutionThrottled`  |  Nombre d’exécutions d’un canal qui ont été limitées.  Cette valeur est de `0` si aucune exécution n’a été limitée.   | AwsAccountId, PipeName | Aucune | 
|  `ExecutionTimeout`  |  Nombre d’exécutions d’un canal qui ont expiré avant la fin de l’exécution.  Cette valeur est de `0` si aucune exécution n’a expiré.   | PipeName | Aucune | 
|  `ExecutionFailed`  |  Nombre d’exécutions d’un canal ayant échoué.  Cette valeur est de `0` si aucune exécution n’a échoué.   | PipeName | Aucune | 
|  `ExecutionPartiallyFailed`  |  Nombre d’exécutions d’un canal ayant partiellement échoué.  Cette valeur est de `0` si aucune exécution n’a partiellement échoué.   | PipeName | Aucune | 
|  `EnrichmentStageDuration`  |  Durée de l’étape d’enrichissement.  | PipeName | Millisecondes | 
|  `EnrichmentStageFailed`  |  Nombre d’exécutions de l’étape d’enrichissement d’un canal ayant échoué.  Cette valeur est de `0` si aucune exécution n’a échoué.   | PipeName | Aucune | 
| `Invocations` |  Nombre total d’invocations.  | AwsAccountId, PipeName | Aucune | 
|  `TargetStageDuration`  |  Durée de l’étape de la cible.  | PipeName | Millisecondes | 
|  `TargetStageFailed`  |  Nombre d’exécutions de l’étape de la cible d’un canal ayant échoué.  Cette valeur est de `0` si aucune exécution n’a échoué.   | PipeName | Aucune | 
| `TargetStagePartiallyFailed` | Nombre d’exécutions de l’étape de la cible d’un canal ayant partiellement échoué.  Cette valeur est de `0` si aucune exécution de l’étape de la cible n’a partiellement échoué.   | PipeName | Aucune | 
| `TargetStageSkipped` | Nombre d’exécutions de l’étape de la cible d’un canal qui ont été ignorées (en raison du renvoi d’une charge utile vide par l’enrichissement, par exemple).  | PipeName | Nombre | 

## Dimensions pour les CloudWatch métriques
<a name="pipes-monitoring-cloudwatch-dimensions"></a>

CloudWatch les métriques ont des *dimensions*, ou des attributs triables, qui sont répertoriés ci-dessous.


|  Dimension  |  Description  | 
| --- | --- | 
|  AwsAccountId  |  Filtre les métriques disponibles par ID de compte.  | 
|  PipeName  |  Filtre les métriques disponibles par nom de canal.  | 

# Gestion EventBridge des erreurs et résolution des problèmes liés à Amazon Pipes
<a name="eb-pipes-error-troubleshooting"></a>

Comprendre les types d'erreurs que les EventBridge tuyaux peuvent rencontrer et comment EventBridge gérer ces erreurs peut vous aider à résoudre les problèmes liés à vos tuyaux.

## Comportement de nouvelle tentative et gestion des erreurs
<a name="eb-pipes-error-handling"></a>

EventBridge Pipes réessaie automatiquement l'enrichissement et l'invocation de la cible en cas d' AWS échec réessayable avec le service source, le service d'enrichissement ou le service cible, ou. EventBridge Toutefois, en cas d’échec dû à la mise en œuvre de l’enrichissement ou du client cible, le débit d’interrogation du canal diminuera progressivement. En cas d’erreurs 4xx quasi continues (telles que les problèmes d’autorisation avec des ressources IAM ou manquantes), le canal peut être automatiquement désactivé et `StateReason` peut comporter un message explicatif.

## Erreurs d’invocation du canal et comportement de nouvelle tentative
<a name="eb-pipes-error-invoke"></a>

Lorsque vous invoquez un canal, deux principaux types d’erreurs peuvent se produire : les *erreurs internes au canal* et les *erreurs d’invocation du client*.

### Erreurs internes au canal
<a name="eb-pipes-error-invoke-internal"></a>

Les erreurs internes à Pipes sont des erreurs résultant d'aspects de l'invocation gérés par le service EventBridge Pipes. 

Ces types d’erreurs peuvent inclure les problèmes suivants :
+ Échec de la connexion HTTP lors de la tentative d'appel du service cible du client
+ Baisse temporaire de la disponibilité sur le service de canal lui-même.

En général, EventBridge Pipes réessaie les erreurs internes un nombre indéfini de fois et ne s'arrête que lorsque l'enregistrement expire dans la source. 

Pour les canaux dotés d'une source de flux, EventBridge Pipes ne compte pas les tentatives pour des erreurs internes par rapport au nombre maximum de tentatives spécifié dans la politique de nouvelles tentatives pour la source de flux. Pour les canaux contenant une source Amazon SQS, EventBridge Pipes ne compte pas les tentatives pour des erreurs internes par rapport au nombre maximal de réceptions pour la source Amazon SQS. 

### Erreurs d’invocation du client
<a name="eb-pipes-error-invoke-customer"></a>

Les erreurs d’invocation du client sont des erreurs résultant de la configuration ou du code géré par l’utilisateur. 

Ces types d’erreurs peuvent inclure les problèmes suivants :
+ Autorisations insuffisantes sur le canal pour invoquer la cible.
+ Erreur logique dans un point de terminaison Lambda, Step Functions, de destination d’API ou API Gateway client invoqué de manière synchrone.

Pour les erreurs d'invocation du client, EventBridge Pipes procède comme suit :
+ Pour les canaux dotés d'une source de flux, EventBridge Pipes réessaie jusqu'à la durée maximale de tentative définie dans la politique de relance des canaux ou jusqu'à l'expiration de l'âge maximum d'enregistrement, selon la première éventualité.
+ Pour les canaux contenant une source Amazon SQS, EventBridge Pipes tente à nouveau de corriger une erreur client jusqu'au nombre maximal de destinataires dans la file d'attente source.
+ Pour les canaux contenant une source Apache Kafka ou Amazon MQ EventBridge , réessaie les erreurs du client de la même manière que les erreurs internes.

Pour les canaux dotés de cibles de calcul, vous devez appeler le canal de manière synchrone pour que EventBridge Pipes soit conscient des erreurs d'exécution générées par la logique de calcul du client et réessaie de corriger ces erreurs. Pipes ne peut pas effectuer de nouvelle tentative en cas d’erreur émise par la logique d’un flux de travaux standard Step Functions, car cette cible doit être invoquée de manière asynchrone.

Pour Amazon SQS et les sources de flux, telles que Kinesis et DynamoDB, Pipes prend en charge la gestion des défaillances partielles par lots en EventBridge cas de défaillance cible. Pour plus d’informations, consultez [Défaillance partielle d’un lot](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-batching-concurrency.html#pipes-partial-batch-failure).

## Chronométrage des nouvelles tentatives de la source Amazon SQS avec maxBatchWindow InSeconds
<a name="eb-pipes-sqs-retry-timing"></a>

Lorsque vous utilisez une file d'attente Amazon SQS comme source de canal, le comportement du chronométrage des nouvelles tentatives varie selon que vous configurez le paramètre : `maxBatchWindowInSeconds`
+ **Sans maxBatchWindow InSeconds** : le sondeur SQS utilise le paramètre de délai de visibilité de la file d'attente pour les nouvelles tentatives. Lorsque le traitement échoue, les messages restent masqués pendant la durée du délai de visibilité avant de pouvoir être réessayés. Pour réduire les délais de nouvelle tentative, configurez le délai de visibilité de la file d'attente à une valeur adaptée à votre cas d'utilisation.
+ **Avec maxBatchWindow InSeconds** — Le sondeur SQS définit dynamiquement le délai de visibilité pour les messages interrogés à l'aide de la formule :. `functionTimeout + maxBatchWindowInSeconds + 30 seconds` Pour EventBridge Pipes, le délai d'expiration de la fonction est de 7 minutes, soit un délai de visibilité d'environ 7,5 minutes plus votre valeur configurée`maxBatchWindowInSeconds`. Lorsque le traitement échoue, les messages restent masqués pendant cette période prolongée avant de pouvoir être réessayés.

Ce comportement est particulièrement pertinent lors de l'utilisation de [réponses partielles par lots](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure). Si vous avez besoin de réessayer plus rapidement, évitez de définir `maxBatchWindowInSeconds` et comptez plutôt sur le délai de visibilité configuré pour la file d'attente.

## Comportement d’une DLQ de canal
<a name="eb-pipes-dlq-behavior"></a>

Un canal hérite du comportement de file d’attente de lettres mortes (DLQ) de la source : 
+ Si la file d’attente Amazon SQS source comporte une DLQ configurée, les messages y sont automatiquement livrés une fois le nombre de tentatives spécifié atteint. 
+ Pour les sources de flux, telles que les flux DynamoDB et Kinesis, vous pouvez configurer une DLQ pour les événements de canal et de routage. Les sources de flux DynamoDB et Kinesis prennent en charge les files d’attente Amazon SQS et les rubriques Amazon SNS en tant que cibles de DLQ.

Si vous spécifiez `DeadLetterConfig` pour un canal avec une source Kinesis ou DynamoDB, assurez-vous que la propriété `MaximumRecordAgeInSeconds` du canal est inférieure à la propriété `MaximumRecordAge` de l’événement source. `MaximumRecordAgeInSeconds` contrôle le moment où l’interrogateur du canal abandonne l’événement et le livre à la DLQ. `MaximumRecordAge` contrôle la durée pendant laquelle le message reste visible dans le flux source avant d’être supprimé. Par conséquent, définissez `MaximumRecordAgeInSeconds` sur une valeur inférieure à la propriété `MaximumRecordAge` source afin que le délai entre le moment où l’événement est envoyé à la DLQ et le moment où il est automatiquement supprimé par la source soit suffisant pour que vous puissiez déterminer pourquoi l’événement a été envoyé à la DLQ.

Le `MaximumRecordAgeInSeconds` paramètre s'applique indépendamment du comportement des nouvelles tentatives. Lorsque vous interrogez une source de flux, si l'âge d'un enregistrement dépasse cette `MaximumRecordAgeInSeconds` valeur, EventBridge Pipes ne traitera pas cet enregistrement, qu'il existe ou non une situation de nouvelle tentative. Ces enregistrements sont envoyés directement au DLQ (s'il est configuré) sans aucune tentative de traitement.

Pour les sources Amazon MQ, la DLQ peut être configurée directement sur l’agent de messages.

EventBridge Pipes ne prend pas en charge le premier entré, premier sorti (FIFO) DLQs pour les sources de flux.

EventBridge Pipes ne prend pas en charge le DLQ pour les sources de flux Amazon MSK et les sources de flux Apache Kafka autogérées.

## États de défaillance d’un canal
<a name="eb-pipes-failure-states"></a>

La création, la suppression et la mise à jour de canaux sont des opérations asynchrones qui peuvent entraîner un état de défaillance. De même, un canal peut être automatiquement désactivé en raison de défaillances. Dans tous les cas, la propriété `StateReason` du canal fournit des informations permettant de résoudre la défaillance.

Voici des exemples de valeurs possibles pour `StateReason` :
+ Flux introuvable. Pour reprendre le traitement, supprimez le canal et créez-en un nouveau.
+ Pipes ne dispose pas des autorisations requises pour effectuer des opérations de file d'attente (sqs :ReceiveMessage, sqs : DeleteMessage et sqs :) GetQueueAttributes
+ Erreur de connexion. Votre VPC doit être capable de se connecter à des canaux. Vous pouvez fournir un accès en configurant une passerelle NAT ou un point de terminaison VPC pour canaliser les données. Pour savoir comment configurer une passerelle NAT ou un point de terminaison VPC pour canaliser les données, consultez la documentation. AWS 
+ Aucun groupe de sécurité n’est associé au cluster MSK.

Un canal peut être automatiquement arrêté avec la propriété `StateReason` mise à jour. Les raisons possibles sont les suivantes :
+ Un flux de travaux standard Step Functions configuré en tant qu’[enrichissement](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html#pipes-enrichment).
+ Un flux de travaux standard Step Functions configuré en tant que cible à [invoquer de manière synchrone](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes.html#pipes-invocation).

## Défaillances de chiffrement personnalisées
<a name="eb-pipes-error-handling-cms"></a>

Si vous configurez une source pour utiliser une clé de chiffrement AWS KMS personnalisée (CMK) plutôt qu'une AWS KMS clé AWS gérée, vous devez explicitement autoriser le déchiffrement du rôle d'exécution de votre canal. Pour ce faire, incluez l’autorisation supplémentaire suivante dans la politique de clé CMK personnalisée :

```
  {
      "Sid": "Allow Pipes access",
      "Effect": "Allow",
      "Principal": {
          "AWS": "arn:aws:iam::01234567890:role/service-role/Amazon_EventBridge_Pipe_DDBStreamSourcePipe_12345678"
      },
      "Action": "kms:Decrypt",
      "Resource": "*"
  }
```

Remplacez le rôle ci-dessus par le rôle d’exécution de votre canal.

Ensuite, assurez-vous que les mêmes autorisations pour KMS sont ajoutées à votre rôle d'exécution Pipe.

Cela est vrai pour toutes les sources de tuyauterie dotées de la AWS KMS technologie CMK, notamment :
+ Amazon DynamoDB Streams
+ Amazon Kinesis Data Streams
+ Amazon MQ
+ Amazon MSK
+ Amazon SQS

# Tutoriel : Création d'un EventBridge canal filtrant les événements source
<a name="pipes-tutorial-create-dynamodb-sqs"></a>

Dans ce didacticiel, vous allez créer un canal qui connecte une source de flux DynamoDB à une cible de file d’attente Amazon SQS. Cela inclut la spécification d’un modèle d’événement pour le canal à utiliser lors du filtrage des événements destinés à être livrés à la file d’attente. Vous allez ensuite tester le canal pour vérifier que seuls les événements souhaités sont livrés.

## Prérequis : créer la source et la cible
<a name="pipes-tutorial-create-dynamodb-sqs-prereqs"></a>

Avant de créer le canal, vous devez créer la source et la cible auxquelles le canal doit se connecter. Dans ce cas, un flux de données Amazon DynamoDB sert de source pour le canal et une file d’attente Amazon SQS sert de cible pour le canal.

Pour simplifier cette étape, vous pouvez utiliser AWS CloudFormation pour déployer les ressources source et cible. Pour ce faire, vous allez créer un CloudFormation modèle définissant les ressources suivantes :
+ La source du canal 

  Une table Amazon DynamoDB nommée `pipe-tutorial-source`, avec un flux permettant de fournir un flux ordonné d’informations sur les modifications apportées aux éléments de la table DynamoDB.
+ La cible du canal 

  Une file d’attente Amazon SQS nommée `pipe-tutorial-target`, destinée à recevoir le flux DynamoDB d’événements provenant de votre canal.

**Pour créer le CloudFormation modèle de provisionnement des ressources du canal**

1. Copiez le modèle de texte JSON dans la section [CloudFormation modèle pour générer des prérequis](#pipes-tutorial-create-cfn-template) ci-dessous.

1. Enregistrez le modèle sous forme de fichier JSON (par exemple, `~/pipe-tutorial-resources.json`).

Utilisez ensuite le fichier modèle que vous venez de créer pour approvisionner une CloudFormation pile.

**Note**  
Une fois que vous aurez créé votre CloudFormation pile, les AWS ressources qu'elle fournit vous seront facturées.

**Fournir les prérequis du didacticiel à l'aide de la CLI AWS**
+ Exécutez la commande d’interface de ligne de commande suivante, où `--template-body` spécifie l’emplacement de votre modèle de fichier :

  ```
  aws cloudformation create-stack --stack-name pipe-tuturial-resources --template-body file://~/pipe-tutorial-resources.json
  ```

**Provisionner les prérequis du didacticiel à l'aide de la console CloudFormation**

1. Ouvrez la CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Sélectionnez **Piles**, puis **Créer une pile** et choisissez **Avec de nouvelles ressources (standard)**.

   CloudFormation affiche l'assistant de **création d'une pile**.

1. Pour **Prérequis - Préparer le modèle**, laissez **Le modèle est prêt** sélectionné par défaut.

1. Sous **Spécifier un modèle**, sélectionnez **Charger un fichier de modèle**, puis choisissez le fichier et sélectionnez **Suivant**.

1. Configurez la pile et les ressources qu’elle allouera :
   + Dans le champ **Nom de la pile**, saisissez `pipe-tuturial-resources`.
   + Pour **Paramètres**, conservez les noms par défaut de la table DynamoDB et de la file d’attente Amazon SQS.
   + Choisissez **Suivant**.

1. Choisissez **Suivant**, puis **Soumettre**.

   CloudFormation crée la pile et provisionne les ressources définies dans le modèle.

Pour plus d'informations CloudFormation, voir [Qu'est-ce que c'est CloudFormation ?](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html) dans le *guide de CloudFormation l'utilisateur*.

## Étape 1 : Créer le canal
<a name="pipes-tutorial-create-dynamodb-sqs-create-pipe"></a>

Une fois la source et la cible du canal allouées, vous pouvez créer le canal pour connecter les deux services.

**Créez le tube à l'aide de la EventBridge console**

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Dans le volet de navigation, choisissez **Pipelines**.

1. Choisissez **Créer un pipeline**.

1. Pour **Nom**, nommez votre canal `pipe-tutorial`.

1. Spécifiez la source du flux de données DynamoDB :

   1. Sous **Informations**, dans **Source**, sélectionnez **Flux de données DynamoDB**.

      EventBridge affiche les paramètres de configuration de source spécifiques à DynamoDB.

   1. Pour **Flux DynamoDB**, sélectionnez `pipe-tutorial-source`.

      Laissez **Position de départ** définie sur la valeur par défaut, `Latest`.

   1. Choisissez **Suivant**.

1. Spécifiez et testez un modèle d’événement pour filtrer les événements :

   Le filtrage vous permet de contrôler les événements que les canaux envoient à l’enrichissement ou à la cible. Le canal envoie uniquement les événements qui correspondent au modèle d’événement à l’enrichissement ou à la cible.

   Pour de plus amples informations, veuillez consulter [Filtrage des événements dans Amazon EventBridge Pipes](eb-pipes-event-filtering.md).
**Note**  
Seuls les événements envoyés à l’enrichissement ou à la cible vous sont facturés.

   1. Sous **Exemple d’événement - *facultatif***, laissez **Événements AWS ** sélectionné et assurez-vous que **Exemple d’événement de flux DynamoDB 1** est sélectionné.

      Il s’agit de l’exemple d’événement que vous allez utiliser pour tester notre modèle d’événement.

   1. Sous **Modèle d’événement**, entrez le modèle d’événement suivant :

      ```
      {
        "eventName": ["INSERT", "MODIFY"]
      }
      ```

   1. Choisissez **Modèle de test**.

      EventBridge affiche un message indiquant que l'exemple d'événement correspond au modèle d'événement. En effet, la valeur `eventName` de l’exemple d’événement est définie sur `INSERT`.

   1. Choisissez **Suivant**.

1. Choisissez **Suivant** pour ne pas spécifier d’enrichissement. 

   Dans cet exemple, vous ne sélectionnerez pas d’enrichissement. Les enrichissements vous permettent de sélectionner un service pour améliorer les données provenant de la source avant de les envoyer à la cible. Pour en savoir plus, consultez [Enrichissement des événements dans Amazon EventBridge Pipes](pipes-enrichment.md).

1. Spécifiez votre file d’attente Amazon SQS en tant que cible de canal :

   1. Sous **Informations**, pour **Service cible**, sélectionnez **File d’attente Amazon SQS**.

   1. Pour **File d’attente**, sélectionnez `pipe-tutorial-target`.

   1. Laissez la section **Transformateur d’entrée cible** vide.

      Pour de plus amples informations, veuillez consulter [Transformation EventBridge des entrées Amazon Pipes](eb-pipes-input-transformation.md).

1. Choisissez **Créer un pipeline**.

   EventBridge crée le tuyau et affiche la page détaillée du tuyau. Le canal est prêt une fois que son statut passe à `Running`.

## Étape 2 : Confirmer que le canal filtre les événements
<a name="pipes-tutorial-create-dynamodb-sqs-test"></a>

Le canal est configuré, mais n’a pas encore reçu les événements de la table.

Pour tester le canal, vous allez mettre à jour les entrées de la table DynamoDB. Chaque mise à jour génère des événements que le flux DynamoDB envoie à notre canal. Certains correspondront au modèle d’événement que vous avez spécifié, d’autres non. Vous pouvez ensuite examiner la file d’attente Amazon SQS pour vous assurer que le canal n’a livré que les événements correspondant à notre modèle d’événement.

**Mise à jour des éléments de table pour générer des événements**

1. Ouvrez la console DynamoDB à l'adresse. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Dans le volet de navigation de gauche, sélectionnez **Tables**. Sélectionnez la table `pipe-tutorial-source`.

   DynamoDB affiche la page détaillée de la table `pipe-tutorial-source`.

1. Sélectionnez **Explorer les éléments de table**, puis choisissez **Créer un élément**.

   DynamoDB affiche la page **Créer un élément**.

1. Sous **Attributs**, créez un nouvel élément de table :

   1. Pour **Album**, entrez `Album A`.

   1. Pour **Artiste**, entrez `Artist A`.

   1. Choisissez **Créer un élément**.

1. Mettez à jour l’élément de table :

   1. Sous **Éléments retournés**, choisissez **Album A**.

   1. Sélectionnez **Ajouter un nouvel attribut**, puis **Chaîne**.

   1. Entrez une nouvelle valeur pour `Song`, `Song A`.

   1. Sélectionnez **Enregistrer les modifications**.

1. Supprimez l’élément de table :

   1. Sous **Éléments retournés**, cochez **Album A**.

   1. Dans le menu **Actions**, sélectionnez **Supprimer des éléments**.

Vous avez effectué trois mises à jour sur l’élément de table ; cela génère trois événements pour le flux de données DynamoDB :
+ Un événement `INSERT` correspondant à la création de l’élément.
+ Un événement `MODIFY` correspondant à l’ajout d’un attribut à l’élément.
+ Un événement `REMOVE` correspondant à la suppression de l’élément.

Cependant, le modèle d’événement que vous avez spécifié pour le canal doit filtrer les événements qui ne sont pas des événements `INSERT` ou `MODIFY`. Vérifiez ensuite que le canal a livré les événements attendus à la file d’attente.

**Vérification que les événements attendus ont été livrés à la file d’attente**

1. Ouvrez la console Amazon SQS à l'adresse. [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)

1. Choisissez la file d’attente `pipe-tutorial-target`.

   Amazon SQS affiche la page détaillée de la file d’attente.

1. Sélectionnez **Envoyer et recevoir des messages**, puis sous **Recevoir des messages**, choisissez **Rechercher des messages**.

   La file d’attente interroge le canal, puis répertorie les événements qu’elle reçoit.

1. Choisissez le nom de l’événement pour voir le code JSON de l’événement qui a été livré.

 La file d’attente doit comporter deux événements : un pour lequel `eventName` est défini sur `INSERT` et un autre pour lequel `eventName` est défini sur `MODIFY`. Cependant, le canal n’a pas livré l’événement de suppression de l’élément de table, car le paramètre `eventName` de cet événement était défini sur `REMOVE`, ce qui ne correspondait pas au modèle d’événement que vous avez spécifié dans le canal.

## Étape 3 : Nettoyer vos ressources
<a name="pipes-tutorial-create-dynamodb-sqs-cleanup"></a>

Commencez par supprimer le canal lui-même.

**Supprimer le tube à l'aide de la EventBridge console**

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Dans le volet de navigation, choisissez **Pipelines**.

1. Sélectionnez le canal `pipe-tutorial` et choisissez **Supprimer**.

Supprimez ensuite la CloudFormation pile afin d'éviter d'être facturée pour l'utilisation continue des ressources qu'elle contient.

**Supprimer les prérequis du didacticiel à l'aide de la CLI AWS**
+ Exécutez la commande d’interface de ligne de commande suivante, où `--stack-name` spécifie le nom de votre pile :

  ```
  aws cloudformation delete-stack --stack-name pipe-tuturial-resources
  ```

**Supprimer les prérequis du didacticiel à l'aide de la console CloudFormation**

1. Ouvrez la CloudFormation console à l'adresse [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. Sur la page **Piles**, sélectionnez la pile, puis **Supprimer**.

1. Sélectionnez **Supprimer** pour confirmer votre action.

## CloudFormation modèle pour générer des prérequis
<a name="pipes-tutorial-create-cfn-template"></a>

Utilisez le JSON ci-dessous pour créer un CloudFormation modèle permettant de provisionner les ressources source et cible nécessaires à ce didacticiel.

```
{
  "AWSTemplateFormatVersion": "2010-09-09",

  "Description" : "Provisions resources to use with the EventBridge Pipes tutorial. You will be billed for the AWS resources used if you create a stack from this template.",

  "Parameters" : {
    "SourceTableName" : {
      "Type" : "String",
      "Default" : "pipe-tutorial-source",
      "Description" : "Specify the name of the table to provision as the pipe source, or accept the default."
    },
    "TargetQueueName" : {
      "Type" : "String",
      "Default" : "pipe-tutorial-target",
      "Description" : "Specify the name of the queue to provision as the pipe target, or accept the default."
    }
  },
  "Resources": {
    "PipeTutorialSourceDynamoDBTable": {
      "Type": "AWS::DynamoDB::Table",
      "Properties": {
        "AttributeDefinitions": [{
            "AttributeName": "Album",
            "AttributeType": "S"
          },
          {
            "AttributeName": "Artist",
            "AttributeType": "S"
          }

        ],
        "KeySchema": [{
            "AttributeName": "Album",
            "KeyType": "HASH"

          },
          {
            "AttributeName": "Artist",
            "KeyType": "RANGE"
          }
        ],
        "ProvisionedThroughput": {
          "ReadCapacityUnits": 10,
          "WriteCapacityUnits": 10
        },
        "StreamSpecification": {
          "StreamViewType": "NEW_AND_OLD_IMAGES"
        },
        "TableName": { "Ref" : "SourceTableName" }
      }
    },
    "PipeTutorialTargetQueue": {
      "Type": "AWS::SQS::Queue",
      "Properties": {
        "QueueName": { "Ref" : "TargetQueueName" }
      }
    }
  }
}
```

# Génération d'un CloudFormation modèle à partir de EventBridge Pipes
<a name="pipes-generate-template"></a>

AWS CloudFormation vous permet de configurer et de gérer vos AWS ressources sur l'ensemble des comptes et des régions de manière centralisée et reproductible en traitant l'infrastructure comme du code. CloudFormation pour ce faire, vous pouvez créer des *modèles* qui définissent les ressources que vous souhaitez approvisionner et gérer.

EventBridge vous permet de générer des modèles à partir des canaux existants de votre compte, afin de vous aider à démarrer le développement CloudFormation de modèles. Vous pouvez sélectionner un ou plusieurs canaux à inclure dans le modèle. Vous pouvez ensuite utiliser ces modèles comme base pour [créer des piles](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-create-stack.html) de ressources à CloudFormation gérer.

Pour plus d'informations CloudFormation, consultez [*le guide de CloudFormation l'utilisateur*.](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)

Pour les bus d'événements, vous pouvez générer des CloudFormation modèles à partir des [bus d'événements](eb-generate-event-bus-template.md) [et des règles des bus](rule-generate-template.md) d'événements.

## Ressources incluses dans les modèles EventBridge Pipe
<a name="pipes-generate-template-resources"></a>

Lors EventBridge de la CloudFormation génération du modèle, il crée une [AWS::Pipes::Pipe](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-pipes-pipe.html)ressource pour chaque canal sélectionné. En outre, EventBridge inclut les ressources suivantes dans les conditions décrites :
+ [AWS::Events::ApiDestination](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-apidestination.html)

  Si vos canaux incluent des destinations d'API, sous forme d'enrichissements ou de cibles, EventBridge incluez-les dans le CloudFormation modèle en tant que AWS::Events::ApiDestination ressources.
+ [AWS::Events::EventBus](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbus.html)

  Si vos canaux incluent un bus d'événements comme cible, EventBridge incluez-le dans le CloudFormation modèle en tant que AWS::Events::EventBus ressource.
+ [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)

  Si vous aviez EventBridge créé un nouveau rôle d'exécution lors de [la configuration du canal](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-pipes-create.html#pipes-configure-pipe-settings), vous pouvez choisir d' EventBridge inclure ce rôle dans le modèle en tant que AWS::IAM::Role ressource. EventBridge n'inclut pas les rôles que vous créez. (Dans les deux cas, la `RoleArn` propriété de la AWS::Pipes::Pipe ressource contient l'ARN du rôle.)

## Considérations relatives à l'utilisation CloudFormation de modèles générés à partir de EventBridge Pipes
<a name="pipes-generate-template-considerations"></a>

Tenez compte des facteurs suivants lorsque vous utilisez un CloudFormation modèle à partir duquel vous l'avez généré EventBridge :
+ EventBridge n'inclut aucun mot de passe dans le modèle généré.

  Vous pouvez modifier le modèle pour y inclure des [paramètres de modèle](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html) qui permettent aux utilisateurs de spécifier des mots de passe ou d’autres informations sensibles lorsqu’ils utilisent le modèle pour créer ou mettre à jour une pile CloudFormation.

  En outre, les utilisateurs peuvent utiliser Secrets Manager pour créer un secret dans la région souhaitée, puis modifier le modèle généré pour utiliser des [paramètres dynamiques](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-secretsmanager).
+ Les cibles du modèle généré restent exactement telles qu’elles ont été spécifiées dans le canal d’origine. Cela peut entraîner des problèmes entre régions si vous ne modifiez pas correctement le modèle avant de l’utiliser pour créer des piles dans d’autres régions.

  De plus, le modèle généré ne crée pas automatiquement les cibles en aval.

## Génération d'un CloudFormation modèle à partir de EventBridge Pipes
<a name="pipes-generate-template-console"></a>

Pour générer un CloudFormation modèle à partir d'un ou de plusieurs canaux à l'aide de la EventBridge console, procédez comme suit : 

**Pour générer un CloudFormation modèle à partir d'un ou de plusieurs canaux**

1. Ouvrez la EventBridge console Amazon à l'adresse [https://console.aws.amazon.com/events/](https://console.aws.amazon.com/events/).

1. Dans le volet de navigation, choisissez **Pipelines**.

1. Sous **Tuyaux**, choisissez un ou plusieurs tuyaux que vous souhaitez inclure dans le CloudFormation modèle généré.

   Pour un canal unique, vous pouvez également choisir le nom du canal pour afficher la page de détails du canal.

1. Choisissez **CloudFormation Modèle**, puis choisissez le format dans lequel vous EventBridge souhaitez générer le modèle : **JSON** ou **YAML.**

   EventBridge affiche le modèle, généré dans le format sélectionné.

1. Si vous avez EventBridge créé un nouveau rôle d'exécution pour l'un des canaux sélectionnés et que vous EventBridge souhaitez inclure ces rôles dans le modèle, choisissez **Inclure IAM les rôles créés par la console en votre nom**.

1. EventBridge vous permet de télécharger le fichier modèle ou de le copier dans le presse-papiers.
   + Pour télécharger le fichier modèle, choisissez **Télécharger**.
   + Pour copier le modèle dans le presse-papiers, choisissez **Copier**.

1. Pour quitter le modèle, choisissez **Annuler**. 