Esta es la configuración de la clave de partición de la tabla 
Cuando traté de obtener un elemento de la tabla, imprime este error
botocore.exceptions.ClientError: se produjo un error (ValidationException) al llamar a la operación GetItem: el elemento clave proporcionado no coincide con el esquema
este es mi codigo
dynamodb = boto3.resource('dynamodb') table = dynamodb.Table('testDynamodb') response = table.get_item(Key={'userId': "user2873"}) item = response['Item'] print(item)¿Algunas ideas? Gracias.
Su esquema de tabla tiene definidas tanto la clave hash como la clave de ordenación. Al usar DynamoDB GetItem, debe proporcionar ambos, aquí hay un extracto de la documentación
Para la clave principal, debe proporcionar todos los atributos. Por ejemplo, con una clave principal simple, solo necesita proporcionar un valor para la clave de partición. Para una clave principal compuesta, debe proporcionar valores tanto para la clave de partición como para la clave de ordenación.
Entonces, dado su ejemplo, así es como deberían verse los parámetros get_item:
response = table.get_item(Key={'userId': "user2873", 'createdAt': "1489376547"})Otra cosa que funciona es el siguiente código a continuación:
from boto3.dynamodb.conditions import Key result = table.query( KeyConditionExpression=Key('userId').eq('user2873') )También tengo el mismo problema. La solución a esto es:
Al crear la tabla, defina solo usrID en su schema como clave Hash . [Me refiero a la clave principal única]
Luego puede llamar a get item según su usrID . Si está definiendo usrId y createdAt en su Schema de tabla como Hash y Sort Key. [Me refiero a la clave principal compuesta] Debe proporcionar ambos al llamar a getItem.