samconfig.tomlファイル内で環境毎にパラメータを設定してsam deployする
samを使用してデプロイする際にsamconfig.tomlファイルを環境毎に用意するのか、それともsamconfig.tomlファイルは1つにしてパラメータで動的にtemplate.yamlに値を設定するのかなど、構成を考えておく必要があります。
今回はsamconfig.tomlファイルは1つにして、ファイル内に環境毎のパラメータを用意してsam deployしてみます。
項目 | 値 |
---|---|
環境 | dev,prod |
環境は、devとprodがあるとします。環境毎にstack-nameを指定する必要があります。
samconfig.toml
version = 0.1 [default] [default.global.parameters] stack_name = "sam-app" [dev.deploy.parameters] capabilities = "CAPABILITY_IAM" confirm_changeset = false resolve_s3 = true stack_name = "sam-app-dev" parameter_overrides = [ "Env=dev", "MemorySize=256" ] [prod.deploy.parameters] capabilities = "CAPABILITY_IAM" confirm_changeset = false resolve_s3 = true stack_name = "sam-app-prod" parameter_overrides = [ "Env=prod", "MemorySize=512" ]
[dev.deploy.parameters]と[prod.deploy.parameters]を用意して、それぞれの環境に合わせたパラメータ設定をしています。
template.yamlではパラメータとして受け取ることができます。
template.yaml
AWSTemplateFormatVersion: '2010-09-09' Transform: AWS::Serverless-2016-10-31 Description: > sam-app Sample SAM Template for sam-app Parameters: Env: Type: String Default: dev AllowedValues: - dev - prod MemorySize: Type: Number Default: 128 Globals: Function: Timeout: 3 Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: FunctionName: !Sub "${Env}-samapplambda" CodeUri: hello-world/ Handler: app.lambdaHandler Runtime: nodejs20.x Architectures: - x86_64 MemorySize: !Ref MemorySize
これでsam deployしますが、オプションに--config-env 環境
を指定します。※ここでは環境はdevまたはprod
dev環境へデプロイするコマンドです。
sam deploy --config-env dev
prod環境へデプロイするコマンドです。
sam deploy --config-env prod
なんちゃってですけどお料理得意なんです☆
保有資格:調理師免許、ふぐ取扱登録者(大阪)、食品衛生責任者、火元責任者
会社役員。趣味は食べ歩き飲み歩きと釣り。