4

Boto3/DynamoDB BatchGetItem操作に問題があります。ヘルプやガイダンスをいただければ幸いです。私はpython / awsにかなり慣れていないので、これが初心者の質問である場合は申し訳ありません。

操作を実行すると、次のエラーが発生します。

botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the BatchGetItem operation: The provided key element does not match the schema

これが私のコードです:

import boto3
dynamodb = boto3.resource('dynamodb', region_name='us-west-2')
response = dynamodb.batch_get_item(
    RequestItems={
        'test': {
            'Keys': [
                {
                    'item_ID': {
                        'S': '1'
                    }
                },
                {
                    'item_ID': {
                        'S': '2'
                    }
                }
            ],
            'ProjectionExpression': 'item_ID, color',
        }
    }
)

これは、テーブル内の項目のスクリーン キャプです。

これはテーブルの詳細のスクリーン キャプチャであり、パーティション キーが「item_ID」であり、「文字列」であることを示しています

完全なエラーメッセージは次のとおりです。

Traceback (most recent call last):
File "C:/Users/Henry Miller/PycharmProjects/bioinformatics_webapp/get_items.py", line 18, in <module>
'ProjectionExpression': 'item_ID, color',
File "C:\Users\Henry Miller\PycharmProjects\bioinformatics_webapp\venv\lib\site-packages\boto3\resources\factory.py", line 520, in do_action
response = action(self, *args, **kwargs)
File "C:\Users\Henry Miller\PycharmProjects\bioinformatics_webapp\venv\lib\site-packages\boto3\resources\action.py", line 83, in __call__
response = getattr(parent.meta.client, operation_name)(**params)
File "C:\Users\Henry Miller\PycharmProjects\bioinformatics_webapp\venv\lib\site-packages\botocore\client.py", line 314, in _api_call
return self._make_api_call(operation_name, kwargs)
File "C:\Users\Henry Miller\PycharmProjects\bioinformatics_webapp\venv\lib\site-packages\botocore\client.py", line 612, in _make_api_call
raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the BatchGetItem operation: The provided key element does not match the schema
4

2 に答える 2