リポジトリはこちら。
git clone
, make up
してから make invoke
で Lambda Function が実行される。
とりあえず公式の example が動くようになっている。
% make invoke 2018/10/05 10:59:02 Successfully parsed template.yml 2018/10/05 10:59:02 Connected to Docker 1.38 2018/10/05 10:59:02 Fetching lambci/lambda:go1.x image for go1.x runtime... go1.x: Pulling from lambci/lambda Digest: sha256:f0c2f594555ac1363df7eb3c119ad4a1cd805232ed33c1bd2e8421f0a5a71415 Status: Image is up to date for lambci/lambda:go1.x 2018/10/05 10:59:03 Invoking bin/main.handle (go1.x) 2018/10/05 10:59:03 Mounting xxxx as /var/task:ro inside runtime container START RequestId: 7fa90259-78fe-1da5-41b4-cf39cc48f575 Version: $LATEST {"Answer:":"Jim is 33 years old!"} END RequestId: 7fa90259-78fe-1da5-41b4-cf39cc48f575 REPORT RequestId: 7fa90259-78fe-1da5-41b4-cf39cc48f575 Duration: 0.83 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 6 MB
詰まったことなど
Docker 環境上で SAM CLI を実行する
SAM CLI 自体がランタイムに Docker を使っているので、 Docker in Docker の形になる。
既に公開されているイメージがあったので、それをベースに Dockerfile を作成。
ちなみに SAM CLI のバージョンが 0.2.2 の場合は Go 言語をサポートしていないので注意。
Path Error が発生する
原因は 2 つあり、1 つめは以下の Qiita 記事をそのまま参考にした。
このビルドオプションはよく把握できていないので、後で調べる。
もう 1 つは SAM CLI で local invoke
実行時に --docker-volume-basedir
オプションを指定する必要があったこと。