画竜点睛を衝く@mapyo

日々やった事をつらつらと書くブログです

aws-sam-cliを使ってlocalでLambdaを動かしてみる

 aws-sam-cliをインストールする

github.com

Docker for MacPython 2.7 or 3.6が必要。

Macのデフォルトでは2.7系だったので、一応最新版を入れる

pyenv install 3.6.5
pyenv global 3.6.5
pip install aws-sam-cli

※ドキュメントの方では—userをつけているが、これをつけると~/.localフォルダにsamがインストールされてしまうので注意!普段pip関連使わないからハマってしまったー。

sam init

sam init --runtime go

サンプルを作ってくれる

こんな感じのファイルが出来る。goじゃなくても別の言語してして作ってもOK

$ tree
.
└── sam-app
    ├── Makefile
    ├── README.md
    ├── hello-world
    │   ├── main.go
    │   └── main_test.go
    └── template.yaml

2 directories, 5 files

localで動かしてみる

build

go get github.com/aws/aws-lambda-go/events
go get github.com/aws/aws-lambda-go/lambda
make build

localでLambdaを動かす

# Lambdaに渡す用のイベントファイルの作成
sam local generate-event api > event_file.json

# Lambdaの実行
sam local invoke HelloWorldFunction --event event_file.json

localでAPI Gatewayを使って動かす

# 起動
sam local start-api

# 呼ぶ
curl http://127.0.0.1:3000/hello

所管

デプロイして確認すると、結構めんどくさいから、ローカルでいろいろと試せるのは便利!

参考

qiita.com