前回は AWS の基本的な使い方として、LambdaとDynamoDBの使い方を紹介しました。今回は、DynamoDBをPython から操作する方法を紹介したいと思います。
AWS サービスを Python から操作する方法
AWS のサービスを Python から操作するためには、AWS が提供するboto3というライブラリーを使用します。またこのライブラリの認証情報として、IAMユーザーというものを作成し、アクセスキーを取得する必要があります。
まずはこのIAMユーザーの取得方法を紹介します。
IAMユーザーの設定
AWS のコンソールにログインした後右側のユーザー名の部分をクリックします。するとセキュリティ認証情報という項目があるのでそちらをクリックします。
左側のユーザーをクリックしユーザーを作成を選択します。
ユーザーの詳細としてユーザー名を入力し作成します。
許可のオプションとして、今回はLambdaとDynamoDBのフルコントロールの権限を付与しました。必要な機能に応じて、許可範囲は調節してください。
LambdaとDynamoDBのコントロールです。
を設定したら作成を行います。
作成後先ほどのユーザー名をクリックし詳細画面に遷移します。
セキュリティ認証情報のアクセスキーの部分からアクセスキーを作成をクリックし、アクセスキーを取得します。
どこで使うかということを聞かれるので、AWSCLIから使う場合には一番上のCLIを選択します。GoogleColabなどで使ったり色々な場所で使いたいという想定の場合にはその他を選択します。
アクセスキーとシークレットキーがありますがどちらも必要になるのでメモしておいてください。
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から確認できます。