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.
Amazon Kinesis stream como fuente de Pipes EventBridge
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. 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.
En el caso de los iteradores estándar, EventBridge utiliza el HTTP protocolo 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 eleva los récords a más de 1/2. EventBridge HTTP 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 en Amazon EventBridge Pipes.
[ { "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 los fragmentos de su transmisión de Kinesis en busca de registros a una velocidad base de 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 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 partición 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
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 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.
Condiciones de éxito y fracaso
Si devuelve alguno de los siguientes datos, considerará EventBridge que el lote se ha realizado correctamente:
Una lista
batchItemFailure
vacíaUna lista
batchItemFailure
nulaUna
EventResponse
vacíaUna
EventResponse
nula
Si devuelve alguna de las siguientes opciones, EventBridge considerará el lote como un error total:
Una cadena
itemIdentifier
vacíaUna
itemIdentifier
nulaUn
itemIdentifier
con un mal nombre de clave
EventBridge Los reintentos fallan en función de su estrategia de reintentos.