📑

DockerでローカルのLambda実行環境を用意する。

に公開

はじめに

ファイルの中身のみ記載します。

ディレクトリ構造

.
├── docker-compose.yml
├── lambda
├── sample
└── index.js

docker-compose.ymlの内容

version: '3'
services:
addData:
container_name: sample-lambda
image: lambci/lambda:nodejs12.x
volumes:

  • ./lambda/sample:/var/task
    ports:
  • 9001:9001
    environment:
    AWS_DEFAULT_REGION: XXXXXXXX
    AWS_ACCOUNT_ID: YYYYYYYY
    DOCKER_LAMBDA_WATCH: 1
    DOCKER_LAMBDA_STAY_OPEN: 1
    command: index.handler

index.jsの内容

const aws = require("aws-sdk");
exports.handler = async (event, context) => {
context.succeed({
statusCode: 200,
body : JSON.stringify('hallo sample!'),
});
};

いざ実行!

dockerの起動

docker-compose up

レスポンス確認

別タブで実行

curl -d '{}' http://localhost:9001/2015-03-31/functions/sample/invocations

レスポンス

{"statusCode":200,"body":"\"hallo sample!\""}

終わりに

デプロイなんかもDocker使ってできるみたいですね。 時間があれば、そちらも記載したいと思います:relaxed:

GitHubで編集を提案

Discussion