.NET Core 用 Stackdriver Debugger の設定

は、

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

始める前に

  • アプリケーションをローカルで実行中に Stackdriver Debugger を使用するには:

    • GOOGLE_APPLICATION_CREDENTIALS 環境変数に適切な認証情報を設定します。
    • STACKDRIVER_DEBUGGER_PROJECT 環境変数を追加し、Stackdriver Debugger の実行対象となるプロジェクトを設定します。
  • .NET Core アプリケーションをビルドする際は、PDB ファイルを追加し、コードと一緒にデプロイしてください。次に例を示します。

    ...
    <PropertyGroup>
      <TargetFramework>netcoreapp2.0</TargetFramework>
      <DebugType>portable</DebugType>
    </PropertyGroup>
    ...
    
  • Release ビルドをデバッグすると、変数の名前が異なっていたり、変数が見つからなかったりすることがあります。

App Engine スタンダード環境

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

App Engine フレキシブル環境

  1. app.yaml の runtimecustom に変更します。

    runtime: custom
    env: flex
    
  2. カスタム Dockerfile を使用します。

    FROM gcr.io/dotnet-debugger/aspnetcore:2.0
    COPY . /app
    WORKDIR /app
    # If you don't have source context delete the below line.
    # See 'Selecting Source Code Automatically' below for more information.
    COPY ./source-context.json /usr/share/dotnet-debugger/agent/
    ENTRYPOINT ["/usr/share/dotnet-debugger/start-debugger.sh", "dotnet", "APPLICATION.dll"]
    

    ここで

    • APPLICATION は、実行してデバッグするアプリケーションです。

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

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

Google Kubernetes Engine

  1. 次のいずれかのアクセス スコープでクラスタを作成します。
    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger

    gcloud を使ってクラスタを作成するには、次の手順に従います。

    1. (省略可)gcloud を最新バージョンに更新します。
      gcloud components update
    2. デフォルトのプロジェクト ID を設定します。
      gcloud config set project [PROJECT_ID]
    3. ゾーンクラスタを使用する場合は、デフォルトのコンピューティング ゾーンを設定します。
      gcloud config set compute/zone [COMPUTE_ZONE]
    4. リージョン クラスタを使用する場合は、デフォルトのコンピューティング リージョンを設定します。
      gcloud config set compute/region [COMPUTE_REGION]
    5. create コマンドを発行します。
      gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform

    クラスタの作成の詳細については、クラスタの作成をご覧ください。

  2. カスタム Dockerfile を使用します。
    FROM gcr.io/dotnet-debugger/aspnetcore:2.0
    COPY . /app
    WORKDIR /app
    # If you don't have source context delete the below line.
    # See running locally below for more information.
    COPY ./source-context.json /usr/share/dotnet-debugger/agent/
    ENV STACKDRIVER_DEBUGGER_MODULE=MODULE
    ENV STACKDRIVER_DEBUGGER_VERSION=VERSION
    # If running locally uncomment and set the following:
    # ENV STACKDRIVER_DEBUGGER_PROJECT=PROJECT_ID
    # ENV GOOGLE_APPLICATION_CREDENTIALS=CREDENTIALS_FILE
    ENTRYPOINT ["/usr/share/dotnet-debugger/start-debugger.sh", "dotnet", "APPLICATION.dll"]
    

    ここで

    • MODULE はアプリケーションの名前です。GCP Console ではこの名前とバージョンでアプリケーションを識別します。例: MyAppBackendFrontend
    • VERSION はアプリケーションのバージョン(例: ビルド ID)です。GCP Console では、実行中のアプリケーションが MODULE - VERSION として表示されます。例: v1.0build_147v20160520
    • PROJECT_ID は GCP Console のプロジェクト ID です。
    • CREDENTIALS_FILE は、サービス アカウントまたは認証情報の JSON ファイルへのパスです。
    • APPLICATION はアプリケーションのエントリ ポイントです。

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

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

Compute Engine

.NET Core 用 Stackdriver Debugger エージェントは、Compute Engine 環境ではサポートされていません。

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

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

Stackdriver Debugger のドキュメント