Приложения должны быть сопоставлены с маршрутами в одном и том же пространстве
Ниже ошибка на 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? Зачем?
3 ответа
По умолчанию cf push назначает маршрут каждому приложению
Я понятия не имею, что функциональность опускает route
может быть по умолчанию /
назначается приложению в пространстве, которое может быть уже занято другим приложением в пространстве.
Cloud Foundry Gorouter направляет запросы к приложениям, связывая приложение с адресом, известным как маршрут. Мы называем эту ассоциацию картированием. Используйте команду cf CLI cf map-route, чтобы связать приложение и маршрут.
Вы можете запустить cf routes
команда, чтобы увидеть, какие маршруты используются,
https://cli.cloudfoundry.org/en-US/cf/routes.html
Вы можете запустить приложение без маршрута, случайного маршрута или предоставить маршрут
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html
---
...
no-route: true
случайный маршрут,
---
...
random-route: true
определенный маршрут,
---
...
routes:
- route: example.com
- route: www.example.com/foo
- route: tcp-example.com:1234
https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html
Вы можете проверить документацию маршрутов для более подробного объяснения того, что такое маршрут.
https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html
Если вам нужна последняя версия артефакта, для этого есть новая функция. См. последний абзац в https://help.sonatype.com/repomanager3/integrations/rest-and-integration-api/search-api . Однако они забыли добавить к пути пустой «&maven.classifier». Если вы этого не сделаете, он получит последнюю версию вашего артефакта — javadoc.jar из Nexus, а это не то, что вам нужно. По крайней мере, так было со мной.
Для cf8 есть способ включить совместное использование маршрутов между пространствами.
https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#share-route
Для меня это не работает, потому что у меня нет разрешений, но я открыл здесь вопрос
Надеюсь, поможет.