Развертывание Django в Azure: 504 таймаут и ошибка ROOT_URLCONF
Я развертываю приложение Django в Azure с помощью GitHub Actions, но сталкиваюсь с ошибкой 504 Gateway Timeout при первом запросе и ошибкой AttributeError: 'Settings' object has no attribute 'ROOT_URLCONF' afterwards. Я следовал документации и подтвердил настройку ROOT_URLCONF в файле settings.py. Приложение также загружает модель машинного обучения из Azure Blob Storage во время запуска.
wsgi.py:
import os
from django.core.wsgi import get_wsgi_application
settings_module = 'FakeNewsDetectorAPI.deployment' if 'WEBSITE_HOSTNAME' in os.environ else 'FakeNewsDetectorAPI.settings'
os.environ.setdefault('DJANGO_SETTINGS_MODULE', settings_module)
print("Before get_wsgi_application()")
application = get_wsgi_application()
print("After get_wsgi_application()")
settings.py:
startup.sh:
#!/bin/bash
# Enable debug output
set -x
exec > >(tee -i /var/log/startup.log) 2>&1
echo "Starting deployment script..."
echo "Setting up virtual environment..."
if [ ! -d "antenv" ]; then
python -m venv antenv
fi
if [ -f antenv/Scripts/activate ]; then
. antenv/Scripts/activate
else
. antenv/bin/activate
fi
echo "Installing dependencies..."
pip install -r requirements.txt
if [ $? -ne 0 ]; then
echo "Failed to install dependencies. Exiting."
exit 1
fi
#
echo "Downloading model..."
python manage.py shell -c "from core.livenews.model_utils import download_model_from_blob; download_model_from_blob()"
if [ $? -ne 0 ]; then
echo "Model download failed. Exiting."
exit 1
fi
echo "Running migrations..."
python manage.py makemigrations && python manage.py migrate
if [ $? -ne 0 ]; then
echo "Database migration failed. Exiting."
exit 1
fi
echo "Collecting static files..."
python manage.py collectstatic --noinput
if [ $? -ne 0 ]; then
echo "Collecting static files failed. Exiting."
exit 1
fi
echo "Starting Gunicorn..."
gunicorn --bind=0.0.0.0:8000 --workers=3 --log-level debug FakeNewsDetectorAPI.wsgi:application
if [ $? -ne 0 ]; then
echo "Failed to start Gunicorn. Exiting."
exit 1
fi
Я пробовал перезапускать службу приложений и проверять конфликты в настройках, но ошибки сохраняются. Может ли загрузка модели быть причиной таймаута? Есть ли что-то специфическое для GitHub Actions или Azure, что я упускаю?