テーブルからアイテムを取得しようとすると、このエラーが出力されます
botocore.exceptions.ClientError:GetItem操作の呼び出し時にエラーが発生しました(ValidationException):指定されたキー要素がスキーマと一致しません
これは私のコードです
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('testDynamodb')
response = table.get_item(Key={'userId': "user2873"})
item = response['Item']
print(item)
何か案は?ありがとう。
テーブルスキーマには、ハッシュキーとソートキーの両方が定義されています。 DynamoDB GetItemを使用する場合は、両方を指定する必要があります。 documentation からの抜粋です。
主キーの場合、すべての属性を指定する必要があります。たとえば、単純な主キーでは、パーティションキーの値を指定するだけで済みます。複合プライマリキーの場合、パーティションキーとソートキーの両方に値を指定する必要があります。
あなたの例を考えると、get_itemパラメータは次のようになります。
response = table.get_item(Key={'userId': "user2873", 'createdAt': "1489376547"})
動作するもう1つのことは、次のコードです。
from boto3.dynamodb.conditions import Key
result = table.query(
KeyConditionExpression=Key('userId').eq('user2873')
)