PythonでBoto3を用いてAmazon DynamoDBにテーブルを作成する

PythonでBoto3を用いてAmazon DynamoDBにテーブルを作成してみます。

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

■Python

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

■Boto3を用いてを使用してAmazon DynamoDBにテーブルを作成する

では、早速Boto3を用いてを使用してAmazon DynamoDBにテーブルを作成するスクリプトを書いていきます。

■コード

import boto3

dynamodb = boto3.resource('dynamodb')

table = dynamodb.create_table(
        TableName= 'Test1',
            KeySchema =[{
                'AttributeName':'Name',
                'KeyType':'HASH'
            },
            {
                'AttributeName':'Email',
                'KeyType':'RANGE' 
            }
            ],
            AttributeDefinitions = [
                {
                   'AttributeName':'Name',
                   'AttributeType': 'S'
                },
                {
                    'AttributeName':'Email',
                    'AttributeType': 'S'
                }
            ],
                ProvisionedThroughput={
                    'ReadCapacityUnits':1,
                    'WriteCapacityUnits':1
            }
)
print(table)

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

取得後、tableという変数を定義し、その中でdynamodb.create_table()を用いて、括弧内に引数,パラメータとして、テーブルを作成する際の情報を渡します。「TableName(テーブル名)=」を「Test1」とし、テーブルを作成する際のキーの構造(KeySchema)と、属性定義(AttributeDefinitions)を渡します。キーの構造(KeySchema)は、AttributeName(属性名)を「Name」と「Email」とします。さらにKeyTypeはそれぞれ、HASH(パーティションキー)とRANGE(ソートキー)とします。

属性定義(AttributeDefinitions)では、AttributeName(属性名)を「Name」と「Email」とし、AttributeType(属性タイプ)は「S(String,文字列)」とします。

次にプロビジョニング済みスループット(スループット設定)(ProvisionedThroughput)(単位あたりに処理できるデータ量)の情報を記述します。今回はReadCapacityUnits(読み取り容量単位)を「1」とし、WriteCapacityUnits(書き込み容量単位)を「1」とします。指定した値によって、テーブルの作成には時間がかかる恐れがあります。この値を大きくすると、多くのリソースをテーブルに割り当てなければならない。

最後に、今回作成したテーブルの情報をprint()関数で出力します。

■実行・検証

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

実行してみると、「dynamodb.Table(name=’Test1′)」と出力されました。これで、エラーは発生していないので、テーブルの作成は完了しました。

念のために、「AWS マネジメントコンソール」から「DynamoDB」にアクセスし、テーブルが作成しているか確認しましたが、問題なく作成されていることが確認できました。

コメント

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