max*_*der 18 configuration ruby-on-rails heroku 12factor
我很高兴在Heroku上使用Rails,就像我可以调整Heroku应用程序的配置属性而无需提交更改xyz.yml
和重新部署.
在我的Rails应用程序中完全取消Yaml配置文件会很好,并尽可能地依赖于在ENV中存储配置.这与12因素配置原则一致.
但是,从基于Yaml的配置管理切换到基于Heroku/12因子的配置管理有一些权衡.
希望听到那些在私有应用程序中使用过12因子样式配置的人,以及他们如何在许多部署中管理大量配置变量.
谢谢!
Nei*_*ton 10
我通常使用的是Yaml使用ENV并提供默认值.例如,YAML可以很高兴地将ERB包括在你的ENV变量中:
foo:
var: ENV["MY_CONFIG"] || "default_value"
Run Code Online (Sandbox Code Playgroud)
您只需要确保在阅读时使用ERB加载Yaml:
YAML.load(ERB.new(File.read("#{Rails.root}/config/app_config.yml")).result)
Run Code Online (Sandbox Code Playgroud)
通过这样做,您的代码在开发中工作正常,但也允许您在环境中设置配置变量.
您可以使用一些简单的 shell 脚本相对轻松地完成此操作,通过 heroku config 或 heroku release:info v99 迭代现有变量,然后设置 heroku config:set k=v --app
但是,如果它是一个问题/痛苦/摩擦,那么您的 env var 配置中可能有太多内容。