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」にアクセスし、テーブルが作成しているか確認しましたが、問題なく作成されていることが確認できました。
コメント