- クラウド技術
Pythonのboto3でAWS DynamoDBのCRUD操作
- #Python
- #AWS

はじめに
【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc. 詳細はこちらから>
AWSのDynamoDBは、サーバーレスNoSQLデータベースであり、アプリケーションにおけるデータ管理を簡単に行えます。Pythonのboto3ライブラリを使用することで、AWS DynamoDBの操作をプログラムで簡単に実行できます。本記事では、DynamoDBのテーブル作成方法から、データの基本的な CRUD 操作(登録、取得、更新、削除)まで、実際のコード例を交えて説明します。
DynamoDBテーブルの作成
まず、AWSマネジメントコンソールにログインし、DynamoDBサービスを開いてテーブルを作成します。
- AWSマネジメントコンソールにログインしてDynamoDBサービスを開く。
- 「テーブルの作成」 をクリック。
- テーブル名とパーティションキー(PK)を設定します。ここでは、テーブル名をUsersに、パーティションキーをidとして指定します。
- デフォルトの設定で「作成」をクリックして、テーブルを作成します。
※今回は東京リージョン(ap-northeast-1)を利用しています。
boto3のセットアップ
PythonでDynamoDBを操作するために、まずboto3をインストールし、AWSの認証情報を設定します。以下のコマンドでインストールを行います。
1 |
pip install boto3 |
AWSの認証情報を設定します。
1 |
aws configure |
データの登録
データを登録するには、put_itemメソッドを使用します。以下のコードで、Usersテーブルにデータを追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import boto3 dynamodb = boto3.resource('dynamodb' , region_name='ap-northeast-1') table = dynamodb.Table('Users') table.put_item( Item={ 'id': '123', 'name': '山田太郎', 'age': 20 } ) print("データ登録完了") |
データの取得
データを取得するには、get_itemメソッドを使用します。以下のコードで、idが123のデータを取得します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import boto3 dynamodb = boto3.resource('dynamodb' , region_name='ap-northeast-1') table = dynamodb.Table('Users') response = table.get_item( Key={'id': '123'} ) item = response.get('Item') if item: print("取得データ:", item) else: print("データが存在しません") |
データの更新
データを更新するには、update_itemメソッドを使用します。次のコードは、idが123のユーザーのageを更新します。
1 2 3 4 5 6 7 8 9 10 11 12 |
import boto3 dynamodb = boto3.resource('dynamodb' , region_name='ap-northeast-1') table = dynamodb.Table('Users') table.update_item( Key={'id': '123'}, UpdateExpression="set age = :new_age", ExpressionAttributeValues={':new_age': 30} ) print("データ更新完了") |
データの削除
データを削除するには、delete_itemメソッドを使用します。以下のコードで、idが123のデータを削除します。
1 2 3 4 5 6 7 8 9 10 |
import boto3 dynamodb = boto3.resource('dynamodb' , region_name='ap-northeast-1') table = dynamodb.Table('Users') table.delete_item( Key={'id': '123'} ) print("データ削除完了") |
まとめ
DynamoDBの基本操作(登録、取得、更新、削除)をboto3で実装する方法を紹介しました。これらの操作を組み合わせて、さまざまなアプリケーションに対応できます。
参考
参考 Table – Boto3 1.37.16 documentation
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>