はじめに
今回は前回の続きで、DELETE(対象ユーザーの削除), GET(全ユーザーの取得) PATCH(対象ユーザーの更新)を作っていきます。
DELETE(対象ユーザーの削除)
指定されたidを元に、対象のユーザーが削除されるようにしていきます。
Lambda関数の作成と設定
ソース
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;};
メソッド作成と設定
テスト実行と確認
GET(全ユーザーの取得)
GETメソッドを実行したとき、全ユーザーが取得されるようにする。
Lambda関数の作成と設定
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;};
メソッド作成と設定
テスト実行と確認
PATCH(対象ユーザーの更新)
PATCHメソッドを実行したとき、対象のユーザが更新されるようにする。
Lambda関数の作成と設定
メソッド作成と設定
テスト実行と確認
リクエスト本文
{"id":"02","firstname":"update_firstname","lastname":"update_lastname"}
終わりに
これでサーバレスでREST APIを使ったCRUD作成の環境構築をしました。次はAPI Gateway+Lambda(NodeJS)+S3を組み合わせていこうと思います。
kinesisやauroraあたりを組み合わせてやりたいです。