[英]Failing to push a NodeJS + AngularJS app to PAS - Pivotal Cloud Foundry (PCF)
[英]Bind NodeJS app variables to Pivotal Cloud Foundry Service
我希望綁定PCF(Pivotal Cloud Foundry)服務,以允許我們設置PCF環境中UI所使用的某些api端點。 我想使用此服務中的值來覆蓋根目錄文件“ config.json”中的值。 有沒有可以完成這種事情的例子?
解決此問題的主要方法是讓您的應用程序執行此解析。 大多數(全部?)編程語言都使您能夠加載環境變量和解析JSON。 使用這些功能,您要做的就是讀取VCAP_SERVICES
環境變量並解析JSON。 平台將在此處插入綁定服務中的信息。 從那里,您可以獲得配置信息,因此可以使用綁定服務中的值配置應用程序。
手動執行:
var vcap_services = JSON.parse(process.env.VCAP_SERVICES)
或者您可以使用圖書館。 有一個方便的Node.js庫,名為cfenv
。 您可以在文檔中詳細了解這兩個選項。
https://docs.cloudfoundry.org/buildpacks/node/node-service-bindings.html
如果您無法閱讀應用程序內部的配置,則可能是時序問題,並且在應用程序啟動之前需要信息,則可以使用平台的運行前掛鈎。
https://docs.cloudfoundry.org/devguide/deploy-apps/deploy-app.html#profile
運行時掛鈎允許您的應用程序包含一個名為.profile
的文件,該文件將在您的應用程序之前執行。 .profile
文件是一個簡單的bash腳本,可以執行准備運行應用程序所需的任何操作。 唯一需要注意的是,這需要很快發生,因為它必須在應用程序能夠啟動且應用程序具有有限的啟動時間(通常為60秒)之前完成。
在您的情況下,您可以使用jq
解析您的值,然后將其插入配置文件中,或者使用sed
覆蓋模板值。 另一個選擇是運行一個小的Node.js腳本,因為您的應用程序正在使用Node.js,因此該腳本在運行時應該在路徑上可用,以讀取環境變量並生成您的配置文件。
希望有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.