SAM の Handler と CodeUri について

環境

  • aws-sam-cli v0.3.0

AWS SAM を使ったサーバーレスアプリケーションをローカルで試せる的なやつ。

v.0.3.0 からは言語が python ベースになってリポジトリ名が変わった。

https://github.com/awslabs/aws-sam-cli

以下は v0.3.0 以前でメモしていたもの。
SAM を使うの初めてだったので初歩的なところを書いておく。


CodeUri と Handler が何を指しているのかよくわからなかった

Handler について

AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
    FunctionName:
        Type: AWS::Serverless::Function
        Properties:
           Runtime: nodejs6.10
           Handler: index.handler
           CodeUri: ../src

CodeUri で指定したディレクトリ、もしくは template.yml に存在する ファイル名.メソッド を指定する。
index.handler というのは index.js の handler() を実行するという意味らしい。(今回はRuntime が node)

CodeUri について

指定方法が複数ある

相対パス、絶対パスの場合、 sam local ではここで指定したディレクトリがマウントされる。

記述しない場合、 template.yml のあるディレクトリをマウントする
(通常、コマンドを実行したディレクトリ -t でテンプレートの場所を指定した場合はそのディレクトリ)

内部で docker にマウントしてるのでシンボリックリンクは使えないので注意

参考