AmplifyでデプロイしたECSのコンテナで環境変数を使用する
- 2021.02.16
- AWS
amplifyでECSをデプロイする機能がリリースされたので使ってみました。
この記事の通り進めていくと、ネットワークの設定など行うことなく、簡単にFargate上でアプリケーションを動かすことができました。
その上で、DBの接続情報などの環境変数を扱うにはどうすれば良いのか調べてみたところ、以下の公式のドキュメントにもあるように、docker-composeを使用した方がsecretsなども扱えて良さそうでした。
https://docs.amplify.aws/cli/usage/containers#supported-configurations
ドキュメントにしたがって、以下のように記載しました。
version: "3.8"
services:
backend:
build:
context: backend
environment:
- DATABASE_NAME=mydb
secrets:
DB_PASSWORD:
file: ../secrets/.secret-pass
結果、environmentに設定したDATABASE_NAMEはアプリケーションから環境変数として取得できましたが、secretsで設定したDB_PASSWORDは取得できませんでした、、
結構ハマりましたが、社内の他のメンバに試行錯誤いただいて判明したのは、amplifyのドキュメントに必要な記載が不足していたようです。正しくは以下のように記載する必要があります。
version: "3.8"
services:
backend:
build:
context: backend
environment:
- DATABASE_NAME=mydb
secrets: # これが必要だった
- DB_PASSWORD:
secrets:
DB_PASSWORD:
file: ../secrets/.secret-pass
-
前の記事
TypeORMのタイムゾーンをUTCに設定する 2021.02.16
-
次の記事
JestのクラスのモックをTypeScriptで使用する 2021.03.14