はじめに
- SAMでLambdaを作成する時、コードのディレクトリに
requirements.txt
を配置すると自動的にmoduleを拾ってきてくれる - SAMでTemplate名を標準外のもので作成することもでき、その時は
-t [template path]
/--template-file [template path]
で指定できる- コードは一緒で環境毎に内容を分けたいときとか
- このときに普通に以下のようなコマンドで実行するとmoduleがいないLambdaが上がってしまう
sam build -t template.dev-env.yaml
sam package --profile dev -t template.dev-env.yaml --s3-bucket artifact-no-bucket --output-template-file packaged.yaml
sam deploy -t packaged.yaml ~~~~~
解決方法
-
sam build
を実行すると.aws-sam/build/
配下にmoduleが入った各種Lambdaがtemplateで指定したものごとにディレクトリを分けて出力される -
.aws-sam/build/template.yaml
にはその出力されたディレクトリをCodeUri
に指定した形のtemplateが出力されている- つまり
sam package
のときに.aws-sam/build/template.yaml
をtemplateに指定してあげればよかった
- つまり
sam build -t template.dev-env.yaml
sam package --profile dev -t .aws-sam/build/template.yaml --s3-bucket artifact-no-bucket --output-template-file packaged.yaml
^^^このあたりのパスを変えた^^^
sam deploy -t packaged.yaml ~~~~~
Comments
Let's comment your feelings that are more than good