複数AWS環境にserverlessを適用するときに環境変数を切り替えたい
About
lambdaの適用方法が辛かったので調べたら、ちょっとマシになりました。
動作環境
- serverless@1.33.1
辛み
- lambdaを複数環境に当てないといけない
- 環境変数を指定するの辛いのでいい感じにしたい
適用方法
$ AWS_PROFILE=hoge sls deploy --region ap-northeast-1 $ AWS_PROFILE=fuga sls deploy --region ap-northeast-1
AWS_PROFILEを使って切り替える感じです。
仕組み
service: hoge # NOTE: update this with your service name custom: environment: ${file(env.yml):${env:AWS_PROFILE}} plugins: - serverless-python-requirements provider: name: aws runtime: python3.6 stage: dev region: ap-northeast-1 functions: logalert: handler: handler.handler ... environment: ENV: ${env:AWS_PROFILE, 'default'} SENTRY_DSN: ${self:custom.environment.sentry_dsn}
AWS_PROFILEを起点にして環境変数を切り替える感じにしてみました。
# test default: sentry_dsn: <dsn_key> hoge: sentry_dsn: <dsn_key> fuga: sentry_dsn: <dsn_key>
環境変数を追加しても切り替えが便利そうですね。