Heroku附加配置可以在云中随机变化吗?

时间:2012-04-30 03:54:31

标签: heroku

成为Heroku的新手,我自己有点confused with add-ons

大约一年前的这个Heroku blog post引用了附加组件的环境变量作为最佳实践:

  

您的应用从环境变量(例如DATABASE_URL)读取数据库,memcached或外发SMTP服务器等支持服务的配置,而不是硬编码的常量或配置文件。这使平台可以轻松连接附加资源(当您运行heroku addons:add时),而无需触摸您的代码。

我确实在使用环境变量(通过Heroku配置),但在一种情况下,我使用自己的变量而不是由附加组件添加的默认变量。

(具体来说,我更喜欢使用例如CACHE_HOSTCACHE_PORT等来通过Heroku的REDISTOGO_URL进行Redis缓存。它感觉更精确/模块化,更通用 - 尤其是当我在开发期间使用Redis的本地实例而不是RedisToGo时。)

我想知道,这是一种不好的做法吗?像REDISTOGO_URL这样的附加配置会在云端随机变化吗?

2 个答案:

答案 0 :(得分:1)

来自Heroku Add-ons团队的首席工程师。回答你的问题以及你的其他观点和推理:

  • 附加组件配置是否可以更改?是。附加提供商可以随时更改它而不会发出警告。我们建议提供商不要更改它,除非他们必须更改它,因为它会导致重新启动您的应用和流程。但它可以改变,所以你应该假设它会。

  • 更精确/模块化。已经有一种既定的标准化方法来定义指向资源的指针,即URI。我们建议提供商尽可能使用它。

  • 更通用,尤其适用于本地开发。是的。我们认识到这是一个问题。我们正在讨论解决它的不同方法,在此期间我建议使用foreman和.env文件。

希望有所帮助。让我知道是否还有其他事情,

格伦

答案 1 :(得分:0)

这是配置变量的一点。应该/如果/当一个插件提供者/ Heroku需要更改它的变量时,它可以这样做,而无需更新任何代码库。显然,如果您根据REDISTOGO_URL变量选择将变量拆分为自己的变量,它确实需要您的干预,但总的来说我认为这是一个很好的设计。