クイックスタート

このクイックスタートでは、Stackdriver Debugger を使用して、App Engine スタンダード環境で実行されている簡単な Python アプリの状態を調べる方法を説明します。デバッグ スナップショットを使用してコールスタックとローカル変数を取得する方法や、デバッグ ログポイントを使用して実行中のアプリにロギングを挿入する方法についても説明します。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP プロジェクトを選択または作成します。

    [リソースの管理] ページに移動

  3. プロジェクトに対して課金が有効になっていることを確認します。

    課金を有効にする方法について

  4. 次のソフトウェアがローカル システムにインストールされていることを確認します。

App Engine にデプロイする

まず、Python 2.7 アプリを App Engine スタンダード環境にデプロイします。

  1. ローカル リポジトリにプロジェクトのクローンを作成します。

    git clone https://github.com/GoogleCloudPlatform/python-docs-samples
    
  2. サンプルコードのあるディレクトリに移動します。

    cd python-docs-samples/appengine/standard/hello_world
    
  3. プロジェクト ID で Google Cloud SDK を初期化します。

    gcloud config set project [your-project-id]
    
  4. アプリケーションをデプロイします。

    gcloud app deploy --version=v1
    
  5. リクエストを送信してアプリを試します。

    gcloud app browse
    

レスポンスに Hello World というメッセージが含まれているはずです。上記の手順で問題が発生した場合は、Python App Engine スタンダード環境のクイックスタートをご覧ください。

デプロイされたソースを表示する

Python アプリをデプロイすると、デプロイされたソースを Google Cloud Platform Console の [デバッグ] ページで確認できます。

  1. Google Cloud Platform Console の [デバッグ] ページに移動します。

  2. 正しいプロジェクトが選択されていることを確認します。

  3. 上部のメニューで default - v1 (100%) が選択されていることを確認します。これは、デバッグするアプリのサービスとバージョンです。

  4. 左側のメニューで Deployed Files が選択されていることを確認します。このパネルには、直前にデプロイした Python アプリのソースコードが表示されます。

  5. デプロイされたファイルのリストから main.py を選択して、内容を確認します。

これで、デバッグ スナップショットを取得し、デバッグ ログポイントを挿入する準備ができました。

デバッグ スナップショットを取得する

スナップショットは、ソースコード内の特定の行位置におけるローカル変数とコールスタックを取得します。右側のパネルで [スナップショット] タブを選択して、デバッグ スナップショットを取得します。

  1. MainPage クラスの get 関数の最初の行の行番号をクリックします。スナップショットの場所が設定されていることを示す青い矢印が表示されます。右側の結果パネルに「スナップショットがヒットするまで待機しています」と表示されます。

    スナップショットの場所を行番号 20 に設定

  2. ページ下部の [スナップショットの履歴] パネルを選択して、スナップショットが正常に設定されていることを確認します。

    スナップショットが設定されました

  3. アプリにリクエストを送信して、スナップショットをトリガーします。

    gcloud app browse
    
  4. 結果パネルには、コード内のその時点のスコープにおけるコールスタックとローカル変数、その時点での値が表示されます。

    ローカル変数が表示された結果パネル

  5. 次の式を追加して、別のスナップショットを設定します。

    self.request.environ['HTTP_USER_AGENT']
    
  6. 新しいリクエストを送信して、新しいスナップショットをトリガーします。

    gcloud app browse
    
  7. 結果パネルに式の結果も表示されます。この場合、値は次のとおりです。

    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6)
    AppleWebKit/537.36 (KHTML, like Gecko)
    Chrome/62.0.3202.94 Safari/537.36
    

デバッグ ログポイントを挿入する

デバッグ ログポイントを使用すると、アプリを再起動せずに、実行中のアプリにロギングを挿入できます。右側のパネルで [ログポイント] タブを選択して、デバッグ ログポイントを挿入します。

  1. MainPage クラスの get 関数の最初の行の行番号をクリックします。

  2. インライン テキスト ボックスが表示されます。ログポイントを挿入するには、次のように入力して Enter キーを押します。

    if (True) logpoint("Browser = {self.request.environ['HTTP_USER_AGENT']}")
    

    挿入されたログポイントが表示されたデバッグパネル

  3. ページの下部にある [ログポイントの履歴] パネルを選択して、ロギングが正常に挿入されたことを確認します。

    ログポイントが設定されました

  4. アプリにリクエストを送信して、ログポイントをトリガーします。

    gcloud app browse
    
  5. ページの下部にある [ログ] パネルを選択して、ログポイントで出力されたログを表示します。

    ログポイントが行番号 20 に挿入されたログ

クリーンアップ

このクイックスタートで使用したリソースについて GCP アカウントに課金されないようにする手順は次のとおりです。

  1. GCP Console のプロジェクト ページに移動します。

  2. プロジェクトの横に表示されているごみ箱アイコン()をクリックします。

  3. プロジェクト名を入力して、シャットダウンを確認します。

次のステップ

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

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

Stackdriver Debugger のドキュメント