🗿

samconfigの書き方

2024/11/12に公開1

samconfig is 何

sam cliを利用するにあたって、ビルドやデプロイ時の設定を行うファイルのこと。
https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/serverless-sam-cli-config.html

sam cliへデフォルトで渡す引数を環境毎に設定でき、デプロイ時のオペレーションを簡単にすることができる。

形式

サポートされている形式は、TOMLもしくは[YAML|YML]
今回はTOMLで書いていく。

書き方

基本

基本的な書き方は以下の通り

version = 0.1
[environment]
[environment.command]
[environment.command.parameters]
option = parameter value

enviromentには任意の環境名、もしくはdefaultを指定する。defaultは環境を指定しなかった場合の設定になる。
commandにはsam cliのコマンド(local, build, deployなど)、もしくはglobalを指定する。globalを指定することで設定が全てのコマンドに適用される。
optionにオプション名を、parameter valueに値を指定する。
(TOMLなので2行目、3行目は省略可能)

環境は--config-envオプションで指定することができる。

sam [command] --config-env [enviroment]

sam deployでの例

[stg.deploy.parameters]
stack_name = "my-stg-app-stack"

[prd.deploy.parameters]
stack_name = "my-prd-app-stack"

上記のように設定することで
sam deploy実行時、--stack-nameをコマンドで指定しなくても設定をもとに実行してくれる。

優先度

同じ設定が重複した場合は以下の順番で優先される

  1. sam cliの引数
  2. enviroment
  3. global

参考

https://dev.classmethod.jp/articles/recommend-sam-config-toml/

Discussion

タマキタマキ

Great writing!! 🤩🤩
Thank you for sharing.
It is better if we have any example or PET project to show what you instructed.
Keep it going well