Amazon-Web-Services
我應該為 aws eb 使用不同的 Dockerrun.aws.json 文件還是通過 eb 控制台設置環境變數
假設我有幾個 ElasticBeanstalk 環境:
- 生產MyApp
- stagingMyApp
- qaMyApp
每個環境都有非常相似的 Dockerrun.aws.json(哪些卷應該連結到哪裡)但不同的環境變數(例如 RDS db url 是什麼,RDS 的密碼是什麼,mandril API 密鑰……)
我應該將每個環境的環境變數儲存在自己的文件中(qa-Dockerrun.aws.json,prod-Dockerrun.aws.json,…)並告訴
eb deploy
使用該文件(如果可以,我該怎麼做??)或者
eb setenv POSTGRES_PASS=xyzsecretabc
我應該使用doc設置環境而不是將它們放置到 Dockerrun.aws.json歡迎任何其他建議
git
我當然想避免將我的敏感資訊儲存在謝謝
花了一些時間後,我決定採用此解決方案:
兩者都做:)
很難跟踪彈性 beantalk 中的所有環境變數(顯然有一個限制數量,沒有檢查那個 doh)並且將數據庫密碼送出給版本控制是愚蠢的。
在版本控制 (git)中保留已經公開的內容,例如
DB_PORT_5432_TCP_ADDR
(RDS 公共 DNS)、DB_ENV_POSTGRES_USERNAME
(postgres 使用者名)、、REDIS_PORT_6379_TCP_ADDR
(S3_BUCKET_NAME
資產儲存桶)Dockerrun.aws.json
但是像
DB_ENV_POSTGRES_PASSWORD
,SECRET_KEY_BASE
,MANDRIL_API_TOKEN
,AWS_SECRET_ACCESS_KEY
作為 Elastic Beanstalk 環境