Как объединить два приложения Cloud Run в один домен, чтобы избежать CORS - PullRequest
0 голосов
/ 26 февраля 2020

У меня есть два приложения, которые я хотел, чтобы Cloud Run был полностью управляемым Один из них является Vue. js SPA, а другой - принадлежащим ему внутренним сервером, который подключен к MySQL, а также получает некоторые другие конечные точки API.

Теперь я развернул оба приложения но я совершенно не знаю, как я могу предоставить внешнему приложению доступ к внутреннему приложению. Они должны быть запущены в одном домене, чтобы избежать внешнего интерфейса.

Текущий URL-адрес приложения внешнего интерфейса: https://myapp-xl23p3zuiq-ew.a.run.app

Так что я бы хотел, чтобы сервер был доступен: https://myapp-xl23p3zuiq-ew.a.run.app/api

Этого можно достичь с помощью Cloud Run?

Ответы [ 2 ]

1 голос
/ 29 февраля 2020

У меня была такая же проблема. Общая идея, которую обычно используют, состоит в том, чтобы использовать сопоставление путей и сопоставление / с вашим клиентом и / с сервером с вашим бэкэндом. Некоторое время после поиска в Google я нашел это:

https://cloud.google.com/run/docs/mapping-custom-domains

Отображение базового пути: не поддерживается

Термин базовый путь относится к URL-пути, который идет после имени домена. Например, пользователи - это базовый путь example.com/users. Cloud Run позволяет только сопоставить домен с /, а не с указанным c базовым путем. Таким образом, любая маршрутизация пути должна обрабатываться с помощью маршрутизатора внутри контейнера службы или с использованием Firebase Hosting.

Option1:

В итоге я создал * all-one docker изображение с nginx в качестве обратного прокси-сервера и клиентом (некоторые stati c файлы) и сервером (в моем случае python приложением, работающим на uwsgi).

Если вы ищете вдохновение, вы можете проверить хранилище publi c здесь: https://gitlab.com/psono/psono-combo

Opttion2:

Альтернатива будет разместить ваш клиент на client.example.com , ваш сервер на server.example.com и затем создать третий экземпляр docker run с обратным прокси-сервером в example.com . Все запросы будут «переданы» клиенту и серверу. Ваши пользователи будут взаимодействовать только с example.com , поэтому CORS не будет проблемой.

Option3:

Настройте CORS, чтобы люди, обращающиеся к домену example.com, могли также подключаться к server.example.com

0 голосов
/ 27 февраля 2020

В настоящее время это невозможно в Cloud Run, как уже было сказано в комментариях к вашему вопросу.

Вы можете проверить, есть ли какой-либо запрос на добавление функции для этой функции в Buganizer (Google Отслеживание проблем), в настоящее время, похоже, их нет, и если это действительно так, вы можете создать новый запрос функции , изменив тип запроса с Bug на Feature Feature и по мере того, как Google разрабатывает его в пути карта, вам сообщат.

Надеюсь, это помогло вам.

...