Развертывание 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, что я упускаю?

Вернуться на верх