https://future-architect.github.io/articles/20200225/#Create

こんにちは、村田です。Go言語でWebサーバを実装していた際にDynamoDBを扱うライブラリとしてGregさんの https://github.com/guregu/dynamo を使っていました。(2年ほど稼働していますが、特に問題も出ていません)

当時Go初心者だった私は「go dynamo」とすぐさまGoogle先生に問い合わせ、「guregu/dynamoがオススメ」とのエントリーを多数発見しました。オブジェクトの取り回しが隠蔽化されていてとにかく実装が簡単だと記事にも書いてありましたし、私自身も実際そう感じました。

すでにタイトルからお察しかと思いますが、本記事は連載第1回目です。時代の移ろいに合わせてDynamoDB×Go界隈の事情も刻一刻と変化しています。まずは私の利用していたSDK(guregu/dynamo)についてから本連載をスタートします。

ソースコードに触る前にまずは環境の準備から。 DynamoDB LocalをDocker上で動かすのが楽なので今回はそちらを使います。

DynamoDB-Localのインストール

DynamoDB Localへのアクセスはaws cliを利用するのでそちらも準備します。アクセス時はEndpointのURLを引数で指定してあげる必要があります。

AWSCLIのテスト_失敗

怒られちゃいました… FakeでもいいのでCredentialを指定しなければならないので aws configure を使って指定します。

デフォルトのProfile作成

…ということで気を取り直して、

AWSCLIのテスト_成功

OKそうですね。あとはテーブルを作成したら準備OKです。 今回は以下のようなスキーマでテーブルを作成します。

DynamoDBテーブル作成

ちなみにですが、DynamoDB Localの場合は設定したCapacity Unitは考慮されないので適当な値を設定しても問題ありません。

※ソースは全て https://github.com/mura123yasu/go-guregu-dynamo にアップしているので適宜参考にしてください。