abd*_*bdp 7 javascript security environment-variables password-protection node.js
我需要在不同的环境中运行测试:DEV
,,STAGING
。PRODUCTION
不用说,上述环境的环境变量/秘密显然会有所不同。
我的快速解决方案是为每个环境创建一个 env 文件,例如dev.env
, staging.env
&prod.env
但根据流行的 dotEnv npm 包和 12 Factor 应用程序的文档,不建议.env
在您的存储库中包含多个文件。
请给我一个管理多个环境的环境变量的实用解决方案。
如果我正确理解他们在这里写的内容:
我应该有多个 .env 文件吗?
不可以。我们强烈建议不要使用“主”.env 文件和“环境”.env 文件(例如 .env.test)。您的配置应该在部署之间有所不同,并且您不应该在环境之间共享值。
这并不意味着您不应该拥有多个 env 文件,而是您不应该拥有一个main.env
包含所有默认配置的文件以及继承main.env
并覆盖某些值的附加 env 文件(每个环境一个)。
之所以不推荐,是因为这样的配置很难理解“具体值从何而来?” (来自以下其中之一:主环境文件、特定环境文件、环境变量、代码默认值等)。
也就是说,如果您创建多个没有这样的“main”的 env 文件,这意味着您需要在不同的 env 文件中复制许多值,由于明确性,这更好,但具有重复/冗长的缺点。
在我看来,配置并不是微不足道的,虽然您只有一个小项目,但选择如何实施并不重要,但如果我们谈论的是更重要的东西,例如公司的产品,那么有很多可用的解决方案,其中一些是开源且免费的,有些需要花钱,但值得进行研究并找出哪一个为您提供对您的用例更有意义的好处。
一些更流行的工具是:Puppet、Ansible和Chef。
归档时间: |
|
查看次数: |
10500 次 |
最近记录: |