Маршрутизация между проектами стандартной среды App Engine и гибкой среды в рабочей среде

У меня есть два проекта App Engine на Go, которые составляют одно приложение, ориентированное на пользователя. Один проект является проектом стандартной среды и имеет большую часть функциональности, а также обслуживает статический пакет внешнего интерфейса React. Второй проект - это проект гибкой среды, который служит определенной цели для связи и передачи больших файлов в сторонний API (это проект гибкой среды, потому что мы столкнулись с ограничениями по размеру с помощью urlfetch).

Теперь, когда я развертываю приложение, у меня возникла проблема с запросами api из внешнего интерфейса. В процессе разработки наш сервер внешнего интерфейса будет выполнять запросы прокси, например / api / project и / api / user к соответствующим службам App Engine, работающим на разных портах, но в производственной среде мой стандартный проект среды находится примерно в https://my-project-std.appspot.com, а проект гибкого окружения находится примерно в https://my-project-flex.appspot.com.

Я использую файл dispatch.yaml с проектом std env для маршрутизации запросов api (например, / api / project и / api / user) в соответствующую службу, но я не уверен, что лучший способ маршрутизировать запросы, которые должны идти в гибкую среду сервис (например, / api / model). Должен ли я перенаправить их через проект std env и перенаправить? настроить обратный прокси? какой-то другой подход?

Спасибо!


person jcarlile    schedule 08.08.2018    source источник


Ответы (2)


Я использовал подход обратного прокси, и теперь он работает так, как я надеялся. Это сообщение в блоге очень помогло найти решение https://blog.semanticart.com/2013/11/11/a-proper-api-proxy-written-in-go/

person jcarlile    schedule 09.08.2018

Как выглядит ваш dispatch.yaml & yaml для ваших услуг?

Вы имели в виду, что у вас есть 2 сервиса в одном проекте (а не 2 отдельных проекта)?

Если да, ты можешь это сделать

https://cloud.google.com/appengine/docs/standard/python/how-requests-are-routed

https://[SERVICE_ID]-dot-[MY_PROJECT_ID].appspot.com

person Alex    schedule 09.08.2018
comment
У меня есть два отдельных проекта: Go Standard Environment и Go Flexible Environment. В проекте std env есть диспетчерский файл со стандартными шаблонами, такими как '# Запросы, связанные с проектом, переходят в службу проекта - url: / api / project service: project-svc', а в проекте гибкой среды нет файл отправки - person jcarlile; 09.08.2018