我們目前使用的「nconf中」新公共管理模塊中使用的NodeJS一個JSON配置文件來處理環境的具體配置操作環境的NodeJS具體配置(密鑰等)。這個配置然後被檢入一個git倉庫並被應用程序使用。但是,隨着應用程序的增長,我們發現配置文件現在擁有機密憑證信息。我想找出在每個環境中處理這些憑證配置的好方法。我在許多論壇上讀到過,這些論壇在啓動節點服務器時提供這些憑據作爲環境運行時間參數,而不是將它們存儲在源存儲庫中。這很好,如果你手動啓動服務器,但是我們正在計劃使用dockerized自動化容器部署。在這種情況下,我們必須在某個地方存儲憑據配置,因此需要尋求建議,以解決處理這種情況的好策略。策略
Q
策略
0
A
回答
0
我認爲這取決於你使用的基礎設施。例如,如果你使用heroku,你可以在那裏設置ENV_VARS。 相同的,如果您有自己的服務器,你可以設置這些變量,你才知道誰有權訪問該管理員。
0
我已經做了與Heroku的和.ENV節點庫類似的東西。
這個庫時,服務器一旦發現從.ENV文件開始推一組環境變量。
僅在本地環境中創建.env文件,並將其設置在.gitignore文件中,以便它不會上傳到遠程。
您.ENV文件看起來像這樣:
AMAZON_CLIENT_ID=ABCDEFG
AMAZON_CLIENT_SECRET=CATDOGCOW
我喜歡把我的所有配置變量或常量到一個單一的文件,這樣我就可以找到他們,而不是周圍的代碼普遍。
所以我做了一個名爲config.js,看起來像這樣
require('dotenv').config({silent: true});
module.exports = {
AMAZON_CLIENT_ID:process.env.AMAZON_CLIENT_ID,
AMAZON_CLIENT_SECRET:process.env.AMAZON_CLIENT_SECRET,
}
至少在Heroku上,我可以設置手動Heroku的網站上所有的環境變量,我會假設你可以做的文件Docker中類似的東西。
然後你在你的代碼的任何地方使用它像:
var config = require('./config');
//some random code
if(req.query.amzclientid == config.AMAZON_CLIENT_ID)
我知道這是不是多克,但如果你有興趣知道更多的上述情況,我寫了一個tutorial了。
相關問題
- 1. 策略模式:耦合策略與非耦合策略
- 2. 在策略模式中設置策略
- 3. 默認策略。策略模式C#
- 4. 決策樹。噪聲策略
- 5. 策略與UDPClients
- 6. IAM策略?
- 7. Android StrictMode策略
- 8. 嘲諷策略
- 9. 分支策略
- 10. 進化策略
- 11. 同源策略
- 12. SQL - Windows策略
- 13. Java BufferedOutputStream策略
- 14. 搜索策略
- 15. 內存策略
- 16. ThreadPoolExecutor策略
- 17. 分區策略
- 18. 緩存策略
- 19. 策略MongoDB中
- 20. Python MDP策略
- 21. SSIS + AnkhSVN策略
- 22. DBus SystemBus策略
- 23. 策略一個
- 24. 跨域策略
- 25. 節風策略
- 26. 策略在C++
- 27. 尋呼策略
- 28. Cassandra寫策略
- 29. 策略模式
- 30. 策略在Windows
你嘗試創建您的碼頭工人祕密'.env'文件? – imcvampire
我們剛剛開始研究dockerizing應用程序。我沒有親自使用Docker的祕密,但我最初的閱讀表明我們可以創建SECRET鍵/值並通過Docker撰寫將它們注入到應用程序中。我希望能夠一次提供整個配置文件來獲取所有創建和散列的鍵和值。 – Dev