以下是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端点吗?为什么?
答案 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