VCAP_SERVICES のエントリは、cf bind-service コマンドが呼び出されるとすぐに追加されるようです。その場合、再起動が必要な理由
3 に答える
新しいサービスをバインドする場合、アプリを再起動するだけでは不十分です。あなたはそれをしなければrestage
なりません。
アプリケーションを再ステージングすると、新しいドロップレットをコンパイルして開始することで、アプリケーションを停止して再ステージングします。
詳細については、アプリケーションの開始、再起動、および再ステージングを参照してください。
また、ステージング ライフサイクル、ドロップレットの作成方法と保存方法を理解するために、アプリケーションのステージング方法を参照してください。
OS 環境変数は、アプリケーションのVCAP_SERVICES
起動時に設定されます。プロセスが開始されると、環境変数の値は変更できません。cf bind-service
これが、実行後にアプリケーションを再起動して新しい値を確認する必要がある理由です。VCAP_SERVICES
ビルドパックが実行cf push
され、一部のビルドパックが、どのサービスがアプリにバインドされているかを検査し、サービスの存在に反応する可能性があります。たとえば、newrelic サービスをアプリにバインドしている場合、ビルドパックは newrelic エージェントを cf push によって作成されたドロップレットにインストールします。これが、cf bind-service
操作後cf restage
にビルドパックを再実行し、ビルドパックによって生成されたドロップレットを変更して、新しくバインドされたサービスの存在に対応する機会を与える必要がある理由です。