7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

LambdaからDynamoDBへ接続

Last updated at Posted at 2019-12-03

学生アルバイトのsosonoです!! 
プロジェクトでゲーム制作のサーバ側を主に担当しています!! 
AWSを触り始めた頃って何が何だかの状況で、難しいサイトも一杯なので、必要なことを簡潔に書いてみます!!
serverless frameworkってのを使うことも可能なのですが、まずはコンソール(ブラウザ上のサイト)での操作から初めてみます!!

Lambda

関数の作成

  • 単純な関数を作りましょう(以下に従ってポチポチして下さい!!)
    • 関数の作成
    • 一から作成
    • [関数名]を入力
    • 実行ロールの選択または作成::基本的なLambdaアクセス権限で新しいロールを作成
  • 以上の手順でデフォルトの処理が記述されたLambda関数をゲットです!!

DynamoDB

データベースの作成

  • 単純なデータベースを作りましょう(以下ポチして下さい!!)

    • テーブルの作成
    • テーブル名はmydynamoにしときましょう
    • プライマリーキーは、 user_id にして、文字列の部分を数値に変更してあげます
  • 単純なテーブルを作りましょう

    • 先ほど作成したデータベースを選択
    • 項目→項目の作成をクリック
    • userIdの右のVALUEには「1」を入れましょう
    • 左の➕を押して、「Append」「String」を選択
    • 新しく出来たFIELDに「name」を、VALUEには「hanako」 を入力

LambdaでDynamoDBを覗いてあげましょう

実行ロール(IAM)の追加

  • 最初の手順でLambdaにロール(役割)を付与しましたが、DynamoDBを扱うロールが入っていません。追加します。
    • Lambdaに戻り、先程作成した関数を選択
    • 下の方の「実行ロール」の中から、リンクっぽく青色になっている「ロールを表示」をクリック
    • 青色の「ポリシーをアタッチします」をクリック
    • 検索欄に「dynamo」と入れると数個ポリシーが残るので、その中から「AmazonDynamoDBAmazonDynamoDBFullAccess」の左のボックスにチェックをし、「ポリシーのアタッチ」をポチっ
    • Lambdaに戻りましょう
    • 保存しちゃいましょう

コードを編集

  • 覗くためのコードを書きます。コピペでも何でもいいのでデフォルトで書いてあるものを上書きしましょう!
var AWS = require('aws-sdk');
var dynamo = new AWS.DynamoDB.DocumentClient();
exports.handler = (event,context,callback) => {
    var params = {
        TableName : "mydynamo",
        Key : {
            user_id: 1
        }
    }; 
    dynamo.get(params, function(err,data){
        if (err){
            context.fail(err);
        } else {
            context.succeed(data);
        }
    });
};

  • 右上の「保存」(オレンジ色)をクリック
  • 保存の隣の「テスト」をクリック
  • 画面が出てきますが、名前のところに適当に「hello」とでも入力して、気にせず先に進みましょう
  • もう一度「テスト」をクリックしましょう
  • 上の方に行くと.....「成功」となり、「詳細」をクリックすると、先程DynamoDBに入力したものがゲットできていませんでしょうか??

これで基本的な手順は完了です。

さらにさらに

LambdaもDynamoDBもまだまだいじるところがたくさんあります。基本の操作に慣れたら、より難しいことに挑戦してみましょう。
今回はコードをコピペした訳ですが、要点は

  • パラメータでデータベースの名前と、idをキーにして
  • getを実行し結果を取得、みたいな流れです

ここもカスタマイズの余地しかないので、是非お試しを。
基本的な操作を説明してくれているページって案外ないから、自分もこのような操作がすぐ出来ればなぁと今になって思います。
お疲れ様でした。

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?