簡體   English   中英

將NodeJS應用程序變量綁定到Pivotal Cloud Foundry Service

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM