Closed3
API Gateway + Lambda + DynamoDB の構成をローカル環境で構築する
以下技術を使用して実現する
Serverless Framework
- API Gateway
- Lambda
- serverless-offline ... 上記環境をローカル環境で再現するために使用
- serverless-dynamodb-local ... DynamoDBのセットアップを行うためのプラグイン
Docker
Dockerを使用して以下コンテナを立ち上げる
- DynamoDB Local ... ローカル環境でDynamoDBを再現するために使用
- DynamoDB Admin ... DynamoDBのCRUD操作をGUIで扱うために使用
HTTPステータスやヘッダーを指定した内容ではなく、
Lambdaの実行結果がそのまま返されてる?なんでや
$ curl http://localhost:3000/v1/hogefuga
{"statusCode":200,"headers":{"Content-Type":"application/json; charset=utf-8","Content-Length":"129"},"body":"{\"success\":true,\"route\":\"GET /hogefuga\",\"headers\":{\"host\":\"localhost:3000\",\"user-agent\":\"curl/7.85.0\",\"accept\":\"*/*\"},\"query\":{}}"}
integration
でlambda
を指定すると Lambda Integration になってしまうみたい
指定しないことで Lambda Proxy Integration を使える
functions:
create:
handler: posts.create
events:
- http:
method: get
path: whatever
integration: lambda
これでうごいた
exports.handler = async (event) => {
return {
statusCode: 200,
body: JSON.stringify({ event: event })
};
};
このスクラップは2023/01/22にクローズされました