Ceci est le paramètre de clé de partition de table
Lorsque j'ai essayé d'obtenir un élément de la table, il affiche cette erreur
botocore.exceptions.ClientError: une erreur s'est produite (ValidationException) lors de l'appel de l'opération GetItem: l'élément clé fourni ne correspond pas au schéma
C'est mon code
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('testDynamodb')
response = table.get_item(Key={'userId': "user2873"})
item = response['Item']
print(item)
Des idées? Merci.
Votre schéma de table a une clé de hachage et une clé de tri définies. Lorsque vous utilisez DynamoDB GetItem, vous devez fournir les deux. Voici un extrait de documentation
Pour la clé primaire, vous devez fournir tous les attributs. Par exemple, avec une clé primaire simple, vous devez uniquement fournir une valeur pour la clé de partition. Pour une clé primaire composite, vous devez fournir des valeurs pour la clé de partition et la clé de tri.
Donc, étant donné votre exemple, voici à quoi devraient ressembler les paramètres get_item:
response = table.get_item(Key={'userId': "user2873", 'createdAt': "1489376547"})
Une autre chose qui fonctionne est le code suivant ci-dessous:
from boto3.dynamodb.conditions import Key
result = table.query(
KeyConditionExpression=Key('userId').eq('user2873')
)