Название маршрута через конечные точки API - PullRequest
0 голосов
/ 10 февраля 2019

У нас ниже двух конечных точек, имеющих соответствующую Организацию и Пространство

1) Среда разработки: a.b.c.org.cloud

2) Среда проверки концепции (POC): a.b.c.poc.io


Существует приложение (my-cool-app) с именем маршрута my-cool-app.a.b.c.poc.io, работающее в среде POC.

Из-за проблемы с запахом кода в этом приложении имя маршрута определяется источником приложения.код (жестко запрограммированный), но не через manifest.yml из cf push.Это приводит к тому же имени маршрута my-cool-app.a.b.c.poc.io для my-cool-app в среде Dev.


1) Может ли приложение иметь такое же имя маршрута my-cool-app.a.b.c.poc.io в среде разработчика (a.b.c.org.cloud)?Потому что мы видим эту ошибку 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. после cf push

2) Имеет ли среда Dev и POC одну и ту же базу данных контроллера облака (CCDB)?Потому что CCDB поддерживает связывание имени приложения с именем маршрутизатора

1 Ответ

0 голосов
/ 10 февраля 2019

1) Может ли приложение иметь одно и то же имя маршрута my-cool-app.abcpoc.io в среде разработки (abcorg.cloud)?

Это зависит от того, что вы подразумеваете под словом "dev""и" POC "среды.Если это совершенно разные фонды, тогда да.Он должен работать.Вы просто используете DNS, чтобы контролировать, куда направляется реальный трафик.

Если они совместно используют один и тот же облачный контроллер, как, например, у вас есть организации "dev" и "poc", то это работает, но с ограничениями.Вы можете сопоставить один и тот же маршрут двум разным приложениям, но они должны находиться в одном и том же месте.Это то, что говорит эта ошибка.

Приложение не может быть сопоставлено с этим маршрутом, потому что маршрут не находится в этом пространстве.Приложения должны быть сопоставлены с маршрутами в одном и том же пространстве.

Если вы сопоставляете один и тот же маршрут с двумя разными приложениями, то, что вы фактически делаете, это распределяете трафик между двумя приложениями 50/50.Если бы Cloud Controller разрешил это для разных организаций и пространств, то в другом органе и пространстве мог бы быть кто-то, кто мог бы перенаправлять трафик из вашего приложения в другое приложение, потенциально вредоносное приложение, что было бы большой проблемой безопасности.Учитывая это, Cloud Controller предотвращает это.

2) Имеет ли среда Dev и POC одну и ту же базу данных контроллера облака (CCDB)?Потому что CCDB поддерживает связывание имени приложения с именем маршрутизатора

Звучит так, как в вашей среде, но это не является строгим требованием.У вас может быть два совершенно разных фонда, один для Dev и один для POC, которые ничего не делят.

...