Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8916

AWS+NodeJSでサーバレスな環境構築④

$
0
0

はじめに

今回は前回の続きで、DELETE(対象ユーザーの削除), GET(全ユーザーの取得) PATCH(対象ユーザーの更新)を作っていきます。

DELETE(対象ユーザーの削除)

指定されたidを元に、対象のユーザーが削除されるようにしていきます。

Lambda関数の作成と設定

スクリーンショット 2020-01-04 15.20.08.png

ソース

index.js
'use strict';constAWS=require('aws-sdk');constmyRegion="us-east-2";AWS.config.update({region:myRegion});exports.handler=async(event,context)=>{constdocumentClient=newAWS.DynamoDB.DocumentClient({region:myRegion});letresponseBody="";letstatusCode=0;const{id}=event.pathParameters;constparams={TableName:"Users",Key:{id:id}};try{constdata=awaitdocumentClient.delete(params).promise();responseBody=JSON.stringify(data);statusCode=204;}catch(err){responseBody=`Unable to delete user: ${err}`;statusCode=403;}constresponse={statusCode:statusCode,headers:{"Content-Type":"application/json"},body:responseBody};returnresponse;};

メソッド作成と設定

スクリーンショット 2020-01-03 23.23.55.png
スクリーンショット 2020-01-03 23.32.59.png

テスト実行と確認

テストボタン
スクリーンショット 2020-01-03 23.42.51.png
削除されていることを確認
スクリーンショット 2020-01-04 15.36.19.png

GET(全ユーザーの取得)

GETメソッドを実行したとき、全ユーザーが取得されるようにする。

Lambda関数の作成と設定

スクリーンショット 2020-01-04 11.47.15.png
ソース

index.js
'use strict';constAWS=require('aws-sdk');constmyRegion="us-east-2";AWS.config.update({region:myRegion});exports.handler=async(event,context)=>{constdocumentClient=newAWS.DynamoDB.DocumentClient({region:myRegion});letresponseBody="";letstatusCode=0;constparams={TableName:"Users"};try{constdata=awaitdocumentClient.scan(params).promise();responseBody=JSON.stringify(data);statusCode=200;}catch(err){responseBody=`Unable to get users: ${err}`;statusCode=403;}constresponse={statusCode:statusCode,headers:{"Content-Type":"application/json"},body:responseBody};returnresponse;};

メソッド作成と設定

スクリーンショット 2020-01-04 11.48.16.png
スクリーンショット 2020-01-04 11.49.15.png

 テスト実行と確認

何も入力せつ、テストボタン。
スクリーンショット 2020-01-04 15.50.36.png

PATCH(対象ユーザーの更新)

PATCHメソッドを実行したとき、対象のユーザが更新されるようにする。

Lambda関数の作成と設定

スクリーンショット 2020-01-04 12.11.31.png

メソッド作成と設定

スクリーンショット 2020-01-04 12.12.22.png
以下のように設定、赤枠使うのが面倒になったので察して
スクリーンショット 2020-01-04 12.14.32.png

 テスト実行と確認

スクリーンショット 2020-01-04 12.20.18.png

リクエスト本文
{"id":"02","firstname":"update_firstname","lastname":"update_lastname"}

更新されることを確認
スクリーンショット 2020-01-04 12.24.17.png

終わりに

これでサーバレスでREST APIを使ったCRUD作成の環境構築をしました。
次はAPI Gateway+Lambda(NodeJS)+S3を組み合わせていこうと思います。
kinesisやauroraあたりを組み合わせてやりたいです。


Viewing all articles
Browse latest Browse all 8916

Trending Articles