TypeScript は手軽にプログラミングできて、型定義がしっかりしているから ソースコードの自動補完もできて、本当に大好きです。
ということで、 TypeScriptを 使って AWS DynamoDB のテーブルを作成する方法を紹介します。
ソースコード
import {DynamoDB,config} from "aws-sdk"
config.update({
region: "ap-northeast-1"
})
let param:DynamoDB.CreateTableInput = {
TableName: "codeSnippets",
KeySchema: [
{ AttributeName: "Key1", KeyType: "HASH"},
{ AttributeName: "Range1", KeyType: "RANGE"}
],
AttributeDefinitions: [
{ AttributeName: "Key1", AttributeType: "S" },
{ AttributeName: "Range1", AttributeType: "S" }
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
};
let dynaDB = new DynamoDB();
dynaDB.createTable(param, (err, data) => {
if (err) console.log(JSON.stringify(err, null, 2));
else console.log(JSON.stringify(data, null, 2));
})
1. NPM パッケージのインストール
aws-sdk
というパッケージが必要ですので、インストールします。
npm i --save aws-sdk
2. import
import {DynamoDB,config} from "aws-sdk"
今回は、DynamoDB
というクラスと、config
というメソッドを使用しますので、それぞれインポートします。
3. Region の指定
config.update({
region: "ap-northeast-1"
})
DynamoDBを使用するリージョンを指定します。 東京リージョンは ap-northeast-1
です。
他のリージョンを確認したいときは、以下のページを参照してください。
テーブル定義パラメタの作成
let param:DynamoDB.CreateTableInput = {
TableName: "codeSnippets",
KeySchema: [
{ AttributeName: "Key1", KeyType: "HASH"},
{ AttributeName: "Range1", KeyType: "RANGE"}
],
AttributeDefinitions: [
{ AttributeName: "Key1", AttributeType: "S" },
{ AttributeName: "Range1", AttributeType: "S" }
],
ProvisionedThroughput: {
ReadCapacityUnits: 5,
WriteCapacityUnits: 5
}
};
DynamoDB.CreateTableInput
インタフェースを使用してパラメタを定義します。
TableName : 作成するテーブル名を指定します。
KeySchema : キーを定義します。
AttributeName
でキー属性名を指定し、KeyType
でキータイプを指定します。
キータイプは「ハッシュ」と「レンジ」の2種類があります。「ハッシュ」のみで構成される場合は、 キー項目は1つになり、「ハッシュ」と「レンジ」の2つで構成される場合は、それぞれ1つずつの キー項目を指定します。
AttributeDefinitions : キー項目属性を定義します。
AttributeName
はさきほどと同じ、キー項目名を指定します。
AttributeType
で、データ項目を指定します。
- 文字列データの場合は「S」、数値データの場合は「N」、バイナリデータの場合は「B」を指定できます。
ProvisionedThroughput : スループットをプロビジョニングモードで指定します。
ReadCapacityUnits
が読み込みキャパシティユニット、WriteCapacityUnits
が書き込みキャパシティユニットです。
↓ここの公式ドキュメントに詳しく記載されています。
実践TypeScript【電子書籍】[ 吉井健文 ]
価格:3726円 (2019/7/23時点)
楽天で購入
](https://hb.afl.rakuten.co.jp/hgc/18648e8b.7d833591.18648e8c.ed1bab3c/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Frakutenkobo-ebooks%2F5456816fd8833397a6aa8b80647873ad%2F%3Fscid%3Daf_pc_bbtn&m=http%3A%2F%2Fm.rakuten.co.jp%2Frakutenkobo-ebooks%2Fi%2F18341447%2F%3Fscid%3Daf_pc_bbtn&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjEsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxfQ==)
コメント