samconfig.tomlファイル内で環境毎にパラメータを設定してsam deployする

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

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました