我用nodejs开发一个应用程序并做出反应。我在不同的环境中使用dotenv进行配置。
我使用TFS 2017生成和发布我的应用程序。
添加生产环境的.env文件的最佳实践是什么?
答案 0 :(得分:1)
生产配置可能很难维护。您可以使用任何模块,甚至可以编写自己的自定义模块将环境变量加载到您的应用程序中。
但是,在每个产品的本地维护生产.env
文件(例如,将它们提交或放入docker映像中是一个坏主意。如果您碰巧更改其中一些配置,则必须手动更改)在每个应用程序的代码中,构建docker映像(如果需要)并重新部署。如果只有几个应用程序,这可能很容易。但是,如果相关应用程序的数量增加(通常发生在基于微服务的情况下)体系结构)-它们都共享凭据,用于数据库连接的ips等。手动更改代码并重新部署所有应用程序变得很忙。
通常,开发人员倾向于保留所有凭证和环境变量的中央存储库。例如,AWS提供parameter store,而MS Azure提供Azure Key vault。在这种情况下,所有参数都是在启动时获取的,我们要做的就是重新启动应用程序。
因此,通常人们只设置一个全局变量NODE_ENV(为prod
或dev
),基于运行诸如env $(node read-env-variables.js) node app.js
之类的NODE_ENV动态获取所有环境变量。