Estoy tratando de actualizar un elemento en el que necesito editar unos 150 atributos diferentes en el elemento y obtengo una expresión de Invalid UpdateExpression: Expression size has exceeded the maximum allowed size . Supongo que es porque mi cadena UpdateExpression es muy larga. Los documentos de AWS dicen que la longitud máxima de los parámetros de una expresión es de 4 kb .
¿Cómo haría para reconciliar este error? Supongo que podría dividir la solicitud en varias, pero eso parece sucio.
Hay algunas otras preguntas aquí sobre el límite de tamaño del Item , pero no he encontrado nada sobre el límite de UpdateExpression .
Terminé limitando la solicitud a 50 actualizaciones de atributos y eso, junto con transactWrite y ConsistentRead , solucionó mi problema.
No me encontré con una consulta de actualización muy larga para DynamoDB, pero si tengo más de 50 actualizaciones, ¡lo dividiría en 2 solicitudes de actualización!
De hecho, ha alcanzado el límite de los parámetros de expresión .
Técnicamente, puede evitar esto si crea otra solicitud PutItem que reemplazará el elemento que estaba allí anteriormente.
Al realizar cualquier escritura (incluidas las actualizaciones), deberá esperar a que el resultado se propague a los nodos que utiliza su tabla de DynamoDB (debido a la eventual coherencia) o utilizar lecturas sólidas y coherentes cuando intente realizar una solicitud GetItem, Query o Scan que debe devolver este artículo inmediatamente después de la escritura.