PythonでBoto3を用いて作成したDynamoDBテーブル内のアイテムを削除する

前回、PythonでBoto3を用いて作成したDynamoDB内にアイテムを追加しましたが、今回はそのアイテムを削除してみます。

なお、今回はBoto3を用います。このライブラリ・モジュールは、Pythonの標準ライブラリではありませんので、事前にインストールする必要があります。また、Boto3を用いる場合には、クレデンシャル(資格情報)などの設定が必要になりますので、こちらを参考にしていただければと思います。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■作成したDynamoDB内のアイテムを確認する

では、PythonでBoto3を用いて作成したDynamoDBにアイテムを削除していきますが、その前に、作成したDynamoDB内のアイテムを確認してみます。

確認するために、AWSにログインし、「AWS マネジメントコンソール」から「DynamoDB」へアクセスし、「項目の探索」から「テーブル」で作成したテーブル(Test1)を選択してみると、「返された項目」として、前回、Boto3を用いて追加したアイテムが表示されていることが確認できました。

■Boto3を用いて作成したDynamoDBにアイテムを削除する

確認できましたので、Boto3を用いて作成したDynamoDBにアイテムを削除するスクリプトを書いていきます。

■コード

import boto3

dynamodb = boto3.resource('dynamodb')

table = dynamodb.Table('Test1')

response = table.delete_item(
    Key = {
        'Name':'田中一太郎',
        'Email':'test_01@test_corporation.com'
    }
)

print(response)

importでboto3モジュールを呼び出します。その後、dynamodbという変数を定義し、その中でboto3.resource()を用いて、括弧内に引数,パラメータとして、リソースであるdynamodbを渡します。

渡した後に、tableという変数を定義し、その中でdynamodb.Table()を用います。括弧内には引数,パラメータとして、作成したテーブルの名前を渡します。これで、以前作成した「Test1」というテーブルが選択された状態になります。

その後、responseという変数を定義し、その中でtableに対してdelete_item()を用います。括弧内には引数,パラメータとして、削除するアイテムを渡します。渡す際にKeyという辞書の形で波括弧”{} ”で要素を囲み、コロン”: ”でキーと値を記述します。これで、テーブル内のアイテムが削除されます。

削除された結果をprint()で出力します。

■実行・検証

このスクリプトを「db_table_item_del.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

{‘RequestId’: ‘*****’, ‘HTTPStatusCode’: 200, ‘HTTPHeaders’: {‘server’: ‘Server’, ‘date’: ‘Thu, 07 Apr 2022 04:00:44 GMT’, ‘content-type’: ‘application/x-amz-json-1.0’, ‘content-length’: ‘2’, ‘connection’: ‘keep-alive’, ‘x-amzn-requestid’: ‘*****’, ‘x-amz-crc32’: ‘2745614147’}, ‘RetryAttempts’: 0}}

実行してみると、「ResponseMetadata」が出力されます。これは、前回のBoto3を用いて作成したDynamoDBに新しいアイテムを追加したときに出力された結果となんら変わりありません。

実際にアイテムが削除されたのか検証されたのか、「AWS マネジメントコンソール」から「DynamoDB」へアクセスし、「項目の探索」から「テーブル」で作成したテーブル(Test1)を選択してみます。選択してみると、先程は作成したテーブル(Test1)にアイテムが追加されている状態でしたが、スクリプトを実行後は、「返された項目 (0)」となり、「クエリは結果を返しませんでした。」と表示されていることが確認できました。

最後に、今回のテーブル内のアイテムには日本語の文字列も含まれていましたが、日本語であってもアイテムとして削除できることがわかりました。

コメント

タイトルとURLをコピーしました