DynamoDBテーブルで項目を削除するとき、存在しない項目も指定できます。 このとき、キャパシティユニットが消費されるのか気になったので、試してみました。
おすすめの方
- 掲題について知りたい方
適当なDynamoDBテーブルを用意する
適当なDynamoDBテーブルを用意します。
実験用のスクリプトを作成し、実行する
app.py
import boto3
dynamoDB = boto3.resource("dynamodb")
table = dynamoDB.Table("boto3-test")
def main():
resp = table.delete_item(Key={"todoId": "t0001"}, ReturnConsumedCapacity="TOTAL")
print(resp["ConsumedCapacity"])
if __name__ == "__main__":
main()
スクリプトを実行する
キャパシティユニットが消費されました。
$ python app.py
{'TableName': 'boto3-test', 'CapacityUnits': 1.0}
さいごに
存在しない項目を delete_item() しても、DynamoDBのキャパシティユニットは消費されました。 冪等性などの観点で多用することもあると思いますが、頭の片隅には置いておきたいですね。