cloud-foundry - CloudFoundry - 基于空间名称的条件环境变量

标签 cloud-foundry sap-cloud-foundry

我对基于 CloudFoundry 的应用程序有疑问。 到目前为止,我们在任何环境中都有随机路由(通过端口)。现在有一个要求,即在每个环境(开发、测试、生产)上始终使用相同的端口,以便接收者不必每次都更改 URL。到目前为止,我们在每次部署后通过控制台通过“cf map-route ...”执行此操作。

有什么方法可以通过 config/yaml 文件静态地执行此操作吗? 是否可以在 YAML 中指定环境特定变量?示例:

  - name: odata_kbs_sv-app
    type: html5
    path: app
    parameters:
    port: ~{specificPort}
    [...]
    when space = 'DEV' then specificPort = 55555 etc.

谢谢。

最佳答案

您可以在 manifest.yml 文件中为路由设置静态端口。在 routes block 中,添加带有端口的路由。

例如:

---
  ...
  routes:
  - route: tcp-example.com:1234

https://docs.cloudfoundry.org/devguide/deploy-apps/manifest-attributes.html#routes

如果您的所有环境都具有相同的端口,则可以到此为止。如果您需要为每个环境使用不同的固定端口,请继续阅读。

您不能在 manifest.yml 文件中执行任何形式的逻辑或分支,但您可以使用 list 变量。

例如:

---
  ...
  routes:
  - route: tcp-example.com:((port))

https://docs.cloudfoundry.org/devguide/deploy-apps/manifest-attributes.html#variable-substitution

当您cf Push时,您需要设置--var port=8080或者需要设置--vars-file=file/与/vars

更进一步,当使用 --var port= 时,您可以使用 shell 环境变量或 shell 逻辑来控制使用的端口值,或者您可以引用不同的 - -vars-file 每个环境的文件。它最终变得非常灵活。

关于cloud-foundry - CloudFoundry - 基于空间名称的条件环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69179119/

相关文章:

sql - 删除连接的输出(记录在多个表中)

java - SAP CF XSUAA 服务 - 错误消息 : Invalid redirect <redirect_uri>/login/callback did not matched the registered values

swift - 尝试在 Bluemix 上运行 Swift Vapor - 找不到 404 : Requested route does not exist

grails - 在 CloudFoundry 上启动 Grails 应用程序时为 "state is undetermined"

java - 在 Pivotal Cloud Foundry 中创建服务代理时无法访问 'plans' 部分

java - 如何在Cloud Foundry上获取java应用程序的threaddump?

java - 如何传递 json 文件或对象来启动 Cloud Foundry 中的应用程序?

Azure Active Directory 与 SAP Cloud Foundry 集成

spring - 如何更新 cf vcaps env 中的 postgres uri 值