以下の話をします
-
useDotenv: true
をどこに書くのか -
.env
ファイルをどこに置くのか - どこで使えるのか
結論
最終的に以下のようなディレクトリ構成になります。
rootdir/
┣ aaa/
┃ ┣ .env.dev
┃ ┣ .env.prod
┃ ┗ serverless.yml
┣ bbb/
┃ ┣ .env
┃ ┗ serverless.yml
┗ serverless-compose.yml
useDotenv: true
をどこに書くのか
serverless-compose.yml
には書けません。(書いてもエラーにはなりませんが読まれません)
子フォルダの serverless.yml
に個別に書きます。
.env
, .env.{stage}
ファイルをどこに置くのか
useDotenv: true
を子フォルダに書いたので、 .env
, .env.{stage}
ファイルは子フォルダにそれぞれ置きます。
共通の変数(システム名の接頭辞など)は1箇所にまとめたかったのですができませんでした。情報募集しています。
${env:prameterXX}
はどこで使えるのか
お察しの通り、子フォルダごとに .env
ファイルを定義しているのでその範囲でしか使えません。
ただし、こんなところでも使えました。
serverless.yml
service: ${env:serviceNamePrefix}-service
useDotenv: true
~~~
useDotenv: true
よりも上で参照しても使えました。これは便利ですね。