インスタンスのデバッグ

VM に対してデバッグモードを有効にできます。デバッグモードでは、オーナー、編集者、App Engine 管理者の役割を持つプロジェクト メンバーは、VM に対するルートアクセスが可能です。デバッグモードがオンの場合、オペレーティング システムの更新とセキュリティ パッチの自動ロールアウトは無効になります。とはいえ VM はまだロードバランサ プールの一部であり、引き続き外部リクエストを受信します。

デバッグを有効または無効にするときは必ず、Google Cloud Platform Console に「VM インスタンス デバッグ有効化/無効化」イベントが表示され、イベントは VM の /var/log/syslog.log ファイルにログとして記録されます。

デバッグモードの有効化と無効化

インスタンスのデバッグモードの有効と無効を切り替えるには、gcloud を使用します。

gcloud でデバッグモードを有効または無効にするには:

  1. 次に示すように、gcloud app instances enable-debug コマンドを使用して特定のインスタンスとバージョンの VM をデバッグします。
    gcloud app --project [PROJECT-ID] instances enable-debug
    PROJECT-ID を自分のプロジェクト ID に置き換え、画面の指示に沿ってインスタンスのバージョンを指定しデバッグします。
  2. デバッグが終了したら、次のようにデバッグモードを無効にします。
    gcloud app --project [PROJECT-ID] instances disable-debug
    画面の指示に沿ってインスタンスのバージョンを指定します。

デバッグモードを無効にすると、VM は停止し、新しいクリーンな VM で実行される、アプリの新しいインスタンスが開始されます。

インスタンスに接続する

Console

コンソールでインスタンスに接続するには:

  1. GCP Console で、プロジェクトの [インスタンス] ページにアクセスします。

    インスタンス ページに移動

  2. アクセスするインスタンスを含む行の右端にある [SSH] をクリックします。

    これにより、インスタンスはデバッグモードに入り、ターミナル ウィンドウでインスタンスの SSH セッションが開きます。

    プルダウン リストから別のオプションを選択して SSH セッションを開始することもできます。

  3. 現在開いているインスタンス ホストでは、いくつかのコンテナが実行されています。これらの詳細については、次の一般的なコンテナを理解するをご覧ください。
  4. インスタンス内で実行されているコンテナをターミナル ウィンドウでリストします。
    sudo docker ps
  5. sudo docker ps コマンドの出力には、各コンテナが行別でリストされます。プロジェクト ID を含む行を探してください。これがコードを実行しているコンテナです。このコンテナの名前をメモしておきます。
  6. 次のコマンドで、アプリケーションのログ情報をリストすることもできます。
    sudo docker logs [CONTAINER-NAME]
  7. コードを実行しているコンテナでシェルを起動します。
    sudo docker exec -it [CONTAINER-NAME] /bin/bash
  8. デバッグが終了したら、「exit」と入力してコンテナを終了し、再度「exit」と入力して SSH セッションを終了します。
  9. インスタンスのデバッグを無効にし、通常の動作を再開できるようにします。

gcloud

gcloud を使用してインスタンスに接続するには:

  1. デバッグモードが有効になっているインスタンスで、次のコマンドを実行します。
    gcloud beta app instances --project [PROJECT-ID] ssh [INSTANCE-NAME] --service [SERVICE] --version [VERSION]
  2. 現在開いているインスタンス ホストでは、いくつかのコンテナが実行されています。これらの詳細については、次の一般的なコンテナを理解するをご覧ください。
  3. インスタンス内で実行されているコンテナをターミナル ウィンドウでリストします。
    sudo docker ps
  4. sudo docker ps コマンドの出力には、各コンテナが行別でリストされます。プロジェクト ID を含む行を探してください。これがコードを実行しているコンテナです。このコンテナの名前をメモしておきます。
  5. 次のコマンドで、アプリケーションのログ情報をリストすることもできます。
    sudo docker logs [CONTAINER-NAME]
  6. コードを実行しているコンテナでシェルを起動します。
    docker exec -it [CONTAINER-NAME] /bin/bash
  7. デバッグが終了したら、「exit」と入力してコンテナを終了し、再度「exit」と入力して SSH セッションを終了します。
  8. インスタンスのデバッグを無効にし、通常の動作を再開できるようにします。

一般的なコンテナを理解する

アプリケーション コードを実行しているコンテナに加えて、インスタンスには次のコンテナが含まれていることがあります。

コンテナとソースコード オープンソース組織 説明
fluentd_logger fluentd.org/ ログ エージェント
memcache_proxy memcache proxy open source アプリケーションに Memcache 機能を提供する
nginx_proxy nginx.org アプリケーションへのリクエストをプロキシする
このページは役立ちましたか?評価をお願いいたします。

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

PHP の App Engine フレキシブル環境に関するドキュメント