Node.js 用 Stackdriver Debugger の設定

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

始める前に

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

App Engine

  1. npm を使用してパッケージをインストールします。

    npm install --save @google-cloud/debug-agent
    
  2. アプリのメイン スクリプトまたはエントリ ポイントの先頭でエージェントを有効にします(@google/cloud-trace を使用している場合は、その後)。

    require('@google-cloud/debug-agent').start();
    

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

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

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. 以下の行を Dockerfile に追加して、Debugger エージェントを追加します。

    RUN  npm install --save @google-cloud/debug-agent
    
  3. アプリのメイン スクリプトまたはエントリ ポイントの先頭でエージェントを有効にします(@google/cloud-trace を使用している場合は、その後)。

    require('@google-cloud/debug-agent').start({
      serviceContext: {
        service: 'SERVICE',
        version: 'VERSION'
      }
    });
    

    ここで

    • SERVICE はアプリの名前です。例: MyAppBackendFrontend
    • VERSION はバージョンです。例: v1.0build_147v20170714

    これらの値を環境変数から設定することをおすすめします。この方法では、デプロイごとにソースコードを変更する必要はありません。

これで、コンテナ化されたアプリをデプロイするときにデバッガを使用できるようになりました。

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

Console

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

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

    ノードプールのオプション

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

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

    • [各 API にアクセス権を設定]。次に、Cloud Debugger の [有効] を選択します。

Compute Engine

  1. Compute Engine インスタンスが [すべての Cloud API に完全アクセス権を許可] アクセス スコープ オプションで作成されていることを確認するか、次のいずれかのアクセス スコープを使用します。

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  2. npm を使用してパッケージをインストールします。

    npm install --save @google-cloud/debug-agent
    
  3. アプリのメイン スクリプトまたはエントリ ポイントの先頭でエージェントを有効にします(@google/cloud-trace を使用している場合は、その後)。

    require('@google-cloud/debug-agent').start({
      serviceContext: {
        service: 'SERVICE',
        version: 'VERSION'
      }
    });
    

    ここで

    • SERVICE はアプリの名前です。例: MyAppBackendFrontend
    • VERSION はバージョンです。例: v1.0build_147v20170714

    これらの値を環境変数から設定することをおすすめします。この方法では、デプロイごとにソースコードを変更する必要はありません。

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

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

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

  1. npm を使用してパッケージをインストールします。

    npm install --save @google-cloud/debug-agent
    
  2. アプリのメイン スクリプトまたはエントリ ポイントの先頭でエージェントを有効にします(@google/cloud-trace を使用している場合は、その後)。

    require('@google-cloud/debug-agent').start();
    

    これで、アプリをデプロイするときにデバッガを使用できるようになりました。

ローカルと他の場所

  1. npm を使用してパッケージをインストールします。

    npm install --save @google-cloud/debug-agent
    
  2. サービス アカウントの認証情報をダウンロードします。

    Google Cloud でホストされていないマシンで Node.js 用 Stackdriver Debugger エージェントを使用するには、エージェントが Google Cloud サービス アカウントの認証情報を使用して Stackdriver Debugger サービスの認証を行う必要があります。

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

  3. ダウンロードした認証情報でエージェントを構成し、有効にします。

    require('@google-cloud/debug-agent').start({
      projectId: 'your-project-id',
      keyFilename: '/path/to/key.json',
      serviceContext: {
        service: 'SERVICE',
        version: 'VERSION'
      }
    });
    

    ここで

    • SERVICE はアプリの名前です。例: MyAppBackendFrontend
    • VERSION はバージョンです。例: v1.0build_147v20170714

    これらの値を環境変数から設定することをおすすめします。この方法では、デプロイごとにソースコードを変更する必要はありません。

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

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