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.
Procesamiento por lotes y simultaneidad de canalizaciones de Amazon EventBridge
Comportamiento de procesamiento por lotes
Las canalizaciones de EventBridge admiten el procesamiento por lotes desde el origen hasta los destinos que lo admiten. Además, se admite el procesamiento por lotes y el enriquecimiento para AWS Lambda y AWS Step Functions. Como los diferentes servicios admiten diferentes niveles de procesamiento por lotes, no se puede configurar una canalización con un tamaño de lote mayor que el que admite el destino. Por ejemplo, las fuentes de streaming de Amazon Kinesis admiten un tamaño de lote máximo de 10.000 registros, pero Amazon Simple Queue Service admite un máximo de 10 mensajes por lote como destino. Por lo tanto, una canalización desde un flujo de Kinesis a una cola de Amazon SQS puede tener un tamaño máximo de lote configurado en el origen de 10.
Si configura una canalización con un enriquecimiento o un destino que no admite el procesamiento por lotes, no podrá activar el procesamiento por lotes en la origen.
Cuando se activa el procesamiento por lotes en el origen, las matrices de registros JSON pasan por la canalización y, a continuación, se asignan a la API del lote de un enriquecimiento o destino compatible. Los transformadores de entrada se aplican por separado a cada registro JSON individual de la matriz, no a la matriz en su conjunto. Para ver ejemplos de estas matrices, consulte Orígenes de canalizaciones de Amazon EventBridge y seleccione un origen específico. Las canalizaciones utilizarán la API de lote para el enriquecimiento o el destino admitidos, incluso si el tamaño del lote es 1. Si el enriquecimiento o el destino no tiene una API de lote, pero recibe cargas completas de JSON, como Lambda y Step Functions, toda la matriz JSON se envía en una sola solicitud. La solicitud se enviará como una matriz JSON incluso si el tamaño del lote es 1.
Si una canalización está configurada para el procesamiento por lotes en el origen y el destino admite el procesamiento por lotes, puede devolver una matriz de elementos JSON a partir de su enriquecimiento. Esta matriz puede incluir una matriz más corta o más larga que el origen original. Sin embargo, si la matriz es mayor que el tamaño de lote admitido por el destino, la canalización no invocará el destino.
Destinos procesables por lotes admitidos
Destino | Tamaño máximo de lote |
---|---|
Registros de CloudWatch | 10 000 |
Bus de evento de EventBridge | 10 |
Flujo de Firehose | 500 |
Flujo de Kinesis | 500 |
Función de Lambda | definido por el cliente |
Máquina de estado de Step Functions | definido por el cliente |
Tema de Amazon SNS | 10 |
Cola de Amazon SQS | 10 |
Los siguientes enriquecimientos y destinos reciben la carga completa del evento por lotes para su procesamiento y están limitados por el tamaño total de la carga del evento, más que por el tamaño del lote:
Máquina de estado de Step Functions (262.144 caracteres)
Función de Lambda (6 MB)
Fallo de lote parcial
Para Amazon SQS y orígenes de flujos, como Kinesis y DynamoDB, las canalizaciones de EventBridge admiten la gestión de errores parciales de lotes de destino. Si el destino admite el procesamiento por lotes y solo una parte del lote se ejecuta correctamente, EventBridge vuelve a intentar agrupar automáticamente el resto de la carga. En el caso del contenido enriquecido más actualizado, este reintento se realiza durante todo el proceso, incluida la reinvocación de cualquier enriquecimiento configurado.
No se admite la gestión de fallos parciales de lotes.
Para los destinos Lambda y Step Functions, también puede especificar un error parcial devolviendo una carga con una estructura definida desde el destino. Esto indica los eventos que se deben volver a intentar.
Ejemplo de estructura de carga con fallo parcial
{ "batchItemFailures": [ { "itemIdentifier": "id2" }, { "itemIdentifier": "id4" } ]
En el ejemplo, el itemIdentifier
coincide con el ID de los eventos gestionados por su destino desde su origen original. Para Amazon SQS, este es el messageId
. Para Kinesis y DynamoDB, este es el eventID
. Para que las canalizaciones de EventBridge gestionen adecuadamente los fallos parciales de lotes desde los destinos, estos campos deben incluirse en cualquier carga de matriz devuelta por el enriquecimiento.
Comportamiento de rendimiento y simultaneidad
Cada evento o lote de eventos recibido por una canalización que se dirige a un enriquecimiento o un destino se considera una ejecución de canalización. Una canalización en estado STARTED
sondea continuamente los eventos desde el origen y se amplía o reduce en función de la acumulación de trabajo disponible y de los ajustes de procesamiento por lotes configurados.
Para conocer las cuotas de ejecuciones simultáneas de canalizaciones y el número de canalizaciones por cuenta y región, consulte Cuotas de canalizaciones de EventBridge.
De forma predeterminada, una sola canalización se escalará hasta el siguiente número máximo de ejecuciones simultáneas, en función del origen:
DynamoDB: las ejecuciones simultáneas pueden ascender tanto como el
ParallelizationFactor
configurado en la canalización multiplicado por el número de particiones del flujo.Apache Kafka: las ejecuciones simultáneas pueden ascender tanto como el número de particiones sobre el tema, hasta 1000.
Kinesis: las ejecuciones simultáneas pueden ascender tanto como el
ParallelizationFactor
configurado en la canalización multiplicado por el número de particiones del flujo.Amazon MQ: 5
Amazon SQS: 1250
Si necesita un rendimiento máximo de sondeo o límites de simultaneidad más altos, póngase en contacto con el servicio de asistencia
nota
Los límites de ejecución se consideran limitaciones de seguridad máximas. Si bien el sondeo no se limita por debajo de estos valores, es posible que una canalización o una cuenta superen estos valores recomendados.
Las ejecuciones de canalizaciones están limitadas a un máximo de 5 minutos, incluidos el enriquecimiento y el procesamiento objetivo. Este límite no se puede aumentar.
Las canalizaciones con orígenes estrictamente ordenados, como las colas FIFO de Amazon SQS, los flujos de Kinesis y DynamoDB, o los temas de Apache Kafka, están limitadas aún más en cuanto a la simultaneidad por la configuración del origen, por ejemplo, el número de ID de grupos de mensajes para las colas FIFO o el número de particiones para las colas de Kinesis. Como el orden está estrictamente garantizado dentro de estas restricciones, una canalización con un origen ordenado no puede superar esos límites de simultaneidad.