Я пытаюсь отлаживать приложение Flask/Python, работающее в гибкой среде Google Appengine.
Однако я вижу предупреждающее сообщение в интерфейсе отладки Stackdriver в консоли Google и не могу установить точки останова.
Предупреждение гласит:
Stackdriver Debugger не настроен для среды выполнения python в GAE Flex
Любые мысли о том, что я делаю неправильно?
I've:
- Включен API отладчика Stackdriver (как указано здесь)
- Импортирован и инициализирован отладчик (следуя инструкциям здесь)
- Включенный google-python-cloud-debugger в файле requirements.txt.
main.py (точка входа приложения, определенная в app.yaml)
from werkzeug.serving import run_simple
from werkzeug.wsgi import DispatcherMiddleware
from wsgi import api, frontend, manage
try:
import googleclouddebugger
googleclouddebugger.AttachDebugger()
except ImportError:
pass
app = DispatcherMiddleware(frontend.create_app(), {
'/api': api.create_app(),
'/manage': manage.create_app()
})
if __name__ == '__main__':
run_simple('0.0.0.0', 5000, app, use_reloader=True, use_debugger=True)
app.yaml
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT main:app
runtime_config:
python_version: 2
manual_scaling:
instances: 1
resources:
cpu: 1
memory_gb: 0.5
disk_size_gb: 10
env_variables:
SQLALCHEMY_DATABASE_URI: "postgresql+psycopg2://myusername:mypassword!@/instancename?host=/cloudsql/instancename"
beta_settings:
cloud_sql_instances: "instancename"
Обновление 1
После комментария и обнаружения ошибки импорта urllib я задался вопросом, вызывает ли проблема wsgi характер моего приложения. Я вернулся к документации, увидел примечание о том, что платформа Django делает что-то подобное, и изменил следующее:
googleclouddebugger.AttachDebugger()
to
googleclouddebugger.enable()
Это избавило от ошибки импорта urllib, но не решило общую проблему.