Go 用 Stackdriver Debugger の設定

は、

App Engine スタンダード環境

現在、Go 用 Stackdriver Debugger エージェントは App Engine スタンダード環境でサポートされていません。

App Engine フレキシブル環境

現在、Go 用 Stackdriver Debugger エージェントは App Engine フレキシブル環境でサポートされていません。

GKE

  1. クラスタが次のいずれかのアクセス スコープで作成されていることを確認します。

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger

    例:

    gcloud container clusters create EXAMPLE-CLUSTER-NAME \
        --scopes https://www.googleapis.com/auth/cloud-platform
    
  2. Compute Engine 用の手順に従います。

Compute Engine

  1. Compute Engine VM インスタンスで 64 ビットの Debian Linux イメージが実行されていることを確認します。

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

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. 現在、Go コンパイラの最適化を使用すると、正確なデバッグを行うことができません。このため、アプリケーションをデフォルトの Go コンパイラの最適化でビルドすると、アプリケーションに関する誤った情報が Stackdriver Debugger に表示されます。

    正しいデバッグ情報を取得するには、デフォルトの最適化を行わずにアプリケーションをビルドします。最適化を無効にするコマンドの例を次に示します(go1.10 以降のバージョンを使用している場合)。

    go build -gcflags=all='-N -l'
    

    この gcflags 値に -N を追加すると最適化が無効になり、-l を追加するとインラインが無効になります。

  4. デバッガ エージェントをダウンロードします。

    Stackdriver Debugger エージェントは、起動時にアプリケーションに対して有効化される軽量なバイナリです。エージェントはアプリケーションとともに起動し、アプリケーションの実行中は Stackdriver Debugger バックエンドと通信します。

    Compute Engine アプリケーションをビルドし、デプロイしたら、ビルド済みのエージェントをダウンロードし、実行可能にします。

    wget -O go-cloud-debug https://storage.googleapis.com/cloud-debugger/compute-go/go-cloud-debug
    chmod 0755 go-cloud-debug
    
  5. エージェントとプログラムを起動します。

    ./go-cloud-debug -sourcecontext=[PATH_TO_FILE] -appmodule=[APP_NAME] \
                     -appversion=[APP_VERSION] -- [PATH_TO_BINARY] [ARG1] [ARG2]
    

    ここで:

    • PATH_TO_FILE は、ソース コンテキスト構成を含む JSON 形式ファイルへの相対パスを指定します。このファイルを生成する方法については、ソースコードを自動的に選択するをご覧ください。

    • APP_NAME は、アプリケーションまたはサービスの名前です。これは、バージョンとともに、GCP Console でアプリケーションを識別するために使用します。

    • APP_VERSION は、アプリケーション提供のバージョン マーカーです。たとえば、ビルド番号を使用できます。GCP Console では、実行中のバージョンが module - version として表示されます。例: main - 1.0

    • PATH_TO_BINARY は、アプリケーションのバイナリへの相対パスを指定します。

    • ARG1ARG2 は、アプリケーションで必要となる追加の引数用のプレースホルダです。

    例:

    ./go-cloud-debug -appmodule=main -appversion=1.0 -- bin/my-app my-arg
    

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

GCP Console の [デバッグ] ページにデプロイ済みアプリのソースコードを自動的に表示する方法については、ソースコードを自動的に選択するをご覧ください。

ローカルと他の場所

Go 用 Stackdriver Debugger エージェントは、Kubernetes Engine 環境と Compute Engine 環境にのみ対応しています。ローカルまたは他の環境には対応していません。

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

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

Stackdriver Debugger のドキュメント