AWS CLI の wizard コマンドを使って対話形式で DynamoDB のテーブルを作成する
2021-04-30AWS CLI v2 には 対話形式でリソースを操作できる wizard
コマンドが用意されています。今回はその wizard
コマンドを使って DynamoDB のテーブルを作成してみます。
目次
wizard コマンド
AWS CLI v2 では、 GA 当初 (v2.0.0) から wizard
コマンドが利用可能で、一部のリソースに対する操作を対話的に実行できます。この記事を書いている時点 (2021/04/30) 時点で wizard
コマンドに対応しているのは下記の操作で、 configure
を除いては aws <サービス> wizard <wizard 用サブコマンド>
という形で実行します。
- AWS CLI の config 設定
aws configure
実行時に自動で対話モードになる
- DynamoDB のテーブル作成
aws dynamodb wizard new-table
- EventBridge のルール作成
aws events wizard new-rule
- IAM のロール作成
aws iam wizard new-role
- Lambda の関数作成
aws lambda wizard new-function
DynamoDB のテーブルを作成してみる
今回は、 DynamoDB の wizard
コマンドで対話形式でテーブルを作成してみます。
aws dynamodb wizard new-table
上記コマンドを実行すると、次のようなプロンプトが起動します。
- Intro
- Capacity
- Encryption
- Preview
- Done
の 5 ステップあることがわかります。
Intro
Intro では下記項目を入力または選択していきます。
- テーブル名
- プライマリーキー名
- プライマリーキーのタイプ
String
/Number
/Binary
から選択
- ソートキーを追加するかどうか
Yes
/No
で選択
- (ソートキーを追加する場合)
- ソートキー名
- ソートキーのタイプ
String
/Number
/Binary
から選択
Capacity
Capacity では下記項目を入力または選択していきます。
- キャパシティーモード
Provisioned
/On-demand
から選択
- (
Provisioned
を選択した場合)- Read のキャパシティーユニット
- Write のキャパシティーユニット
Encryption
Encryption では下記項目を入力または選択していきます。
- テーブルの暗号化設定
DEFAULT
/KMS - AWS managed CMK
/KMS - Customer managed CMK
から選択
- (
KMS - Customer managed CMK
を選択した場合)- カスタマーマネージドな CMK のパス
Preview
Preview では、作成されるテーブルの内容を AWS CLI コマンドまたは CloudFormation テンプレートとしてプレビューすることができます。
Done
Done では、これまでの設定内容で実行するかどうかを選択します。
Yes
を選択すると、 Preview で選択した内容が出力されます。
AWS CLI command を選択していた場合
Wizard successfully created DynamoDB Table:
Table name: user
Primary partition key: id (S)
Primary sort key: age (N)
Steps to create table is equivalent to running the following sample AWS CLI commands:
aws dynamodb create-table \
--table-name 'user' \
--attribute-definitions \
'AttributeName=id,AttributeType=S' \
'AttributeName=age,AttributeType=N' \
--key-schema \
'AttributeName=id,KeyType=HASH' \
'AttributeName=age,KeyType=RANGE' \
--provisioned-throughput \
'ReadCapacityUnits=1,WriteCapacityUnits=1'
CloudFormation template を選択していた場合
Wizard successfully created DynamoDB Table:
Table name: user
Primary partition key: id (S)
Primary sort key: age (N)
Steps to create table is equivalent to deploying the following sample AWS CloudFormation template:
Resources:
user:
Type: "AWS::DynamoDB::Table"
Properties:
TableName: user
AttributeDefinitions:
- AttributeName: id
AttributeType: S
- AttributeName: age
AttributeType: N
KeySchema:
- AttributeName: id
KeyType: HASH
- AttributeName: age
KeyType: RANGE
ProvisionedThroughput:
ReadCapacityUnits: 1
WriteCapacityUnits: 1
作成されているか確認
作成されたテーブルを確認してみます。
$ aws dynamodb describe-table \
--table-name user
{
"Table": {
"AttributeDefinitions": [
{
"AttributeName": "age",
"AttributeType": "N"
},
{
"AttributeName": "id",
"AttributeType": "S"
}
],
"TableName": "user",
"KeySchema": [
{
"AttributeName": "id",
"KeyType": "HASH"
},
{
"AttributeName": "age",
"KeyType": "RANGE"
}
],
"TableStatus": "ACTIVE",
"CreationDateTime": "2021-05-01T01:05:31.656000+09:00",
"ProvisionedThroughput": {
"NumberOfDecreasesToday": 0,
"ReadCapacityUnits": 1,
"WriteCapacityUnits": 1
},
"TableSizeBytes": 0,
"ItemCount": 0,
"TableArn": "arn:aws:dynamodb:ap-northeast-1:XXXXXXXXXXXX:table/user",
"TableId": "3327e6ef-b638-4318-80b5-8722cc840ee6"
}
}
まとめ
AWS CLI の wizard
コマンドで DynamoDB のテーブルを作成してみた話でした。
wizard
が使えるサービスは限られているものの、対話形式で必要なパラメータを埋めていくのはやはり直感的でわかりやすいです。CLI とマネジメントコンソールでの操作の良いところを合わせたような感じで、今後対応するサービスが増えていくと良いなと思いました。
あと、実際にテーブルを作成する一つ前の段階で AWS CLI のコマンドと CloudFormation のテンプレートを確認することができるので、作りたいリソースを作成するためにどのようなコマンドやテンプレートが必要になるのかを確認する手段としても良さそうだなと思いました。
ちなみに、対応しているサービスについては、 AWS CLI の下記ディレクトリを見ると確認できます。
aws-cli/awscli/customizations/wizard/wizards at v2 · aws/aws-cli
AWS CLI のドキュメントにも上記ディレクトリを見てねと書かれていました。
To contribute or view the full list of available AWS CLI wizards, see the AWS CLI wizards folder on GitHub.
comments powered by Disqus