Python 用 Stackdriver Debugger の設定

このページでは、Stackdriver Debugger を使用できるように、環境と Python アプリケーションを構成する方法について説明します。環境によっては、Stackdriver Debugger エージェントがデータを送信できるようにするためにアクセス スコープを明示的に指定する必要があります。可能な限り広いアクセス スコープを設定してから、Cloud Identity and Access Management を使用してアクセスを制限することをおすすめします。このおすすめの方法に沿って、オプション cloud-platform を使用して、すべての Cloud API がアクセス スコープになるように設定します。

始める前に

Debugger を使用する前に、Debugger API が有効になっていることを確認します。
Debugger API を有効にする

App Engine スタンダード環境

Python 3.7

Python 3.7 を使用している場合、次の手順で Debugger エージェントを手動で有効にする必要があります。

  1. app.yaml ファイルに次の行が含まれていることを確認します。

    runtime: python37
    
  2. 初期化コードの main 関数や manage.py(Django ウェブ フレームワークを使用している場合)などに、なるべく早い段階で次の行を追加します(バージョン 1.* のみ)。

    try:
      import googleclouddebugger
      googleclouddebugger.enable()
    except ImportError:
      pass
    
  3. requirements.txtgoogle-python-cloud-debugger を追加します。

  4. デプロイされたアプリに一致するソースコードを Cloud Console の [デバッグ] ページに自動的に表示するには、ソースコードを自動的に選択するをご覧ください。

これで、アプリで Debugger を使用できるようになりました。

App Engine フレキシブル環境

App Engine Python ランタイムまたはカスタム ランタイムで Debugger を使用できます。

  1. App Engine フレキシブル VM インスタンスが実行されていることを確認します。

    • 64 ビット Debian Linux イメージ
    • Python 3
  2. app.yaml ファイルに次の行が含まれていることを確認します。

    runtime: python
    env: flex
    

    カスタム ランタイムを使用している場合は、runtime: custom を使用します。

  3. requirements.txtgoogle-python-cloud-debugger を追加します。

  4. 初期化コードの main 関数や manage.py(Django ウェブ フレームワークを使用している場合)などに、なるべく早い段階で次の行を追加します(バージョン 1.* のみ)。

    try:
      import googleclouddebugger
      googleclouddebugger.enable()
    except ImportError:
      pass
    
  5. デプロイされたアプリに一致するソースコードを Cloud Console の [デバッグ] ページに自動的に表示するには、ソースコードを自動的に選択するをご覧ください。

これで、アプリで Debugger を使用できるようになりました。

Google Kubernetes Engine

gcloud

gcloud を使用して Debugger を有効にする方法は次のとおりです。

  1. 次のいずれかのアクセス スコープでクラスタを作成します。

    • https://www.googleapis.com/auth/cloud-platform は、すべての Google Cloud API へのアクセス権をクラスタに付与します。

    • https://www.googleapis.com/auth/cloud_debugger は、Debugger API のみへのアクセス権をクラスタに付与します。このアクセス スコープを使用して、クラスタのセキュリティを強化します。

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Debugger パッケージをアプリに追加します。

    requirements.txt ファイルを使用している場合は、次の行を追加します。

    google-python-cloud-debugger
    

    Dockerfile を使用している場合は、次の行を追加します。

    RUN pip install google-python-cloud-debugger
    
  3. 初期化コードの main 関数や manage.py(Django ウェブ フレームワークを使用している場合)などに、なるべく早い段階で次の行を追加します。

    try:
      import googleclouddebugger
      googleclouddebugger.enable()
    
    except ImportError:
      pass
    

[デバッグ] ページで、ソースコードのロケーションを選択します。デプロイされたアプリに一致するソースコードを Cloud Console の [デバッグ] ページに自動的に表示するには、ソースコードを自動的に選択するをご覧ください。

これで Debugger が使用できるようになりました。

Console

コンソールを使用して Debugger を有効にする方法は次のとおりです。

  1. クラスタタイプを選択したら、[ノードプール] ペインで [その他の設定項目] をクリックします。

    [その他の設定項目] ボタンの上の赤い長方形を示すノードプールのフィールド。

  2. [セキュリティ] ペインから次のいずれかを選択します。

    • すべての Cloud API に完全アクセス権を許可

    • API ごとにアクセス権を許可し、Cloud Debugger の [有効] を選択します。

Compute Engine

  1. Compute Engine VM インスタンスが実行されていることを確認します。

    • 64 ビット Debian Linux イメージ
    • Python 3
  2. Compute Engine VM インスタンスが [すべての Cloud API に完全アクセス権を許可] アクセス スコープ オプションで作成されていることを確認するか、次のいずれかのアクセス スコープを使用します。

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. Debugger エージェントをダウンロードします。

    Python 用 Debugger のインストールは、次のように [pip][pip] を使用してインストールする方法が最も簡単です。

    pip install google-python-cloud-debugger
    
  4. 初期化コードの main 関数や manage.py(Django ウェブ フレームワークを使用している場合)などに、なるべく早い段階で次の行を追加します。

    try:
      import googleclouddebugger
      googleclouddebugger.enable(
        module='[MODULE]',
        version='[VERSION]'
      )
    except ImportError:
      pass
    

    コードを変更できない場合は、Stackdriver Debugger エージェントをモジュールとして実行します。

    python -m googleclouddebugger \
          --module=[MODULE] \
          --version=[VERSION] \
          -- \
          myapp.py
    

    どちらの方法も次が該当します。

    • [MODULE] はアプリの名前です。
      これはバージョンとともに、Cloud Console の [デバッグ] ページでデバッグ ターゲットを識別するために使用されます。
      例: MyAppBackendFrontend
    • [VERSION] はアプリのバージョンです(ビルド ID など)。
      Cloud Console の [デバッグ] ページには、実行中のバージョンが [MODULE] - [VERSION] のように表示されます。
      値の例: v1.0build_147v20170714

これで、アプリで Debugger を使用できるようになりました。

デプロイされたアプリに一致するソースコードを Cloud Console の [デバッグ] ページに自動的に表示するには、ソースコードを自動的に選択するをご覧ください。

Cloud Run および Cloud Run for Anthos on Google Cloud

  1. Python パッケージ。

    requirements.txt ファイルを使用している場合は、次の行を追加します。

    google-python-cloud-debugger
    

    そうでない場合は、次の行を Dockerfile に追加します。

    RUN pip install google-python-cloud-debugger
    
  2. 初期化コードの main 関数や manage.py(Django ウェブ フレームワークを使用している場合)などに、なるべく早い段階で次の行を追加します。

    try:
      import googleclouddebugger
      googleclouddebugger.enable()
    
    except ImportError:
      pass
    

[デバッグ] ページで、ソースコードのロケーションを選択します。デプロイされたアプリに一致するソースコードを Cloud Console の [デバッグ] ページに自動的に表示するには、ソースコードを自動的に選択するをご覧ください。

これで Debugger が使用できるようになりました。

ローカルと他の場所

  1. ワーク ステーションが実行されていることを確認します。

    • 64 ビット Debian Linux イメージ
    • Python 3
  2. Debugger エージェントをダウンロードします。

    Python 用 Debugger のインストールは、次のように [pip][pip]{: .external} を使用してインストールする方法が最も簡単です。

    pip install google-python-cloud-debugger
    
  3. サービス アカウントの認証情報をダウンロードします。
    Google Cloud でホストされていないマシンで Java 用 Stackdriver Debugger エージェントを使用するには、エージェントが Google Cloud サービス アカウントの認証情報を使用して Stackdriver Debugger サービスの認証を行う必要があります。

    Cloud Console の [サービス アカウント] ページを使用して、既存のサービス アカウントの認証情報ファイルを作成するか、新しいサービス アカウントを作成します。サービス アカウントには少なくとも、Stackdriver Debugger Agent の役割が必要です。

    サービス アカウントの JSON ファイルを Python 用 Stackdriver Debugger エージェントとともに配置します。

  4. 初期化コードの main 関数や manage.py(Django ウェブ フレームワークを使用している場合)などに、なるべく早い段階で次の行を追加します。

    try:
      import googleclouddebugger
      googleclouddebugger.enable(
          module='[MODULE]',
          version='[VERSION]'
          service_account_json_file='/opt/cdbg/gcp-svc.json')
    except ImportError:
      pass
    

    コードを変更できない場合は、Stackdriver Debugger エージェントをモジュールとして実行します。

    python \
        -m googleclouddebugger \
        --module=[MODULE] \
        --version=[VERSION] \
        --service_account_json_file=/opt/cdbg/gcp-svc.json \
        -- \
        myapp.py
    

    どちらの方法も次が該当します。

    • [MODULE] はアプリの名前です。
      これはバージョンとともに、Cloud Console の [デバッグ] ページでデバッグ ターゲットを識別するために使用されます。
      例: MyAppBackendFrontend
    • [VERSION] はアプリのバージョンです(ビルド ID など)。
      Cloud Console の [デバッグ] ページには、実行中のバージョンが [MODULE] - [VERSION] のように表示されます。
      値の例: v1.0build_147v20170714
    • service_account_json_file を指定する代わりに、GOOGLE_APPLICATION_CREDENTIALS 環境変数を使用できます。

これで、アプリで Debugger を使用できるようになりました。

Cloud Console の [デバッグ] ページでは、ローカル開発向けに、ローカルにあるソースファイルをアップロードせずに表示できます。ソースコードを手動で選択するをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...