🍡
[AWS SAM] samconfig.tomlのparameter_overridesを配列形式に変更して記述ミスを防ぐ
はじめに
業務でAWS SAM(以降、SAMと略)を使用しており、今回はsamconfig.tomlのparameter_overrides
項目に関する学びを得たので、それについて記事にしました。プロジェクトによっては、samconfig.tomlが別名で扱われている場合があるかもしれませんので、その点も考慮してご参照いただければと思います。
parameter_overridesとは
SAMプロジェクトをデプロイする際に、テンプレート内のParameters
セクションのパラメータを上書きすることが可能です。説明よりもコードを交えた方が理解しやすいかと考え、以下にその一例を紹介します。
template.yaml
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Parameters:
param1:
Type: String
param2:
Type: String
param3:
Type: String
param4:
Type: String
param5:
Type: String
samconfig.toml
[stg.deploy.parameters]
parameter_overrides = "param1=\"てすと1\" param2=\"てすと2\" param3=\"てすと3\" param4=\"てすと4\" param5=\"てすと5\""
デプロイ時には、parameter_overrides
項目に記載されたパラメータの値がテンプレートに適用されます。[stg.deploy.parameters]に示されている通り、各環境ごとに異なる設定が可能です。
参考として、以下の記事がわかりやすい内容を提供していますので、ぜひご覧いただければと思います。
文字列形式のparameter_overrides
parameter_overrides
は文字列形式で記述されます。
samconfig.toml
parameter_overrides = "param1=\"てすと1\" param2=\"てすと2\" param3=\"てすと3\" param4=\"てすと4\" param5=\"てすと5\""
sam deploy --guided
を使用して生成されたsamconfig.tomlでは、文字列形式が採用されています。パラメータの数が増えると可読性が低下し、10個以上などになると見つけにくく、記述ミスのリスクが高まります。
samconfig.toml
parameter_overrides = "param1=\"てすと1\" param2=\"てすと2\" param3=\"てすと3\" param4=\"てすと4\" param5=\"てすと5\" param6=\"てすと6\" param7=\"てすと7\" param8=\"てすと8\" param9=\"てすと9\" param10=\"てすと10\""
配列形式のparameter_overrides
parameter_overrides
は、以下のページにあるように配列形式でも記述可能です。
配列形式に変更することで、見やすさが向上し、特にパラメータの数が多い場合には可読性が向上します。文字列形式と比較して、見栄えが綺麗で記述ミスも減りそうです。
samconfig.toml
parameter_overrides = [
"param1=てすと1",
"param2=てすと2",
"param3=てすと3",
"param4=てすと4",
"param5=てすと5",
"param6=てすと6",
"param7=てすと7",
"param8=てすと8",
"param9=てすと9",
"param10=てすと10",
]
Discussion