いつも忘れるのでメモ。随時追加していく。
- get_item()
- put_item()
- delete_item()
目次
get_item()
以下のようなPKだけのシンプルなテーブルに対する操作とする。
Attr | Value |
pk_id | test |
正常系
確認日: 2022-05-25
res = table.get_item(Key={'pk_id': 'test'})
なにも間違えていない。なので、当然怒られない。正常なレスポンス。
{
"Item": {
"pk_id": "test"
},
"ResponseMetadata": {
"RequestId": "xxxx",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"server": "Server",
"date": "Tue, 24 May 2022 16:30:00 GMT",
"content-type": "application/x-amz-json-1.0",
"content-length": "32",
"connection": "keep-alive",
"x-amzn-requestid": "xxxx",
"x-amz-crc32": "3407680564"
},
"RetryAttempts": 0
}
}
Keyがない
確認日: 2022-05-25
res = table.get_item(Key={'hoge': 'test'})
以下のエラーが出て怒られる。
botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the GetItem operation: The provided key element does not match the schema
PKの値が存在しない
確認日: 2022-05-25
res = table.get_item(Key={'pk_id': 'hoge'})
怒られない。ただしItemがない。
{
"ResponseMetadata": {
"RequestId": "xxxx",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"server": "Server",
"date": "Tue, 24 May 2022 16:26:45 GMT",
"content-type": "application/x-amz-json-1.0",
"content-length": "2",
"connection": "keep-alive",
"x-amzn-requestid": "xxxx",
"x-amz-crc32": "2745614147"
},
"RetryAttempts": 0
}
}
こんな感じ。
put_item()
正常系
確認日: 2022-05-25
item = {'pk_id': 'test'}
res = table.put_item(Item=item)
問題なく動く。
{
"ResponseMetadata": {
"RequestId": "xxxx",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"server": "Server",
"date": "Tue, 24 May 2022 17:21:29 GMT",
"content-type": "application/x-amz-json-1.0",
"content-length": "2",
"connection": "keep-alive",
"x-amzn-requestid": "xxxx",
"x-amz-crc32": "2745614147"
},
"RetryAttempts": 0
}
}
PKがない
確認日: 2022-05-25
item = {'hoge': 'test'}
res = table.put_item(Item=item)
怒られる。
botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the PutItem operation: One or more parameter values were invalid: Missing the key pk_id in the item
PKの属性名まで表示される。
delete_item()
以下のようなPKだけのシンプルなテーブルに対する操作とする。
Attr | Value |
pk_id | test |
正常系
確認日: 2022-05-25
res = table.delete_item(Key={'pk_id': 'test'})
正常に動く。
{
"ResponseMetadata": {
"RequestId": "xxxx",
"HTTPStatusCode": 200,
"HTTPHeaders": {
"server": "Server",
"date": "Tue, 24 May 2022 17:26:32 GMT",
"content-type": "application/x-amz-json-1.0",
"content-length": "2",
"connection": "keep-alive",
"x-amzn-requestid": "xxxx",
"x-amz-crc32": "2745614147"
},
"RetryAttempts": 0
}
}
PK自体がない
確認日: 2022-05-25
res = table.delete_item(Key={'hoge': 'test'})
怒られる。
botocore.exceptions.ClientError: An error occurred (ValidationException) when calling the DeleteItem operation: The provided key element does not match the schema
PKの値が存在しない
確認日: 2022-10-03
res = table.delete_item(Key={'pk_id': 'test0'})
怒られない。
コメント