AWS DynamoDBをPythonで操作する

IT・プログラミング

前回は AWS の基本的な使い方として、LambdaとDynamoDBの使い方を紹介しました。今回は、DynamoDBをPython から操作する方法を紹介したいと思います。

AWS サービスを Python から操作する方法

AWS のサービスを Python から操作するためには、AWS が提供するboto3というライブラリーを使用します。またこのライブラリの認証情報として、IAMユーザーというものを作成し、アクセスキーを取得する必要があります。
まずはこのIAMユーザーの取得方法を紹介します。

IAMユーザーの設定

AWS のコンソールにログインした後右側のユーザー名の部分をクリックします。するとセキュリティ認証情報という項目があるのでそちらをクリックします。
セキュリティ

左側のユーザーをクリックしユーザーを作成を選択します。
ユーザー作成

ユーザーの詳細としてユーザー名を入力し作成します。
ユーザー名

許可のオプションとして、今回はLambdaとDynamoDBのフルコントロールの権限を付与しました。必要な機能に応じて、許可範囲は調節してください。
許可
LambdaとDynamoDBのコントロールです。
DynamoDB

Lambda

を設定したら作成を行います。
作成

作成後先ほどのユーザー名をクリックし詳細画面に遷移します。
ユーザー

セキュリティ認証情報のアクセスキーの部分からアクセスキーを作成をクリックし、アクセスキーを取得します。
アクセスキー
アクセスキー

どこで使うかということを聞かれるので、AWSCLIから使う場合には一番上のCLIを選択します。GoogleColabなどで使ったり色々な場所で使いたいという想定の場合にはその他を選択します。
CLI
その他

アクセスキーとシークレットキーがありますがどちらも必要になるのでメモしておいてください。

PythonでDynamoDBを操作する

それでは先ほど取得したアクセスキーを使って、DynamoDBを操作していきましょう。

!pip install boto3

次のようなコードでデータの追加が可能です。

import boto3

dynamodb = boto3.resource('dynamodb', region_name='ap-northeast-1', aws_access_key_id=aws_access_key_id, aws_secret_access_key=aws_secret_access_key)
table = dynamodb.Table('EDINET')
with table.batch_writer() as batch:
    batch.put_item(Item={"docID": "12", "Name": "test",})

データの取得は以下のようになります。

resp = table.get_item(Key={"docID": "12", "Name": "test"})

print(resp['Item'])

かなり簡単にAWS のサービスの操作ができるので、常に存在するデータを Python でDynamoDBに登録するといったことも比較的簡単にできます。

今回使用したコードはこちらのGoogleColabから確認できます。

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