应用必须映射到同一空间中的路由

时间:2019-02-07 19:26:07

标签: cloudfoundry pivotal-cloud-foundry

以下是cf push上的错误:

org.cloudfoundry.client.v2.ClientV2Exception: CF-InvalidRelation(1002): The app cannot be mapped to this route because the route is not in this space. Apps must be mapped to routes in the same space.

以下是清单文件:

applications:
- name: xyz-api
  instances: 1
  memory: 1G
  buildpack: java_buildpack_offline
  path: target/xyz-api-0.1-SNAPSHOT.jar

cf login x.y.z.w.org.cloud ....

cf push xyz-api -p target/xyz-api-0.1-SNAPSHOT.jar

我们有两个API端点:

a.b.c.d.org.cloud

x.y.z.w.org.cloud

根据调查,我们意识到a.b.c.d.org.cloud上已经存在路由名称,因为我们的源代码在任何API端点上都对相同的路由名称进行了硬编码。

同一路由名称不能用于多个API端点吗?为什么?

1 个答案:

答案 0 :(得分:2)

  

默认情况下,cf push会为每个应用分配路由

我不知道省略route的功能是什么,也许已为该空间中的应用程序分配了默认的/,而该空间中的另一个应用程序可能已经采用了默认的cf routes

  

Cloud Foundry Gorouter通过将应用程序与地址(称为路由)相关联将请求路由到应用程序。我们将此关联称为映射。使用cf CLI cf map-route命令来关联应用程序和路由。

您可以运行--- ... no-route: true 命令来查看正在使用的路由,

https://cli.cloudfoundry.org/en-US/cf/routes.html

您可以运行没有路由,随机路由或提供路由的应用程序

https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html#no-route

---
  ...
  random-route: true

随机路线

---
  ...
  routes:
  - route: example.com
  - route: www.example.com/foo
  - route: tcp-example.com:1234

定义的路线,

import android.widget.ImageButton;

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

您可能想查看路线文档以获取关于路线是什么的更详细说明。

https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html