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.
Puede usar las canalizaciones de EventBridge para recibir registros en un flujo 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. Las canalizaciones de EventBridge mantienen 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. 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 una canalización de EventBridge a un consumidor de rendimiento compartido (iterador estándar) o a un consumidor de rendimiento dedicado con distribución ramificada mejorada.
Para iteradores estándar, EventBridge usa el protocolo HTTP para sondear cada partición en su flujo de Kinesis para 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 publica los registros en EventBridge sobre HTTP/2. Para obtener información detallada sobre los flujos de datos de Kinesis, consulte Lectura de datos de Amazon Kinesis Data Streams.
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 de las canalizaciones de Amazon EventBridge.
[
{
"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
EventBridge sondea las particiones de su flujo de Kinesis 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.
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
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
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.
Condiciones de éxito y fracaso
EventBridge trata un lote como un éxito completo si devuelve cualquiera de los siguientes elementos:
Una lista
batchItemFailure
vacíaUna lista
batchItemFailure
nulaUna
EventResponse
vacíaUna
EventResponse
nula
EventBridge trata un lote como un error completo si devuelve cualquiera de los siguientes elementos:
Una cadena
itemIdentifier
vacíaUna
itemIdentifier
nulaUn
itemIdentifier
con un mal nombre de clave
EventBridge intenta volver a procesar los mensajes fallidos conforme a su estrategia de reintentos.