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

速攻でメモできる QuickNote リリースしました!

QuickNoteは動作が超軽量でサクサクかけるノートアプリです。一瞬の閃きを逃さずにノートを開き書き始めることができます。 アカウント登録も不要です。お試しあれ!

Excel操作をコマンドで! proBoarderExcel

Excelはマウスで操作するのが基本ですが、マウス操作に疲れてはいませんか? キーボードでExcel操作ができるようになるアプリです。オープンソースで無料です。

積み上げ! Daily Stack リリースしました!

Daily Stack は日々の積み上げを管理するToDoアプリです。過去の積み上げの振り返りだけでなく、ツイート機能もあります。 アカウント登録不要ですぐに使い始めることができます。

ExecNote.app リリースしました!

ExecNoteは、コードが実行できるMarkdownアプリケーションです。Markdownドキュメント内に記載したコードをクリックすると実行ができます。わざわざターミナルを 起動させる必要がありません!無料ですのでもしよければダウンロードをお願いします。

About Me

11年目のシステムエンジニアです。アプリで生活や仕事を改善したい🐱仕事効率化、自動化のアプリ開発が得意です、ご相談ください。 🚀エンタメ系アプリの開発も模索中🐬社内SEや個人アプリ開発者、システムエンジニアになりたい人と繋がりたい🐱