Google App Engine постоянно возвращает ответ 400 на нестандартный домен
Мой сценарий использования - это приложение Django, работающее в службе app-engine, и я использую облачные задачи для выполнения асинхронной работы в фоновом режиме.
Django создает задачу -> задача отправляет обратно в Django для выполнения долгоиграющей задачи
На этот ответ сервер постоянно отвечает 400
. После просмотра журналов выяснилось, что он отправляет обратно относительный url, а хостом является домен, заданный Google по умолчанию, т.е. sample-development-app.uc.r.appspot.com
. Когда я перехожу к этому месту в браузере, я также получаю ответ 400.
Однако, у меня есть пользовательский домен, настроенный и работающий на этом приложении, т.е. app.development.sample.com
. Когда я перехожу на это место в браузере, я получаю ожидаемую веб-страницу
Я пробовал сопоставить оба адреса с помощью dispatch.yaml
к одной и той же службе по умолчанию, но это не изменило результат. Мое рабочее предположение заключается в том, что постбэк задачи сталкивается с той же проблемой, которую я наблюдаю в браузере.
Это мой первый проект на gcp app engine, поэтому я думаю, что мне не хватает чего-то в меню, чтобы позволить ему принимать несколько URL, один из которых по умолчанию поставляется google.
Спасибо, что дочитали до конца.
app.yaml
# [START django_app]
# [START gaestd_py_django_app_yaml]
runtime: python310
env_variables:
DJANGO_SETTINGS_MODULE: config.settings.gae
handlers:
- url: /static
static_dir: config/staticfiles/
- url: /.*
script: auto
dispatch.yaml
dispatch:
- url: "sample-development-app.uc.r.appspot.com/*"
service: default
- url: "app.development.sample.com/*"
service: default
Я буду владеть своей проблемой, оказалось, что "ALLOWED_HOSTS" был установлен на URL пользовательского домена. Из логов следовало, что к приложению не было доступа, но на самом деле это была просто глупая ошибка.