

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

# Fuentes de Amazon EventBridge Pipes
<a name="eb-pipes-event-source"></a>

EventBridge Pipes recibe datos de eventos de diversas fuentes, aplica filtros y enriquecimientos opcionales a esos datos y los envía a un destino.

Si una fuente impone el orden de los eventos enviados a EventBridge Pipes, ese orden se mantiene durante todo el proceso hasta el destino.

Los siguientes AWS servicios se pueden especificar como fuentes para EventBridge Pipes:
+ [Flujo de Amazon DynamoDB](eb-pipes-dynamodb.md)
+ [Flujo de Amazon Kinesis](eb-pipes-kinesis.md)
+ [Agente de Amazon MQ](eb-pipes-mq.md)
+ [Flujo de Amazon MSK ](eb-pipes-msk.md)
+ [Cola de Amazon SQS](eb-pipes-sqs.md)
+ [Flujo de Apache Kafka](eb-pipes-kafka.md)

  Al especificar un flujo de Apache Kafka como origen de canalización, puede especificar un flujo de Apache Kafka que administre personalmente o uno que administre un proveedor externo, como:
  + [https://www.confluent.io/](https://www.confluent.io/)
  + [https://www.cloudkarafka.com/](https://www.cloudkarafka.com/)
  + [https://redpanda.com/](https://redpanda.com/)

# Flujo de Amazon DynamoDB como origen para las canalizaciones de EventBridge
<a name="eb-pipes-dynamodb"></a>

Puede usar las canalizaciones de EventBridge para recibir registros en un flujo de DynamoDB. A continuación, si lo desea, puede filtrar o enriquecer estos registros antes de enviarlos a un destino para su procesamiento. Al configurar la canalización, puede elegir ajustes específicos para Amazon DynamoDB Streams. Las canalizaciones de EventBridge mantienen el orden de los registros del flujo de datos al enviar esos datos al destino.

**importante**  
Al deshabilitar un flujo de DynamoDB que es el origen de una canalización, esa canalización queda inutilizada, aunque se vuelva a habilitar el flujo. Esto puede suceder por los motivos siguientes:  
No puede detener, iniciar ni actualizar una canalización cuyo origen esté deshabilitado.
No puede actualizar una canalización con un origen nuevo después de crearla. Al volver a habilitar el flujo de DynamoDB, a ese flujo se le asigna un nuevo nombre de recurso de Amazon (ARN) y deja de estar asociado a la canalización.
Si vuelve a habilitar el flujo de DynamoDB, tendrá que crear una nueva canalización con el nuevo ARN del flujo.

**Evento de ejemplo**

En el siguiente evento de ejemplo se muestra la información que recibe la canalización. Puede usar este evento para crear y filtrar sus patrones de eventos o para definir la transformación de entrada. No todos los campos se pueden filtrar. Para obtener más información sobre los campos que puede filtrar, consulte [Filtrado de eventos en 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"
  }
]
```

## Sondeo y procesamiento por lotes de flujos
<a name="pipes-ddb-polling"></a>

EventBridge sondea las particiones de su flujo de DynamoDB y busca registros cuatro veces por segundo. Cuando hay registros disponibles, EventBridge procesa el evento y espera el resultado. Si el procesamiento se realiza correctamente, EventBridge reanuda el sondeo hasta que recibe más registros.

De forma predeterminada, EventBridge invoca su canalización tan pronto como los registros estén disponibles. Si el lote que EventBridge lee desde el origen solo tiene un registro, solo se procesa un evento. Para evitar procesar un número de registros pequeño, puede indicar a la canalización que almacene en búfer registros hasta cinco minutos configurando un plazo de procesamiento por lotes. Antes de procesar los eventos, EventBridge continúa leyendo los registros del origen hasta que haya recopilado un lote completo, venza el plazo de procesamiento por lotes o el lote alcance el límite de carga de 6 MB.

**importante**  
La canalización entregará los registros de flujo de DynamoDB a Amazon SQS al menos una vez. Para garantizar que no se pierda ningún registro, le sugerimos que establezca una política de reintentos con una antigüedad máxima inferior al período de retención del flujo de DynamoDB. Por lo general, los flujos de DynamoDB retienen los eventos durante 24 horas.

También puede aumentar la simultaneidad procesando varios lotes de cada partición en paralelo. EventBridge puede procesar hasta 10 lotes en cada partición simultáneamente. Si aumenta el número de lotes simultáneos por partición, EventBridge sigue garantizando el procesamiento en orden a nivel de clave de partición.

Configure los ajustes de `ParallelizationFactor` para procesar una partición de un flujo de datos de Kinesis o DynamoDB con más de una ejecución de canalización simultáneamente. Puede especificar el número de lotes simultáneos que EventBridge sondea desde una partición a través de un factor de paralelización de 1 (predeterminado) a 10. Por ejemplo, al establecer `ParallelizationFactor` como 2, puede tener 200 ejecuciones de EventBridge Pipe simultáneas como máximo para procesar 100 particiones de datos de Kinesis. Esto ayuda a escalar verticalmente el rendimiento de procesamiento cuando el volumen de datos es volátil y el `IteratorAge` es alto. Tenga en cuenta que el factor de paralelización no funcionará si está utilizando la agregación de Kinesis. 

## Sondeo y posición inicial de flujos
<a name="pipes-ddb-stream-start-position"></a>

Tenga en cuenta que el sondeo de flujos durante la creación de canalizaciones y las actualizaciones es, en última instancia, coherente.
+ Durante la creación de canalizaciones, es posible que se demore varios minutos en iniciar el sondeo de los eventos del flujo.
+ Durante las actualizaciones de las canalizaciones, es posible que se demore varios minutos en detener y reiniciar el sondeo de los eventos del flujo. 

Esto significa que, si especifica `LATEST` como posición inicial del flujo, la canalización podría omitir eventos durante la creación de canalizaciones o las actualizaciones. Para garantizar que no se pierda ningún evento, especifique la posición inicial del flujo como `TRIM_HORIZON`.

## Informes de fallos de elementos de lote
<a name="pipes-ddb-batch-failures"></a>

Cuando EventBridge consume y procesa datos de flujos de un origen, de forma predeterminada asigna puntos de control hasta el número de secuencia más alto de un lote solo cuando el lote ese procesa correctamente por completo. Para evitar el reprocesamiento de los mensajes procesados correctamente en un lote con errores, puede configurar el enriquecimiento o el destino para que devuelva un objeto que indique qué mensajes se han procesado correctamente y cuáles no. Esto se denomina respuesta parcial por lotes.

Para obtener más información, consulte [Fallo de lote parcial](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure).

### Condiciones de éxito y fracaso
<a name="pipes-ddb-batch-failures-conditions"></a>

EventBridge trata un lote como un éxito completo si devuelve cualquiera de los siguientes elementos:
+ Una lista `batchItemFailure` vacía
+ Una lista `batchItemFailure` nula
+ Una `EventResponse` vacía
+ Una `EventResponse` nula

EventBridge trata un lote como un error completo si devuelve cualquiera de los siguientes elementos:
+ Una cadena `itemIdentifier` vacía
+ Una nula `itemIdentifier`
+ Un `itemIdentifier` con un mal nombre de clave

EventBridge intenta volver a procesar los mensajes fallidos conforme a su estrategia de reintentos.

# Amazon Kinesis stream como fuente de Pipes EventBridge
<a name="eb-pipes-kinesis"></a>

Puede usar EventBridge Pipes para recibir registros en una transmisión de datos de Kinesis. A continuación, si lo desea, puede filtrar o enriquecer estos registros antes de enviarlos a uno de los destinos disponibles para su procesamiento. Al configurar la canalización, puede elegir ajustes específicos de Kinesis. EventBridge Pipes mantiene el orden de los registros del flujo de datos al enviar esos datos al destino.

Un flujo de datos de Kinesis es un conjunto de [particiones](https://docs.aws.amazon.com/kinesis/latest/dev/key-concepts.html#shard). Cada partición contiene una secuencia de registros de datos. Un **consumidor** es una aplicación que procesa los datos procedentes de un flujo de datos de Kinesis. [Puede asignar un EventBridge Pipe a un consumidor de rendimiento compartido (iterador estándar) o a un consumidor de rendimiento dedicado con una distribución mejorada.](https://docs.aws.amazon.com/kinesis/latest/dev/enhanced-consumers.html)

En el caso de los iteradores estándar, EventBridge utiliza el protocolo HTTP para sondear cada fragmento de la transmisión de Kinesis en busca de registros. La canalización comparte el rendimiento de lectura con otros consumidores de la partición.

Para minimizar la latencia y maximizar el rendimiento de lectura, puede crear un consumidor de flujo de datos con distribución ramificada mejorada. Los consumidores de flujos obtienen una conexión dedicada a cada partición que no afecta a las demás aplicaciones que leen el flujo. El rendimiento dedicado puede ser útil si hay muchas aplicaciones que leen los mismos datos, o si se está reprocesando un flujo con registros de gran tamaño. Kinesis transfiere los registros a más de HTTP/2. EventBridge Para obtener información detallada sobre los flujos de datos de Kinesis, consulte [Lectura de datos de Amazon Kinesis Data Streams](https://docs.aws.amazon.com/kinesis/latest/dev/building-consumers.html).

**Evento de ejemplo**

En el siguiente evento de ejemplo se muestra la información que recibe la canalización. Puede usar este evento para crear y filtrar sus patrones de eventos o para definir la transformación de entrada. No todos los campos se pueden filtrar. Para obtener más información sobre los campos que puede filtrar, consulte [Filtrado de eventos en 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"
  }
]
```

## Sondeo y procesamiento por lotes de flujos
<a name="pipes-ak-polling"></a>

EventBridge sondea los fragmentos de su transmisión de Kinesis en busca de registros a una velocidad base de una vez por segundo. Cuando hay registros disponibles, EventBridge procesa el evento y espera el resultado. Si el procesamiento se realiza correctamente, EventBridge reanuda el sondeo hasta que reciba más registros.

De forma predeterminada, EventBridge invoca la tubería en cuanto los registros estén disponibles. Si el lote que EventBridge lee desde la fuente contiene solo un registro, solo se procesa un evento. Para evitar procesar un número de registros pequeño, puede indicar a la canalización que almacene en búfer registros hasta cinco minutos configurando un plazo de procesamiento por lotes. Antes de procesar los eventos, EventBridge continúa leyendo los registros de la fuente hasta que haya reunido un lote completo, caduque el período de procesamiento por lotes o el lote alcance el límite de carga útil de 6 MB.

También puede aumentar la simultaneidad procesando varios lotes de cada fragmento en paralelo. EventBridge puede procesar hasta 10 lotes en cada fragmento simultáneamente. Si se aumenta el número de lotes simultáneos por fragmento, se garantiza un procesamiento ordenado a EventBridge nivel de clave de partición.

Configure los ajustes de `ParallelizationFactor` para procesar una partición de un flujo de datos de Kinesis o DynamoDB con más de una ejecución de canalización simultáneamente. Puede especificar el número de lotes simultáneos que EventBridge sondean desde un fragmento mediante un factor de paralelización de 1 (predeterminado) a 10. Por ejemplo, si se establece `ParallelizationFactor` en 2, puede tener 200 ejecuciones simultáneas de EventBridge Pipe como máximo para procesar 100 fragmentos de datos de Kinesis. Esto ayuda a escalar verticalmente el rendimiento de procesamiento cuando el volumen de datos es volátil y el `IteratorAge` es alto. Tenga en cuenta que el factor de paralelización no funcionará si está utilizando la agregación de Kinesis. 

## Sondeo y posición inicial de flujos
<a name="pipes-ak-stream-start-position"></a>

Tenga en cuenta que el sondeo de flujos durante la creación de canalizaciones y las actualizaciones es, en última instancia, coherente.
+ Durante la creación de canalizaciones, es posible que se demore varios minutos en iniciar el sondeo de los eventos del flujo.
+ Durante las actualizaciones de las canalizaciones, es posible que se demore varios minutos en detener y reiniciar el sondeo de los eventos del flujo. 

Esto significa que, si especifica `LATEST` como posición inicial del flujo, la canalización podría omitir eventos durante la creación de canalizaciones o las actualizaciones. Para garantizar que no se pierda ningún evento, especifique la posición inicial del flujo como `TRIM_HORIZON` o `AT_TIMESTAMP`.

## Informes de fallos de elementos de lote
<a name="pipes-ak-batch-failures"></a>

Cuando EventBridge consume y procesa datos de streaming de una fuente, de forma predeterminada, selecciona el número de secuencia más alto de un lote, pero solo cuando el lote es un éxito total. Para evitar el reprocesamiento de los mensajes procesados correctamente en un lote con errores, puede configurar el enriquecimiento o el destino para que devuelva un objeto que indique qué mensajes se han procesado correctamente y cuáles no. Esto se denomina respuesta parcial por lotes.

Para obtener más información, consulte [Fallo de lote parcial](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure).

### Condiciones de éxito y fracaso
<a name="pipes-ak-batch-failures-conditions"></a>

Si devuelve alguno de los siguientes datos, considerará EventBridge que el lote se ha realizado correctamente:
+ Una lista `batchItemFailure` vacía
+ Una lista `batchItemFailure` nula
+ Una `EventResponse` vacía
+ Una `EventResponse` nula

Si devuelve alguna de las siguientes opciones, EventBridge considerará el lote como un error total:
+ Una cadena `itemIdentifier` vacía
+ Una `itemIdentifier` nula
+ Un `itemIdentifier` con un mal nombre de clave

EventBridge Los reintentos fallan en función de su estrategia de reintentos.

# El agente de mensajes Amazon MQ como fuente en Pipes EventBridge
<a name="eb-pipes-mq"></a>

Puedes usar EventBridge Pipes para recibir registros de un agente de mensajes de Amazon MQ. A continuación, si lo desea, puede filtrar o enriquecer estos registros antes de enviarlos a uno de los destinos disponibles para su procesamiento. Existen ajustes específicos de Amazon MQ que puedes elegir al configurar una tubería. EventBridge Pipes mantiene el orden de los registros del agente de mensajes al enviar esos datos al destino.

Amazon MQ es un servicio de agente de mensajes administrado para [Apache ActiveMQ](https://activemq.apache.org/) y [RabbitMQ](https://www.rabbitmq.com/). Un agente de mensajes permite que las aplicaciones de software y los componentes se comuniquen mediante diferentes lenguajes de programación, sistemas operativos y protocolos de mensajería formales con temas o colas como destinos de eventos.

Amazon MQ también puede administrar instancias de Amazon Elastic Compute Cloud (Amazon EC2) en su nombre instalando agentes de ActiveMQ o RabbitMQ. Una vez instalado el agente, este proporciona diferentes topologías de red y cubre otras necesidades de infraestructura para sus instancias.

El origen de Amazon MQ tiene las siguientes restricciones de configuración:
+ **Cuenta cruzada**: EventBridge no admite el procesamiento entre cuentas. No puedes usar EventBridge para procesar registros de un agente de mensajes de Amazon MQ que esté en una cuenta diferente AWS .
+ **Autenticación**: para ActiveMQ, solo se admite [ SimpleAuthenticationPluginActiveMQ](https://activemq.apache.org/security#simple-authentication-plugin). Para RabbitMQ, solo se admite el mecanismo de autenticación [PLAIN](https://www.rabbitmq.com/access-control.html#mechanisms). Para administrar las credenciales, utilice AWS Secrets Manager. Para obtener más información acerca de la autenticación de ActiveMQ, consulte [Integración de agentes de ActiveMQ con LDAP](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/security-authentication-authorization.html) en la Guía para desarrolladores de Amazon MQ.
+ **Cuota de conexión**: los agentes tienen un número máximo de conexiones permitidas por protocolo de nivel de cable. Esta cuota se basa en el tipo de instancia del broker. Para obtener más información, consulte la sección [Agentes](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-limits.html#broker-limits) de ** \$1Cuotas en Amazon MQ\$1** en la Guía para desarrolladores de Amazon MQ.
+ **Conectividad**: puede crear agentes en una nube privada virtual (VPC) pública o privada. Si es privado VPCs, tu canal necesita acceso a la VPC para recibir mensajes.
+ **Destinos de eventos**: solo se admiten los destinos de cola. Sin embargo, puede utilizar un tema virtual, que se comporta como un tema internamente y como una cola externamente cuando interactúa con sus canalizaciones. Para obtener más información, consulte [Destinos virtuales](https://activemq.apache.org/virtual-destinations) en el sitio web de Apache ActiveMQ y [Virtual Hosts](https://www.rabbitmq.com/vhosts.html) en el sitio web RabbitMQ.
+ **Topología de red**: para ActiveMQ, solo se admite una instancia única o agente en espera por canalización. Para RabbitMQ, solo se admite una implementación de agente o clúster de una instancia única por cada canalización. Los agentes de instancia única requieren un punto de conexión de conmutación por error. Para obtener más información acerca de estos modos de implementación de agente, consulte [Arquitectura de agente Active MQ](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-broker-architecture.html) y [Arquitectura de agente de Rabbit MQ](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/rabbitmq-broker-architecture.html) en la Guía para desarrolladores de Amazon MQ.
+ **Protocolos**: los protocolos compatibles dependen de la integración de Amazon MQ que utilice.
  + Para las integraciones de ActiveMQ EventBridge , utiliza OpenWire/Java el protocolo Message Service (JMS) para consumir los mensajes. El consumo de mensajes no es compatible con ningún otro protocolo. EventBridge solo admite las `BytesMessage` operaciones `TextMessage` y dentro del protocolo JMS. Para obtener más información sobre el OpenWire protocolo, consulte el [OpenWire](https://activemq.apache.org/openwire.html)sitio web de Apache ActiveMQ.
  + Para las integraciones de RabbitMQ, EventBridge utiliza el protocolo AMQP 0-9-1 para consumir los mensajes. No se admiten otros protocolos para consumir mensajes. Para obtener más información acerca de la implementación de RabbitMQ del protocolo AMQP 0-9-1, consulte la [Guía de referencia completa de AMQP 0-9-1](https://www.rabbitmq.com/amqp-0-9-1-reference.html) en el sitio web de RabbitMQ.

EventBridge admite automáticamente las versiones más recientes de ActiveMQ y RabbitMQ compatibles con Amazon MQ. Para obtener las últimas versiones compatibles, consulte [Notas de la versión de Amazon MQ](https://docs.aws.amazon.com/amazon-mq/latest/developer-guide/amazon-mq-release-notes.html) en la Guía para desarrolladores de Amazon MQ.

**nota**  
De forma predeterminada, Amazon MQ tiene una ventana de mantenimiento semanal para los agentes. Durante esa ventana de tiempo, los corredores no están disponibles. En el caso de los corredores que no estén en modo de espera, EventBridge no procesarán los mensajes hasta que finalice el período.

**Eventos de ejemplo**

En el siguiente evento de ejemplo se muestra la información que recibe la canalización. Puede usar este evento para crear y filtrar sus patrones de eventos o para definir la transformación de entrada. No todos los campos se pueden filtrar. Para obtener más información sobre los campos que puede filtrar, consulte [Filtrado de eventos en 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=="
  }
]
```

## Grupo de consumidores
<a name="pipes-mq-consumer-group"></a>

Para interactuar con Amazon MQ, EventBridge crea un grupo de consumidores que pueda leer información de tus agentes de Amazon MQ. El grupo de consumidores se crea con el mismo ID que el UUID de la canalización.

En el caso de las fuentes de Amazon MQ EventBridge , agrupa los registros y los envía a su función en una sola carga útil. Para controlar el comportamiento, puede configurar la ventana de procesamiento por lotes y el tamaño del lote. EventBridge extrae los mensajes hasta que se produce una de las siguientes situaciones:
+ Los registros procesados alcanzan un tamaño máximo de carga de 6 MB.
+ El plazo de procesamiento por lotes caduca.
+ El número de registros alcanza el tamaño total del lote. 

EventBridge convierte el lote en una sola carga útil y, a continuación, invoca la función. Los mensajes no se mantienen ni se deserializan. En su lugar, el grupo de consumidores los recupera como un BLOB de bytes. A continuación, los codifica con base64 en una carga JSON. Si la canalización devuelve un error en alguno de los mensajes de un lote, EventBridge vuelve a intentarlo con todo el lote de mensajes hasta que el procesamiento se realice correctamente o los mensajes caduquen.

## Configuración de red
<a name="pipes-mq-vpc-config"></a>

De forma predeterminada, los agentes de Amazon MQ se crean con el indicador `PubliclyAccessible` establecido en falso. Solo cuando `PubliclyAccessible` se establece en verdadero que el agente recibe una dirección IP pública. Para tener acceso completo con su canalización, el agente debe utilizar un punto de conexión público o proporcionar acceso a la VPC.

Si su agente de Amazon MQ no es de acceso público, EventBridge debe tener acceso a los recursos de Amazon Virtual Private Cloud (Amazon VPC) asociados a su agente.
+ Para acceder a la VPC de sus agentes de Amazon MQ EventBridge , puede utilizar el acceso saliente a Internet para las subredes de su fuente. Para las subredes públicas, debe ser una [puerta de enlace NAT](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html) administrada. Para las subredes privadas, puede ser una puerta de enlace NAT o su propia NAT. Asegúrese de que la NAT tiene una dirección IP pública y puede conectarse a Internet.
+ EventBridge Pipes también admite la entrega directa de eventos [AWS PrivateLink](https://aws.amazon.com/privatelink/), lo que le permite enviar eventos desde una fuente de eventos ubicada en un Amazon Virtual Private Cloud (Amazon VPC) a un destino de Pipes sin tener que atravesar la red pública de Internet. Puedes usar Pipes para sondear desde Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka autogestionado y Amazon MQ fuentes que residen en una subred privada sin necesidad de implementar una puerta de enlace a Internet, configurar reglas de firewall o configurar servidores proxy.

  Para configurar un punto de conexión de VPC, consulte [Crear un punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) en la *Guía del usuario de AWS PrivateLink *. En Nombre del servicio, seleccione `com.amazonaws.region.pipes-data`.

Configure sus grupos de seguridad de Amazon VPC con las siguientes reglas (como mínimo):
+ Reglas de entrada: permiten todo el tráfico en el puerto del agente de Amazon MQ para los grupos de seguridad para su origen.
+ Reglas de salida: permiten todo el tráfico en el puerto 443 para todos los destinos. Permiten todo el tráfico en el puerto del agente de Amazon MQ para los grupos de seguridad especificados para su origen.

  Los puertos del agente incluyen:
  + 9092 para texto sin formato
  + 9094 para TLS
  + 9096 para SASL
  + 9098 para IAM

**nota**  
La configuración de Amazon VPC se puede detectar a través de la [API de Amazon MQ](https://docs.aws.amazon.com/amazon-mq/latest/api-reference/resources.html). No tiene que configurarla durante la configuración.

# Amazon Managed Streaming for Apache: tema de Kafka como fuente en Pipes EventBridge
<a name="eb-pipes-msk"></a>

Puede usar EventBridge Pipes para recibir registros de un tema de [Amazon Managed Streaming for Apache Kafka (Amazon MSK)](https://docs.aws.amazon.com/msk/latest/developerguide/what-is-msk.html), incluidos los del tipo de clúster [Amazon MSK](https://aws.amazon.com/msk/features/msk-serverless/) Serverless. Si lo desea, también puede filtrar o enriquecer estos registros antes de enviarlos a uno de los destinos disponibles para su procesamiento. Existen ajustes específicos de Amazon MSK que puede elegir al configurar una tubería. EventBridge Pipes mantiene el orden de los registros del agente de mensajes al enviar esos datos al destino.

Amazon MSK es un servicio completamente administrado que puede usar para crear y ejecutar aplicaciones que utilizan Apache Kafka para procesar datos de streaming. Amazon MSK simplifica la configuración, el escalado y la administración de clústeres que ejecutan Apache Kafka. Con Amazon MSK, puede configurar su aplicación para varias zonas de disponibilidad y para garantizar la seguridad con AWS Identity and Access Management (IAM). Amazon MSK es compatible con múltiples versiones de código abierto de Kafka.

Amazon MSK como fuente funciona de forma similar al uso de Amazon Simple Queue Service (Amazon SQS) o Amazon Kinesis. EventBridgesondea internamente los mensajes nuevos de la fuente y, a continuación, invoca al destino de forma sincrónica. EventBridge lee los mensajes por lotes y los proporciona a su función como carga útil de eventos. El tamaño máximo del lote es configurable. (El valor predeterminado es 100 mensajes).

En el caso de las fuentes basadas en Apache Kafka, EventBridge admite parámetros de control del procesamiento, como las ventanas de procesamiento por lotes y el tamaño del lote.

EventBridge lee los mensajes de forma secuencial para cada partición. Después de EventBridge procesar cada lote, confirma las compensaciones de los mensajes de ese lote. Si el objetivo de la canalización devuelve un error para alguno de los mensajes de un lote, EventBridge vuelve a intentarlo con todo el lote de mensajes hasta que el procesamiento se realice correctamente o los mensajes caduquen.

EventBridge envía el lote de mensajes en caso de que invoque al destino. La carga de eventos contiene una matriz de mensajes. Cada elemento de matriz contiene detalles del tema y el identificador de partición de Amazon MSK, junto con una marca de hora y un mensaje codificado en base64.

**Eventos de ejemplo**

En el siguiente evento de ejemplo se muestra la información que recibe la canalización. Puede usar este evento para crear y filtrar sus patrones de eventos o para definir la transformación de entrada. No todos los campos se pueden filtrar. Para obtener más información sobre los campos que puede filtrar, consulte [Filtrado de eventos en 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
        ]
      }
    ]
  }
]
```

## Sondeo y posición inicial de flujos
<a name="pipes-msk-stream-start-position"></a>

Tenga en cuenta que el sondeo de flujos durante la creación de canalizaciones y las actualizaciones es, en última instancia, coherente.
+ Durante la creación de canalizaciones, es posible que se demore varios minutos en iniciar el sondeo de los eventos del flujo.
+ Durante las actualizaciones de las canalizaciones, es posible que se demore varios minutos en detener y reiniciar el sondeo de los eventos del flujo. 

Esto significa que, si especifica `LATEST` como posición inicial del flujo, la canalización podría omitir eventos durante la creación de canalizaciones o las actualizaciones. Para garantizar que no se pierda ningún evento, especifique la posición inicial del flujo como `TRIM_HORIZON`.

## Autenticación de clústeres de MSK
<a name="pipes-msk-cluster-permissions"></a>

EventBridge necesita permiso para acceder al clúster de Amazon MSK, recuperar registros y realizar otras tareas. Amazon MSK admite varias opciones para controlar el acceso de los clientes al clúster de MSK. Para obtener más información acerca de este método de autenticación que se utiliza, consulte [¿Cómo EventBridge elegir un bróker bootstrap](#pipes-msk-bootstrap-brokers).

**Topics**
+ [Acceso sin autenticar](#pipes-msk-permissions-none)
+ [Autenticación SASL/SCRAM](#pipes-msk-permissions-add-secret)
+ [Autenticación basada en roles de IAM](#pipes-msk-permissions-iam-policy)
+ [Autenticación TLS mutua](#pipes-msk-permissions-mTLS)
+ [Configuración del secreto de mTLS](#smaa-auth-secret)
+ [¿Cómo EventBridge elegir un bróker bootstrap](#pipes-msk-bootstrap-brokers)

### Acceso sin autenticar
<a name="pipes-msk-permissions-none"></a>

Recomendamos utilizar únicamente el acceso no autenticado para el desarrollo. El acceso no autenticado solo funcionará si la autenticación basada en roles de IAM está deshabilitada para el clúster.

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

Amazon MSK admite la autenticación mediante el mecanismo de autenticación simple y respuesta a Layer/Salted desafíos de seguridad (SASL/SCRAM) con el cifrado Transport Layer Security (TLS). Para conectarse EventBridge al clúster, debe almacenar las credenciales de autenticación (credenciales de inicio de sesión) en secreto. AWS Secrets Manager 

Para obtener más información sobre Secrets Manager, consulte [Autenticación de usuario y contraseña con AWS Secrets Manager](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html) (en la *Guía para desarrolladores de Amazon Managed Streaming for Apache Kafka*.

Amazon MSK no admite la SASL/PLAIN autenticación.

### Autenticación basada en roles de IAM
<a name="pipes-msk-permissions-iam-policy"></a>

Puede utilizar IAM para autenticar la identidad de los clientes que se conectan al clúster de MSK. Si la autenticación de IAM está activa en su clúster de MSK y no proporciona un secreto para la autenticación, EventBridge se utilizará automáticamente la autenticación de IAM de forma predeterminada. Para crear e implementar políticas basadas en roles o usuarios de IAM, utilice la consola o la API de IAM. Para obtener más información, consulte [IAM access control](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html) (Control de acceso de IAM) en la *Guía para desarrolladores de Amazon Managed Streaming for Apache Kafka*.

Para poder conectarte EventBridge al clúster de MSK, leer registros y realizar otras acciones necesarias, añade los siguientes permisos a la función de ejecución de tus tuberías.

------
#### [ 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"
            ]
        }
    ]
}
```

------

Puede asignar estos permisos a un clúster, un tema y un grupo específicos. Para obtener más información, consulte [Acciones de Amazon MSK para Kafka](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html#kafka-actions) en la *Guía para desarrolladores de Amazon Managed Streaming for Apache Kafka*.

### Autenticación TLS mutua
<a name="pipes-msk-permissions-mTLS"></a>

TLS mutua (mTLS) proporciona autenticación bidireccional entre el cliente y el servidor. El cliente envía un certificado al servidor para que el servidor verifique el cliente, mientras que el servidor envía un certificado al cliente para que el cliente verifique el servidor. 

Para Amazon MSK, EventBridge actúa como cliente. Configura un certificado de cliente (como secreto en Secrets Manager) para autenticarse EventBridge con los agentes de su clúster de MSK. El certificado de servidor debe estar firmado por una entidad de certificación que esté en el almacén de confianza del servidor. El clúster de MSK envía un certificado de servidor para autenticar EventBridge a los corredores. EventBridge El certificado del servidor debe estar firmado por una entidad emisora de certificados que se encuentre en el almacén de AWS confianza. 

Amazon MSK no admite certificados de servidor autofirmados, ya que todos los agentes de Amazon MSK utilizan [certificados públicos](https://docs.aws.amazon.com/msk/latest/developerguide/msk-encryption.html) firmados por [Amazon Trust Services CAs](https://www.amazontrust.com/repository/), que es de confianza de forma predeterminada EventBridge .



Para obtener más información sobre mTLS para Amazon MSK, consulte [Mutual TLS Authentication](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html) (Autenticación con TLS mutua) en la *Guía para desarrolladores de Amazon Managed Streaming for Apache Kafka*.

### Configuración del secreto de mTLS
<a name="smaa-auth-secret"></a>

El secreto CLIENT\$1CERTIFICATE\$1TLS\$1AUTH requiere un campo de certificado y un campo de clave privada. Para una clave privada cifrada, el secreto requiere una contraseña de clave privada. El certificado y la clave privada deben estar en formato PEM.

**nota**  
EventBridge admite los algoritmos de [PBES1](https://datatracker.ietf.org/doc/html/rfc2898/#section-6.1)cifrado de clave privada (pero no PBES2).

El campo de certificado debe contener una lista de certificados y debe comenzar por el certificado de cliente, seguido de cualquier certificado intermedio, y finalizar con el certificado raíz. Cada certificado debe comenzar en una nueva línea con la siguiente estructura:

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

Secrets Manager admite secretos de hasta 65 536 bytes, que supone suficiente espacio para cadenas de certificados largas.

El formato de la clave privada debe ser [PKCS \$18](https://datatracker.ietf.org/doc/html/rfc5208), con la siguiente estructura:

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

Para una clave privada cifrada, utilice la siguiente estructura:

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

El siguiente ejemplo muestra el contenido de un secreto para la autenticación de mTLS mediante una clave privada cifrada. Para una clave privada cifrada, incluya la contraseña de la clave privada en el secreto.

```
{
 "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-----"
}
```

### ¿Cómo EventBridge elegir un bróker bootstrap
<a name="pipes-msk-bootstrap-brokers"></a>

EventBridge elige un [agente de arranque](https://docs.aws.amazon.com/msk/latest/developerguide/msk-get-bootstrap-brokers.html) en función de los métodos de autenticación disponibles en su clúster y de si proporciona un secreto para la autenticación. Si proporciona un secreto para mTLS o SASL/SCRAM, elige EventBridge automáticamente ese método de autenticación. Si no proporciona un secreto, EventBridge elija el método de autenticación más seguro que esté activo en su clúster. El siguiente es el orden de prioridad en el que se EventBridge selecciona un intermediario, desde la autenticación más fuerte hasta la más débil:
+ mTLS (secreto proporcionado para mTLS)
+ SASL/SCRAM (secret provided for SASL/SCRAM)
+ SASL IAM (no se proporciona secreto y la autenticación de IAM está activa)
+ TLS no autenticada (no se proporciona secreto y la autenticación de IAM no está activa)
+ Texto sin formato (no se proporciona secreto y tanto la autenticación de IAM como la TLS no autenticada no están activas)

**nota**  
Si no EventBridge puede conectarse al tipo de corredor más seguro, no intentará conectarse a un tipo de corredor diferente (más débil). Si EventBridge quiere elegir un tipo de intermediario más débil, desactive todos los métodos de autenticación más seguros de su clúster.

## Configuración de red
<a name="pipes-msk-vpc-config"></a>

EventBridge debe tener acceso a los recursos de Amazon Virtual Private Cloud (Amazon VPC) asociados a su clúster de Amazon MSK.
+ Para acceder a la VPC de su clúster de Amazon MSK, EventBridge puede utilizar el acceso saliente a Internet para las subredes de su fuente. Para las subredes privadas, puede ser una puerta de enlace NAT o su propia NAT. Asegúrese de que la NAT tiene una dirección IP pública y puede conectarse a Internet. Para las subredes públicas, debe usar puntos de conexión de VPC (se explica a continuación).
+ EventBridge Pipes también admite la entrega directa de eventos [AWS PrivateLink](https://aws.amazon.com/privatelink/), lo que le permite enviar eventos desde una fuente de eventos ubicada en un Amazon Virtual Private Cloud (Amazon VPC) a un destino de Pipes sin tener que atravesar la red pública de Internet. Puedes usar Pipes para sondear desde Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka autogestionado y Amazon MQ fuentes que residen en una subred privada sin necesidad de implementar una puerta de enlace a Internet, configurar reglas de firewall o configurar servidores proxy. También puede usar puntos de conexión de VPC para admitir la entrega desde clústeres de Kafka en subredes públicas.

  Para configurar un punto de conexión de VPC, consulte [Crear un punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) en la *Guía del usuario de AWS PrivateLink *. En Nombre del servicio, seleccione `com.amazonaws.region.pipes-data`.

Configure sus grupos de seguridad de Amazon VPC con las siguientes reglas (como mínimo):
+ Reglas de entrada: permiten todo el tráfico en el puerto del agente de Amazon MSK para los grupos de seguridad para su origen.
+ Reglas de salida: permiten todo el tráfico en el puerto 443 para todos los destinos. Permiten todo el tráfico en el puerto del agente de Amazon MSK para los grupos de seguridad especificados para su origen.

  Los puertos del agente incluyen:
  + 9092 para texto sin formato
  + 9094 para TLS
  + 9096 para SASL
  + 9098 para IAM

**nota**  
La configuración de Amazon VPC se puede detectar a través de la [API de Amazon MSK](https://docs.aws.amazon.com/msk/1.0/apireference/resources.html). No tiene que configurarla durante la configuración.

## ID del grupo de consumidores personalizable
<a name="pipes-msk-consumer-group"></a>

Al configurar Apache Kafka como origen, puede especificar un ID de grupo de consumidores. Este ID de grupo de consumidores es un identificador existente para el grupo de consumidores de Apache Kafka al que desea que se una su canalización. Puede utilizar esta función para migrar cualquier configuración actual de procesamiento de registros de Apache Kafka de otros usuarios a otra. EventBridge

Si especifica un ID de grupo de consumidores y hay otros sondeadores activos dentro de ese grupo de consumidores, Apache Kafka distribuirá los mensajes entre todos los consumidores. En otras palabras, EventBridge no recibe todos los mensajes relacionados con el tema de Apache Kafka. Si EventBridge quiere gestionar todos los mensajes del tema, desactive cualquier otro sondeo de ese grupo de consumidores.

Además, si especificas un ID de grupo de consumidores y Apache Kafka encuentra un grupo de consumidores válido existente con el mismo ID, EventBridge ignora el `StartingPosition` parámetro de tu canal. En su lugar, EventBridge comienza a procesar los registros de acuerdo con la compensación comprometida del grupo de consumidores. Si especificas un ID de grupo de consumidores y Apache Kafka no encuentra un grupo de consumidores existente, EventBridge configura tu fuente con el especificado. `StartingPosition`

El ID del grupo de consumidores que especifique debe ser único entre todos los orígenes de eventos de Apache Kafka. Tras crear una canalización con el ID de grupo de consumidores especificado, no puede actualizar este valor.

## Escalado automático del origen de Amazon MSK
<a name="pipes-msk-ops-scaling"></a>

Al crear inicialmente una fuente de Amazon MSK, EventBridge asigna un consumidor para procesar todas las particiones del tema Apache Kafka. Cada consumidor tiene varios procesadores que se ejecutan en paralelo para gestionar el aumento de las cargas de trabajo. Además, aumenta o reduce EventBridge automáticamente el número de consumidores en función de la carga de trabajo. Para conservar el orden de mensajes en cada partición, el número máximo de consumidores es un consumidor por partición en el tema.

En intervalos de un minuto, EventBridge evalúa el desfase de compensación por consumo de todas las secciones del tema. Si el retraso es demasiado alto, la partición recibe los mensajes más rápido de lo que EventBridge puede procesarlos. Si es necesario, EventBridge añade o elimina consumidores del tema. El proceso de escalado para agregar o eliminar consumidores se produce dentro de los tres minutos posteriores a la evaluación.

Si su objetivo está sobrecargado, EventBridge reduce la cantidad de consumidores. Esta acción reduce la carga de trabajo de la canalización al reducir el número de mensajes que los consumidores pueden recuperar y enviar a la canalización.

# Flujos de Apache Kafka como origen de las canalizaciones de EventBridge.
<a name="eb-pipes-kafka"></a>

Apache Kafka es una plataforma de secuencia de eventos de código abierto que admite cargas de trabajo como canalizaciones de datos y análisis de streaming. Puede utilizar [Amazon Managed Streaming para Apache Kafka](eb-pipes-msk.md) (Amazon MSK) o un clúster de Apache Kafka autoadministrado. En terminología de AWS, un clúster *autoadministrado* se refiere a cualquier clúster de Apache Kafka que no esté alojado por AWS. Esto incluye tanto los clústeres que gestione usted mismo como los alojados por un proveedor externo, como [https://www.confluent.io/](https://www.confluent.io/), [https://www.cloudkarafka.com/](https://www.cloudkarafka.com/) o [https://redpanda.com/](https://redpanda.com/).

Para obtener más información sobre otras opciones de alojamiento de AWS para su clúster, consulte [Prácticas recomendadas para ejecutar Apache Kafka en AWS](https://aws.amazon.com/blogs/big-data/best-practices-for-running-apache-kafka-on-aws/) en el *blog de macrodatos de AWS*.

Apache Kafka como origen funciona de manera similar a utilizar Amazon Simple Queue Service (Amazon SQS) o Amazon Kinesis. EventBridge sondea internamente nuevos mensajes del origen y luego invoca sincrónicamente el destino. EventBridge lee los mensajes en lotes y los proporciona a su función como carga de eventos. El tamaño máximo del lote es configurable. (El valor predeterminado es 100 mensajes).

Para los orígenes basados en Apache Kafka, EventBridge admite parámetros de control de procesamiento, como los plazos de procesamiento por lotes y el tamaño del lote.

EventBridge envía el lote de mensajes en el parámetro de evento cuando invoca su canalización. La carga de eventos contiene una matriz de mensajes. Cada elemento de la matriz contiene detalles del tema Apache Kafka y el identificador de partición de Apache Kafka, junto con una marca de tiempo y un mensaje codificado en base64.

**Eventos de ejemplo**

En el siguiente evento de ejemplo se muestra la información que recibe la canalización. Puede usar este evento para crear y filtrar sus patrones de eventos o para definir la transformación de entrada. No todos los campos se pueden filtrar. Para obtener más información sobre los campos que puede filtrar, consulte [Filtrado de eventos en 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
        ]
      }
    ]
  }
]
```

## Autenticación de clústeres de Apache Kafka
<a name="pipes-smaa-authentication"></a>

EventBridge admite varios métodos para autenticarse con su clúster de Apache Kafka autoadministrado. Asegúrese de configurar el clúster de Apache Kafka para que utilice uno de estos métodos de autenticación admitidos. Para obtener más información acerca de la seguridad de Apache Kafka, consulte la sección [Seguridad](http://kafka.apache.org/documentation.html#security) de la documentación de Apache Kafka.

### Acceso mediante VPC
<a name="pipes-smaa-auth-vpc"></a>

Si utiliza un entorno de Apache Kafka autoadministrado en el que solo los usuarios de Apache Kafka de su VPC acceden a sus agentes de Apache Kafka, debe configurar Amazon Virtual Private Cloud (Amazon VPC) como origen de Apache Kafka. 

### Autenticación SASL/SCRAM
<a name="pipes-smaa-auth-sasl"></a>

Las canalizaciones de EventBridge admiten autenticación simple y autenticación de capa de seguridad/mecanismo de autenticación de respuesta por desafío saltado (SASL/SCRAM) con cifrado de seguridad de la capa de transporte (TLS). EventBridge envía las credenciales cifradas para autenticarse con el clúster. Para obtener más información acerca de la autenticación SASL/SCRAM, consulte [RFC 5802](https://tools.ietf.org/html/rfc5802).

EventBridge admite la autenticación SASL/PLAIN con cifrado TLS. Con la autenticación SASL/PLAIN, las canalizaciones de EventBridge envían las credenciales como texto (sin cifrar) al servidor.

Para la autenticación SASL, almacene las credenciales de inicio de sesión como secreto en AWS Secrets Manager.

### Autenticación TLS mutua
<a name="pipes-smaa-auth-mtls"></a>

TLS mutua (mTLS) proporciona autenticación bidireccional entre el cliente y el servidor. El cliente envía un certificado al servidor para que el servidor verifique el cliente, mientras que el servidor envía un certificado al cliente para que el cliente verifique el servidor. 

En Apache Kafka autoadministrado, EventBridge actúa como cliente. Puede configurar un certificado de cliente (como secreto en Secrets Manager) para autenticar las canalizaciones de EventBridge con los agentes de Apache Kafka. El certificado de servidor debe estar firmado por una entidad de certificación que esté en el almacén de confianza del servidor.

El clúster de Apache Kafka envía un certificado de servidor a las canalizaciones de EventBridge para autenticar a los agentes de Apache Kafka las canalizaciones de EventBridge. El certificado de servidor puede ser un certificado de entidad de certificación pública o un certificado autofirmado o de entidad de certificación privada. El certificado de entidad de certificación debe estar firmado por una entidad de certificación que se encuentre en el almacén de confianza de las canalizaciones de EventBridge. Para un certificado autofirmado o de entidad de certificación privada, configure el certificado de entidad de certificación raíz del servidor (como secreto en Secrets Manager). Las canalizaciones de EventBridge utilizan el certificado raíz para verificar los agentes de Apache Kafka.

Para obtener más información acerca de mTLS, consulte [Presentación de la autenticación de TLS mutua para Amazon MSK como origen](https://aws.amazon.com/blogs/compute/introducing-mutual-tls-authentication-for-amazon-msk-as-an-event-source).

### Configuración del secreto de certificado de cliente
<a name="pipes-smaa-auth-secret"></a>

El secreto CLIENT\$1CERTIFICATE\$1TLS\$1AUTH requiere un campo de certificado y un campo de clave privada. Para una clave privada cifrada, el secreto requiere una contraseña de clave privada. El certificado y la clave privada deben estar en formato PEM.

**nota**  
Las canalizaciones de EventBridge admiten los algoritmos de cifrado de claves privadas [PBES1](https://datatracker.ietf.org/doc/html/rfc2898/#section-6.1) (pero no PBES2).

El campo de certificado debe contener una lista de certificados y debe comenzar por el certificado de cliente, seguido de cualquier certificado intermedio, y finalizar con el certificado raíz. Cada certificado debe comenzar en una nueva línea con la siguiente estructura:

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

Secrets Manager admite secretos de hasta 65 536 bytes, que supone suficiente espacio para cadenas de certificados largas.

El formato de la clave privada debe ser [PKCS \$18](https://datatracker.ietf.org/doc/html/rfc5208), con la siguiente estructura:

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

Para una clave privada cifrada, utilice la siguiente estructura:

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

El siguiente ejemplo muestra el contenido de un secreto para la autenticación de mTLS mediante una clave privada cifrada. Para una clave privada cifrada, incluya la contraseña de la clave privada en el secreto.

```
{
 "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-----"
}
```

### Configuración del secreto de certificado de entidad de certificación raíz del servidor
<a name="pipes-smaa-auth-ca-cert"></a>

Cree este secreto si sus agentes de Apache Kafka utilizan cifrado TLS con certificados firmados por una entidad de certificación privada. Puede utilizar el cifrado TLS para autenticación VPC, SASL/SCRAM, SASL/PLAIN o mTLS.

El secreto de certificado de entidad de certificación raíz del servidor requiere un campo que contenga el certificado de entidad de certificación raíz del agente de Apache Kafka en formato PEM. La estructura del secreto se muestra en el ejemplo siguiente.

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

## Configuración de red
<a name="pipes-kafka-vpc-config"></a>

Si utiliza un entorno de Apache Kafka autoadministrado que utiliza conectividad de VPC privada, EventBridge debe tener acceso a los recursos de Amazon Virtual Private Cloud (Amazon VPC) asociados a sus agentes de Apache Kafka. 
+ Para acceder a la VPC de su clúster de Apache Kafka, EventBridge puede usar el acceso saliente a Internet para las subredes de su origen. Para las subredes privadas, puede ser una puerta de enlace NAT o su propia NAT. Asegúrese de que la NAT tiene una dirección IP pública y puede conectarse a Internet. Para las subredes públicas, debe usar puntos de conexión de VPC (se explica a continuación).
+ La canalizaciones de EventBridge también admiten la entrega directa de eventos mediante [AWS PrivateLink](https://aws.amazon.com/privatelink/), lo que le permite enviar eventos desde un origen de eventos ubicado en Amazon Virtual Private Cloud (Amazon VPC) a un destino de canalizaciones sin tener que atravesar la red pública de Internet. Puede usar las canalizaciones para sondear desde Amazon Managed Streaming for Apache Kafka (Amazon MSK), Apache Kafka autoadministrado y orígenes de Amazon MQ que residen en una subred privada sin necesidad de implementar una puerta de enlace de Internet, configurar reglas de firewall o configurar servidores proxy. También puede usar puntos de conexión de VPC para admitir la entrega desde clústeres de Kafka en subredes públicas.

  Para configurar un punto de conexión de VPC, consulte [Crear un punto de conexión de VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) en la *Guía del usuario de AWS PrivateLink*. En Nombre del servicio, seleccione `com.amazonaws.region.pipes-data`.

Configure sus grupos de seguridad de Amazon VPC con las siguientes reglas (como mínimo):
+ Reglas de entrada: permiten todo el tráfico en el puerto del agente de Apache Kafka para los grupos de seguridad especificados para su origen.
+ Reglas de salida: permiten todo el tráfico en el puerto 443 para todos los destinos. Permiten todo el tráfico en el puerto del agente de Apache Kafka para los grupos de seguridad especificados para su origen.

  Los puertos del agente incluyen:
  + 9092 para texto sin formato
  + 9094 para TLS
  + 9096 para SASL
  + 9098 para IAM

## Escalado automático de los consumidores con orígenes de Apache Kafka
<a name="pipes-kafka-ops-scaling"></a>

Al crear inicialmente un origen de Apache Kafka, EventBridge asigna un consumidor para procesar todas las particiones en el tema de Kafka. Cada consumidor tiene varios procesadores que se ejecutan en paralelo para gestionar el aumento de las cargas de trabajo. Además, EventBridge reduce o escala verticalmente de manera automática el número de consumidores, en función de la carga de trabajo. Para conservar el orden de mensajes en cada partición, el número máximo de consumidores es un consumidor por partición en el tema.

En intervalos de un minuto, EventBridge evalúa el retraso de compensación del consumidor de todas las particiones del tema. Si el retraso es demasiado alto, la partición recibe mensajes más rápido de lo que EventBridge puede procesarlos. Si es necesario, EventBridge agrega o elimina a los consumidores del tema. El proceso de escalado para agregar o eliminar consumidores se produce dentro de los tres minutos posteriores a la evaluación.

Si su destino está sobrecargado, EventBridge reduce el número de consumidores. Esta acción reduce la carga de trabajo de la función al reducir el número de mensajes que los consumidores pueden recuperar y enviar a la función.

# Amazon Simple Queue Service como origen de canalizaciones de EventBridge
<a name="eb-pipes-sqs"></a>

Puede utilizar canalizaciones de EventBridge para recibir registros de una cola de Amazon SQS. A continuación, si lo desea, puede filtrar o enriquecer estos registros antes de enviarlos a un destino disponible para su procesamiento.

Puede utilizar una canalización para procesar mensajes en una cola de Amazon Simple Queue Service (Amazon SQS). Las canalizaciones de EventBridge son compatibles con [colas estándar](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/standard-queues.html) y [colas de primero en entrar, primero en salir (FIFO)](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html). Con Amazon SQS, puede descargar tareas de un componente de su aplicación enviándolas a una cola para, a continuación, procesarlas de forma asíncrona.

EventBridge sondea la cola e invoca su canalización sincrónicamente con un evento que contiene mensajes de cola. EventBridge lee mensajes en lotes e invoca la canalización una vez por lote. Cuando la canalización procesa correctamente un lote, EventBridge elimina sus mensajes de la cola.

De forma predeterminada, EventBridge sondea hasta 10 mensajes de la cola simultáneamente y envía ese lote a la canalización. Para evitar invocar a la canalización con un número de registros pequeño, puede indicar al origen del evento que almacene en búfer registros hasta 5 minutos configurando una ventana de lote. Antes de invocar la canalización, EventBridge continúa sondeando los mensajes de la cola estándar de Amazon SQS hasta que ocurre una de estas cosas:
+ La ventana de lote caduca.
+ Se alcanza la cuota de tamaño de carga de invocación.
+ Se alcanza el tamaño máximo del lote configurado.

**nota**  
Si utiliza una ventana de lote y la cola de SQS contiene muy poco tráfico, EventBridge puede esperar hasta 20 segundos antes de invocar la canalización. Esto sucederá incluso si establece una ventana de lote inferior a 20 segundos. Para las colas FIFO, los registros contienen atributos adicionales relacionados con la deduplicación y la secuenciación.

Cuando EventBridge lee un lote, los mensajes se mantienen en la cola, pero se ocultan durante el [tiempo de espera de visibilidad](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) de la cola. Cuando su canalización procesa correctamente el lote, EventBridge elimina los mensajes de la cola. De forma predeterminada, si la función detecta un error al procesar un lote, todos los mensajes de ese lote se vuelven a ver en la cola. Por este motivo, el código de su canalización debe ser capaz de procesar el mismo mensaje varias veces sin efectos secundarios no deseados. Puede modificar este comportamiento de reprocesamiento si incluye errores de elementos por lotes en la respuesta de la canalización. En el ejemplo siguiente se muestra un evento para un lote de dos mensajes.

**Eventos de ejemplo**

En el siguiente evento de ejemplo se muestra la información que recibe la canalización. Puede usar este evento para crear y filtrar sus patrones de eventos o para definir la transformación de entrada. No todos los campos se pueden filtrar. Para obtener más información sobre los campos que puede filtrar, consulte [Filtrado de eventos en Amazon EventBridge Pipes](eb-pipes-event-filtering.md).

**Cola estándar**

```
[
  {
    "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"
  }
]
```

**Cola 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"
  }
]
```

## Escalado y procesamiento
<a name="pipes-sqs-scaling"></a>

Para las colas estándar, EventBridge utiliza el [sondeo largo](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-short-and-long-polling.html) para sondear una cola hasta que se active. Cuando se encuentran disponibles los mensajes, EventBridge lee hasta cinco lotes y los envía a su canalización. Si los mensajes siguen estando disponibles, EventBridge aumenta el número de procesos que son lotes de lectura hasta 300 instancias más por minuto. El número máximo de lotes que una canalización puede procesar simultáneamente es 1000.

Para colas FIFO, EventBridge envía mensajes a su canalización en el orden en que los recibe. Cuando envíe un mensaje a una cola FIFO, especifique un [ID de grupo de mensajes](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html). Amazon SQS facilita la entrega de los mensajes del mismo grupo a EventBridge, en orden. EventBridge ordena los mensajes recibidos en grupos y envía solo un lote a la vez para un grupo. Si la canalización devuelve un error, esta realiza todos los reintentos en los mensajes afectados antes de que EventBridge reciba mensajes adicionales del mismo grupo.

## Configuración de una cola para utilizarla con canalizaciones de EventBridge
<a name="pipes-sqs-configure-queue"></a>

[Cree una cola de SQS](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-create-queue.html) que sirva como origen para la canalización. A continuación, configure la cola para dar tiempo a su canalización a procesar cada lote de eventos y para que EventBridge vuelva a actuar en respuesta a los errores de limitación controlada a medida que escala verticalmente.

Para permitir que su canalización tenga tiempo para procesar cada lote de registros, establezca el tiempo de espera de visibilidad de la cola de origen hasta al menos seis veces el tiempo de ejecución combinado de los componentes de destino y enriquecimiento de la canalización. El tiempo adicional permitirá a EventBridge volver a intentar realizar los procesos en caso de que la canalización se vea limitada debido al procesamiento de un lote anterior.

Si su canalización no puede procesar un mensaje en repetidas ocasiones, Amazon SQS podrá enviar dicho mensaje a una [cola de mensajes fallidos](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html). Cuando su canalización devuelve un error, EventBridge lo mantiene en la cola. Después de que se supera el tiempo de espera de visibilidad, EventBridge el mensaje de nuevo. Para enviar mensajes a una segunda cola después de recibir varias veces, configure una cola de mensajes fallidos en la cola de origen.

**nota**  
Asegúrese de configurar la cola de mensajes fallidos en la cola de origen y no en la canalización. La cola de mensajes fallidos que configure en una canalización se utiliza para la cola de invocación asíncrona de la canalización, no para las colas de origen de eventos.

Si la canalización devuelve un error o no puede invocarse porque está en la máxima simultaneidad, es posible que el procesado tenga éxito tras algunos intentos adicionales. Para dar a los mensajes más oportunidades de ser procesados antes de enviarlos a la cola de mensajes fallidos, establezca el `maxReceiveCount` de la política de redirección de la cola de origen a como mínimo **5**.

## Informes de fallos de elementos de lote
<a name="pipes-sqs-batch-failures"></a>

Cuando EventBridge consume y procesa datos de flujos de un origen, de forma predeterminada asigna puntos de control hasta el número de secuencia más alto de un lote solo cuando el lote ese procesa correctamente por completo. Para evitar el reprocesamiento de los mensajes procesados correctamente en un lote con errores, puede configurar el enriquecimiento o el destino para que devuelva un objeto que indique qué mensajes se han procesado correctamente y cuáles no. Esto se denomina respuesta parcial por lotes.

Para obtener más información, consulte [Fallo de lote parcial](eb-pipes-batching-concurrency.md#pipes-partial-batch-failure).

### Condiciones de éxito y fracaso
<a name="pipes-sqs-batch-failures-conditions"></a>

EventBridge trata un lote como un éxito completo si devuelve cualquiera de los siguientes elementos:
+ Una lista `batchItemFailure` vacía
+ Una lista `batchItemFailure` nula
+ Una `EventResponse` vacía
+ Una `EventResponse` nula

EventBridge trata un lote como un error completo si devuelve cualquiera de los siguientes elementos:
+ Una cadena `itemIdentifier` vacía
+ Una nula `itemIdentifier`
+ Un `itemIdentifier` con un mal nombre de clave

EventBridge intenta volver a procesar los mensajes fallidos conforme a su estrategia de reintentos.