2

Google Appengine フレキシブル環境で実行されている Flask/Python アプリをデバッグしようとしています。

しかし、Google コンソールの Stackdriver Debug インターフェースに警告メッセージが表示され、ブレークポイントを設定できません。

警告は次のとおりです。

Stackdriver Debugger が GAE Flex の Python ランタイム用に設定されていません

警告のスクリーンショット

私が間違っていることについて何か考えはありますか?

私は:

  • Stackdriver Debugger API を有効にしました(こちらに記載)
  • デバッガーをインポートして初期化しました (こちらの手順に従います)
  • requirements.txt に google-python-cloud-debugger を含めました

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()

googleclouddebugger.enable()

これにより、urllib のインポート エラーは解消されましたが、全体的な問題は解決していません。

4

1 に答える 1