TypeScript で AWS DynamoDB のテーブルを作成する

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 です。

他のリージョンを確認したいときは、以下のページを参照してください。

AWS のリージョンとエンドポイント

テーブル定義パラメタの作成

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 が書き込みキャパシティユニットです。

↓ここの公式ドキュメントに詳しく記載されています。

読み込み/書き込みキャパシティーモード

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です