12-Factor Apps建议您使用环境变量来配置应用程序。到目前为止,一切都很好。如果您需要设置连接字符串,我可以轻松想象这是一个不错的方式。
但是,如果您有更复杂的配置,并且有很多值,怎么办?我肯定不想拥有50多个环境变量,对吧?
我该如何解决这个问题,并仍然符合12-Factor Apps的理念呢?
12-Factor Apps建议您使用环境变量来配置应用程序。到目前为止,一切都很好。如果您需要设置连接字符串,我可以轻松想象这是一个不错的方式。
但是,如果您有更复杂的配置,并且有很多值,怎么办?我肯定不想拥有50多个环境变量,对吧?
我该如何解决这个问题,并仍然符合12-Factor Apps的理念呢?
从您提供的配置链接的快速阅读中,我同意作者的说法,存在普遍问题,但我并不认为他们提出的解决方案总是最好的。像您一样,我不喜欢定义数十个环境变量来配置应用程序的想法。因此,这里有一些替代想法。
首先,请阅读{{link2:Config4*入门指南第2章}}(免责声明:我是该软件的主要作者)。特别是,请注意它对我所谓的自适应配置的支持可以在很大程度上解决您所问的问题。 Config4*是终极解决方案吗?可能不是,但我认为它是朝着正确方向迈出的一步。
其次,你正在开发/维护的应用程序很可能已经确定了特定的配置技术,例如XML文件或Java属性文件,并且迁移到使用Config4*可能是不可行的。这就引出了一个问题:当你有多个环境(如dev、UAT、staging和production)需要部署应用程序时,是否有什么方法可以避免出现大量基于XML的配置文件呢?我在另一篇StackOverflow 文章中概述了解决此问题的方法。
node app.js
启动我的应用程序。我不想手动提供50多个环境变量,也不想每次想要尝试一些设置时都编辑一个文件。 - Golo Roden