2012-04-30 7 views
0

Herokuに新しいので、私は少しconfused with add-ons自分自身です。Herokuアドオンの設定はクラウド内でランダムに変更できますか?

アプリは、データベース、memcachedの、または発信SMTPサーバからのような裏サービス用の設定を読み取ります

年ほど前からこのHeroku blog postは、ベストプラクティスとして、アドオンの環境変数を使用して引用していますハードコードされた定数や設定ファイルではなく、環境変数(例:DATABASE_URL)です。これにより、コードに触れることなく、プラットフォームがアドオンリソースを簡単に接続することができます(heroku addons:addを実行すると)。

私は本当に(Herokuの設定を介して)環境変数を使用していますが、1つのケースでは、アドオンによって追加されるデフォルトのものの代わりに自分のvarsを使用しています。

(具体的には、私はHerokuのの上で、私のRedisのキャッシュのために例えばCACHE_HOSTCACHE_PORTなどを使用することを好むそれは両方より/精密モジュラー、より汎用的な感じ - 。。ESP私はRedisののローカルインスタンスを使用する場合、ありませんRedisToGo、開発中)

私は、それは悪い習慣ですか?クラウド内でランダムに変更されたのようなアドオン設定はありますか?

答えて

1

ここからHerokuアドオンチームのリードエンジニアです。あなたに質問とあなたの他のポイントと推論に答えるには:

  • アドオンの設定は変更できますか?はい。アドオンプロバイダは、警告なしにいつでも変更することができます。プロバイダは、アプリやプロセスの再起動が必要な場合を除いて、プロバイダを変更しないことをお勧めします。しかし、それは変わる可能性があるので、あなたはそれを仮定すべきです。

  • より正確な/モジュール式。リソース、URIへのポインタを定義する確立された標準化された方法が既にあります。また、プロバイダは可能な限り、これを使用することをお勧めします。

  • より一般的な、特にローカル開発用。うんこれは問題であると認識しています。私たちはそれに対処する様々な方法について議論していますが、その間にforemanと.envファイルを使用することをお勧めします。

希望します。

グレン・パースペクティブの

+0

ソースからまっすぐな答えを得るのは素晴らしいことです。再:最後のポイント、私は確かに上司と.envファイルをローカルに使用しています。私のコードが 'REDISTOGO_URL'という設定に頼っているのはちょっと変わったことです - それはコードがRedisToGoによって提供されるRedisデータベースを必要とすることを暗示しています。おそらく、アドオンのconfigs/"マップ"を別の名前に "名前を変更"するオプションがありますか? –

+0

それは不思議でおそらく望ましくないと言います。それに対処するより良い方法を検討しています。お待ちください:) –

+0

恐ろしい!ありがとう。 =)私は待つことができません。 –

0

これは設定変数の一種です。/If/Addonプロバイダ/ Herokuが変数を変更する必要がある場合、コードベースを更新する必要はありません。明らかに変数を変数ごとに分割することを選択した場合は、あなたの介入が必要ですが、全体としては良い設計だと思います。

+0

おかげで、何が他のがあれば、私に教えてください。それは実際には実際には起こりますか?/Herokuは以前にenv変数を予告なしに変更しましたか? –

+0

Herokuを使っているのはほぼ3年で私はそれが起こるのを見たことがありません(私の知識に) –

関連する問題