aws-sam-cliを使ってlocalでLambdaを動かしてみる
aws-sam-cliをインストールする
Docker for MacとPython 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
所管
デプロイして確認すると、結構めんどくさいから、ローカルでいろいろと試せるのは便利!