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

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

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

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

実践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==)

コメント

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