我们目前使用的“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