AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
¿Por qué falla mi llamada a la API TransactWriteItems en Amazon DynamoDB?
Mi llamada a la API TransactWriteItems falla en Amazon DynamoDB. Quiero saber la causa raíz del problema.
Resolución
La solicitud de la API TransactWriteItems puede fallar o ser rechazada por DynamoDB por varios motivos. Consulte las siguientes resoluciones para ver los pasos de solución de problemas.
La expresión de condición contiene una condición que no se cumple
Si no se cumple una condición que se estableció para una de las operaciones de su solicitud de TransactWriteItems, se producirá un error en todas las operaciones. La solicitud de TransactWriteItems es una operación de escritura sincrónica que agrupa hasta 25 solicitudes de acción. O bien todas las solicitudes de acción se realizan correctamente o todas las solicitudes de acción fallan.
Si su solicitud falla debido a este problema, recibirá un mensaje de error similar al siguiente:
"message": "Transaction cancelled, please refer cancellation reasons for specific reasons [ConditionalCheckFailed, None, None, None] (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: TransactionCanceledException;..."
Para resolver este problema, asegúrese de que se cumplen todas las condiciones que estableció para su solicitud.
La tabla con la que trabaja está en una región o cuenta diferente
Las solicitudes de TransactWriteItems le permiten trabajar con elementos de diferentes tablas. Sin embargo, solo puede trabajar con tablas que estén en la misma región y cuenta de AWS que envió la solicitud. Para resolver este problema, trabaje únicamente con tablas que estén en la misma región de AWS que la cuenta de AWS desde la que realiza la solicitud de TransactWriteItems.
El mismo elemento se gestiona mediante varias acciones en la operación TransactWriteItems
Si más de una acción de la operación de TransactWriteItems gestiona el mismo elemento, se produce un error en la solicitud y aparece un mensaje de error similar al siguiente:
«La solicitud de transacción no puede incluir varias operaciones en un elemento»
Por ejemplo, si TransactWriteItems intenta ejecutar una operación ConditionCheck y una operación Put en el mismo elemento, se produce un error TransactionConflictException en la solicitud. Puede supervisar esta excepción con la métrica TransactionConflict de su tabla de DynamoDB en Amazon CloudWatch.
Conflicto entre solicitudes de TransactWriteItems simultáneas
Se produce un conflicto transaccional debido a las solicitudes simultáneas a nivel de elemento de un elemento en varias transacciones. Los conflictos de transacciones pueden producirse por los siguientes motivos:
- Una solicitud de PutItem, UpdateItem o DeleteItem para un elemento entra en conflicto con una solicitud de TransactWriteItems en curso que incluye el mismo elemento.
- Un elemento de una solicitud de TransactWriteItems forma parte de otra solicitud de TransactWriteItems en curso.
Si se rechaza una solicitud de PutItem, UpdateItem o DeleteItem por este motivo, se produce un error TransactionConflictException en la solicitud. Sin embargo, si se rechaza una solicitud a nivel de elemento en TransactWriteItems o TransactGetItems por otro motivo, se produce un error TransactionCanceledException en la solicitud.
No hay suficiente capacidad aprovisionada para completar la transacción
Si invoca la solicitud de TransactWriteItems cuando no hay suficiente capacidad aprovisionada, la tabla de DynamoDB se limita. Para obtener más información sobre la limitación, consulte ¿Por qué se limita mi tabla de DynamoDB bajo demanda? y ¿Por qué está limitada mi tabla aprovisionada de Amazon DynamoDB?
Las transacciones fallan debido a la excepción IdempotentParameterMismatch
Puede incluir un token de cliente opcional en su solicitud de TransactWriteItems para asegurarse de que las solicitudes sean idempotentes. Las transacciones idempotentes pueden ayudar a evitar errores en las aplicaciones cuando la misma operación se envía varias veces debido a que se ha agotado el tiempo de espera de la conexión u otros problemas de conectividad.
Un token de cliente es válido durante 10 minutos después de que finalice la solicitud que lo usa. Si la solicitud con ese token se repite dentro del período de 10 minutos, pero cambia algún parámetro de la transacción, DynamoDB devuelve una excepción IdempotentParameterMismatch.
Se ha producido un error ValidationError
Si el tamaño de un elemento supera los 400 KB o un índice secundario local (LSI) es demasiado grande, se produce un error ValidationError. DynamoDB limita el tamaño de cada elemento que puede almacenar en una tabla. Si su aplicación debe almacenar más datos en un elemento de los que permite el límite de tamaño, comprima uno o más de los atributos más grandes. O bien, divida el elemento grande en varios elementos más pequeños, indexados por claves de ordenación. También puede almacenar el elemento como un objeto en un bucket de Amazon Simple Storage Service (Amazon S3). Después de hacerlo, puede almacenar el identificador de objeto de Amazon S3 en su elemento de DynamoDB. Para obtener más información, consulte Prácticas recomendadas para almacenar elementos y atributos de gran tamaño.
Los errores de validación también pueden producirse debido a los cambios realizados por la transacción. Esto significa que los parámetros de la solicitud no cumplen una o más restricciones especificadas por el servicio DynamoDB. Para obtener más información sobre los tipos de restricciones y sus mensajes de error asociados, consulte la documentación de Class TransactionCanceledException.
El tamaño total de los elementos de una transacción supera los 4 MB
La operación de TransactWriteItems no puede superar los 4 MB. Este es un límite estricto. Para obtener más información, consulte Transacciones de DynamoDB.
Se ha producido un error 4xx
Un error de usuario, como un formato de datos no válido, puede producirse por varios motivos. Por ejemplo, es posible que reciba un error 4xx por un error ResourceNotFoundException porque la operación de TransactWriteItems no puede encontrar la tabla o el índice subyacente de DynamoDB. O bien, es posible que la tabla o el índice de DynamoDB no tengan el estado ACTIVO.
Nota: Cuando usa el AWS SDK para Java, DynamoDB muestra los motivos de cancelación en la propiedad CancellationReasons. Esta propiedad no está configurada para otros lenguajes de SDK. Los motivos de cancelación de la transacción se enumeran en el orden de los elementos solicitados.
Se ha producido un error 5xx
Las transacciones también pueden fallar debido a errores del sistema que se registran como errores 5xx. Estos errores aparecen cuando el servicio no puede atender la solicitud. Estos errores pueden producirse por varios motivos, como problemas transitorios de red en la flota, problemas de infraestructura, problemas relacionados con los nodos de almacenamiento, etc. Para obtener más información, consulte Solución de problemas de errores internos del servidor en Amazon DynamoDB.
Información relacionada
- Temas
- Database
- Etiquetas
- Amazon DynamoDB
- Idioma
- Español

Contenido relevante
- preguntada hace 8 meses
OFICIAL DE AWSActualizada hace 2 años
OFICIAL DE AWSActualizada hace un año