Estoy tratando de implementar un proyecto Django en Google Cloud App Engine.
Implementé mi aplicación con el comando gcloud app deploy .
Mientras trato de cargar la página en mi navegador, hay una carga infinita hasta que la página finalmente devuelve un "Error del servidor 500".
Decidí entonces ver si hay algo raro en los registros al ejecutar gcloud app logs tail pero no genera ningún tipo de error, esto es lo que obtengo.
2021-11-26 17:38:31 default[version_code] [2021-11-26 17:38:31 +0000] [11] [INFO] Starting gunicorn 20.1.0 2021-11-26 17:38:31 default[version_code] [2021-11-26 17:38:31 +0000] [11] [INFO] Listening at: http://0.0.0.0:8000 (11) 2021-11-26 17:38:31 default[version_code] [2021-11-26 17:38:31 +0000] [11] [INFO] Using worker: sync 2021-11-26 17:38:31 default[version_code] [2021-11-26 17:38:31 +0000] [16] [INFO] Booting worker with pid: 16TAMBIÉN EN LA PAGINA DE REPORTE DE ERRORES DE GOOGLE CLOUD NO APARECE NADA
Esta es mi settings.py de Python Django.py:
if os.getenv('GAE_APPLICATION', None): DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'cloudsql/<my-google-cloudsql-connection-string>', 'NAME': 'database_name', 'USER': 'username', 'PASSWORD': 'password', 'PORT': '5432', } } else: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': BASE_DIR / 'db.sqlite3', } } Este es mi archivo app.yaml :
runtime: python39 env: standard app_engine_apis: true handlers: - url: /static static_dir: static/ - url: /.* script: auto entrypoint: gunicorn -b :8000 NG.wsgi También recibo esta advertencia durante la implementación: Updating service [default]...|WARNING: There is a dependency on App Engine APIs, but they are not enabled in your app.yaml. Set the app_engine_apis property. .
En mi app.yaml configuré la propiedad app_engine_apis , entonces, ¿por qué genera la Advertencia?
Acabo de comprobar si el problema lo genera la conexión de la base de datos, pero en realidad no lo es. Si no hay ningún error, la página ni siquiera carga, lo que creo es que me equivoqué en alguna configuración, pero solo seguí los pasos en el sitio web oficial de GoogleCloud.
Buscando problemas similares con el "error del servidor 500", encontré algo que puede ser útil para usted.
Aparentemente, este error se recibe debido a errores de la aplicación como se sugiere aquí , el usuario también habla de echar un vistazo a la configuración de implementación ya que los hosts locales y de producción son diferentes y establecen DEBUG = FALSE . Aquí hay una guía sobre cómo configurar su aplicación para producción .
Otra pregunta apunta a buscar el panel Informe de errores en el panel de control de Google Cloud Platform para obtener un seguimiento del problema en su código, si está allí. Esto puede ser útil para resolver un error 500.
En la misma pregunta, un usuario responde que este problema es difícil de resolver de manera directa y que debe investigar por varios motivos, como podemos ver en esta discusión , donde le pidieron al OP sus registros para brindar más ayuda. Luego, después de verificarlos, el OP obtuvo su propia solución.
Sugeriría mirar la configuración para verificar que todo esté bien para la implementación de producción, intente buscar más información en el panel Informe de errores y si tiene los registros y aún no puede solucionar el problema, publique otro o actualice la pregunta con esta informacion.
Resolví el error simplemente eliminando esta línea en el archivo app.yaml .
Ese es el punto de entrada de la línea entrypoint: gunicorn -b :8000 NG.wsgi
Supongo que no tiene que especificar el punto de entrada al implementar una aplicación Django en App Engine.