DynamoDBの delete_item() で存在しない項目を削除したとき、キャパシティユニットが消費されるか確認してみた

存在しない項目を delete_item() しても、DynamoDBのキャパシティユニットは消費されました。
2023.10.06

DynamoDBテーブルで項目を削除するとき、存在しない項目も指定できます。 このとき、キャパシティユニットが消費されるのか気になったので、試してみました。

おすすめの方

  • 掲題について知りたい方

適当な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のキャパシティユニットは消費されました。 冪等性などの観点で多用することもあると思いますが、頭の片隅には置いておきたいですね。

参考