Название маршрута через конечные точки API

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

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 в среде разработчиков.


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 ответ

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, которые ничего не разделяют.

Другие вопросы по тегам