Используя Google App Engine Standard Python 2.7, в моем dispatch.yaml есть путь для указания всех URL-адресов типа "* / flex / *" для маршрутизации в службу flex.
dispatch.yaml dispatch:
- url: '*/flex/*'
module: flex
Среда flex - это пользовательская среда выполнения Python 3.7, которая обычно выполняется с использованием:
python dev_appserver.py flex.yaml --custom_entrypoint="docker run -p 9090:8080 flex_app"
.
С другими службами в моей среде я пытаюсь запустить среду разработки с помощью команды: python dev_appserver.py dispatch.yaml default.yaml sync.yaml task.yaml flex.yaml --custom_entrypoint="docker run -p 9090:8080 flex_app" --port=8080 --skip_sdk_update_check"
Однако, когда она начинается, она начинает назначать локальные IP-адреса каждой службе, когда ятребуется доступ к сервису flex из порта 9090.
Пример вывода на сервер:
INFO devappserver2.py:278] Skipping SDK update check.
INFO dispatcher.py:223] Starting dispatcher running at: http://0.0.0.0:8080
INFO dispatcher.py:256] Starting module "default" running at: http://0.0.0.0:8081
INFO dispatcher.py:256] Starting module "sync" running at: http://0.0.0.0:8082
INFO dispatcher.py:256] Starting module "task" running at: http://0.0.0.0:8083
INFO dispatcher.py:256] Starting module "flex" running at: http://0.0.0.0:8084
Я могу успешно получить доступ к приложению flex, если я нажму URL localhost: 9090.Однако, если я получаю доступ к localhost: 8084 или localhost: 8080 / flex /, я получаю сообщение об ошибке:
503 - This request has timed out.
В журналах сервера это отражено, но не отображается фактическая ошибка:
INFO module.py:861] flex: "GET / HTTP/1.1" 503 59
Можно ли отправить URL-адреса из стандартных сред GAE в среду Flex и направить их от назначенного порта к нужному порту?Я думаю, это возможно, так как Doc от Google App Engine указывает, что можно смешивать окружения вместе.Я также попытался решить эту проблему, заставив docker работать на порте 8084, но порты не могут быть общими.