0

作为 Heroku 的新手,我自己对附加组件有点困惑。

大约一年前的这篇Heroku 博客文章引用了使用附加组件的环境变量作为最佳实践:

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

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

(具体来说,我更喜欢在 Heroku 的 Redis 缓存中使用 eg CACHE_HOSTCACHE_PORTREDISTOGO_URL。感觉更精确/模块化和更通用——尤其是当我在开发过程中使用 Redis 的本地实例而不是 RedisToGo 时。)

我想知道,这是一种不好的做法吗?附加配置可以REDISTOGO_URL在云中随机更改吗?

4

2 回答 2

1

Heroku 附加组件团队的首席工程师。回答你的问题和你的其他观点和推理:

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

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

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

希望有帮助。让我知道如果还有什么,

格伦

于 2012-05-02T14:08:16.773 回答
0

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

于 2012-04-30T07:25:50.937 回答