背景
Serverless Frameworkを使っていて秘匿情報どうしようって悩んだときに、公式でサポートされていたのでその設定方法を書く。
環境
Serverless Framework 2.41.0
設定方法
環境変数用のファイルを用意
-
.env
や.env.dev
など -
.gitignore
に追記するのも忘れずに
AWS_ACCOUNT_ID=xxxxxxxxxxxx
MY_SECRET_KEY=xxxxx
serverless.ymlでの設定
useDotenv: true
...
iam:
role:
statements:
- Effect: "Allow"
Action:
- dynamodb:Query
- dynamodb:Scan
Resource: !Join
- ":"
- - "arn:aws:dynamodb:ap-northeast-1"
- ${env:AWS_ACCOUNT_ID}
- "table/myTable"
...
functions:
my-function:
handler: src/my_function.lambda_handler
# Lambdaの環境変数に渡したい場合
environment:
MY_SECRET_KEY: ${env:MY_SECRET_KEY}
-
useDotenv: true
を指定して -
${env:変数名}
で使うことができる
バージョン3.0.0以降はデフォルトになり、useDotenv: true
の指定をする必要がなくなるらしい
Links