Cloud Debugger는 지원이 중단되었으며 2023년 5월 31일에 종료됩니다. 자세한 내용은 지원 중단 페이지와 출시 노트를 참조하세요.

.NET Core용 Cloud Debugger 설정

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

개요

이 페이지에서는 Cloud Debugger를 사용하도록 환경과 .NET Core 애플리케이션을 구성하는 방법을 설명합니다. 일부 환경에서는 Cloud Debugger 에이전트가 데이터를 전송할 수 있도록 액세스 범위를 명시적으로 지정해야 합니다. 가능한 최대 액세스 범위를 설정한 다음 ID 및 액세스 관리를 사용해 액세스를 제한하는 방법을 권장합니다. 이 권장사항에 따라 액세스 범위가 cloud-platform 옵션이 있는 모든 Cloud API가 되도록 설정합니다.

언어 버전 및 컴퓨팅 환경

Cloud Debugger는 다음 컴퓨팅 환경에서 .NET Core 1.0~2.1에 사용할 수 있습니다.

App Engine 표준 환경 App Engine 가변형 환경 Compute Engine Google Kubernetes Engine Cloud Run Cloud Run for Anthos 다른 곳에서 실행 중인 VM 및 컨테이너 Cloud 함수

Cloud Debugger 설정

Cloud Debugger를 설정하려면 다음 작업을 완료해야 합니다.

  1. 프로젝트에 Cloud Debugger API가 사용 설정되어 있는지 확인합니다.

  2. 사용 중인 컴퓨팅 환경에 Debugger를 설치하고 구성합니다.

  3. 소스 코드를 선택합니다.

Cloud Debugger API 사용 설정 확인

Cloud Debugger를 사용하려면 Cloud Debugger API가 사용 설정되었는지 확인합니다. Cloud Debugger는 대부분의 프로젝트에서 기본으로 사용 설정됩니다.
Cloud Debugger API 사용 설정

App Engine 표준 환경

.NET Core용 Cloud 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은 실행하고 디버깅할 바이너리입니다.

이제 Google Cloud 운영 제품군을 애플리케이션에서 사용할 수 있습니다.

Google Cloud 콘솔의 디버그 페이지에 배포된 애플리케이션과 일치하는 소스 코드가 자동으로 표시되도록 하려면 소스 코드 자동으로 선택을 참조하세요.

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. Debugger 에이전트를 컨테이너식 앱에 추가하려면 Dockerfile에 다음 줄을 추가합니다.

    FROM gcr.io/dotnet-debugger/aspnetcore:2.0
    COPY . /app
    WORKDIR /app
    # If you don't have the source-context.json file, delete the `COPY` line below.
    # 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 not running on Google Cloud, uncomment and set the following:
    # ENV GOOGLE_APPLICATION_CREDENTIALS=CREDENTIALS_FILE
    ENTRYPOINT ["/usr/share/dotnet-debugger/start-debugger.sh", "dotnet", "APPLICATION.dll"]
    

    각 항목의 의미는 다음과 같습니다.

    • source-context.json은 소스 컨텍스트 구성이 포함된 JSON 형식의 파일입니다. 이 파일을 생성하는 방법은 소스 코드 자동으로 선택을 참조하세요.

    • MODULE은 애플리케이션 이름입니다. 이 이름을 버전과 함께 사용하여 Google Cloud 콘솔에서 애플리케이션을 식별합니다. 예를 들면 MyApp, Backend 또는 Frontend입니다.

    • VERSION은 애플리케이션 버전입니다(예: 빌드 ID). Google Cloud 콘솔은 실행 중인 애플리케이션을 MODULE - VERSION으로 표시합니다. 예를 들면 v1.0, build_147 또는 v20160520입니다.

    • CREDENTIALS_FILE은 서비스 계정 사용자 인증 정보 JSON 파일의 경로입니다.

    • APPLICATION은 Debugger가 연결된 상태로 실행되는 .NET Core 애플리케이션의 진입점입니다.

이제 Debugger를 컨테이너식 앱을 배포할 때 사용할 수 있습니다.

클러스터 생성에 대한 자세한 내용은 클러스터 만들기를 참조하세요.

콘솔

Google Cloud Console을 사용하여 Debugger를 사용 설정하려면 다음 단계를 완료하세요.

  1. 노드 풀 섹션에서 보안을 선택한 다음 각 API에 액세스 설정을 선택합니다.

  2. Debugger를 사용 설정합니다.

    클러스터에 Debugger API가 사용 설정되었습니다.

  3. 선택사항: 모든 Cloud API에 전체 액세스 허용을 선택합니다.

이제 Debugger를 애플리케이션에서 사용할 수 있습니다.

Google Cloud 콘솔의 디버그 페이지에 배포된 애플리케이션과 일치하는 소스 코드가 자동으로 표시되도록 하려면 소스 코드 자동으로 선택을 참조하세요.

Compute Engine

.NET Core용 Cloud Debugger 에이전트는 Compute Engine 환경에서 지원되지 않습니다.

로컬

애플리케이션을 로컬에서 실행하는 동안 Google Cloud 운영 제품군을 사용하려면 다음 안내를 따르세요.

  • 서비스 계정 json 전체 파일 경로를 가리키도록 GOOGLE_APPLICATION_CREDENTIALS 환경 변수를 설정합니다.
  • STACKDRIVER_DEBUGGER_MODULE 환경 변수를 디버깅할 구성요소의 이름으로 설정합니다. 이 모듈 이름은 디버깅이 허용된 모듈의 Google Cloud 콘솔 목록에 나타납니다.
  • STACKDRIVER_DEBUGGER_VERSION 환경 변수를 디버깅할 모듈의 논리 버전으로 설정합니다. 이렇게 하면 Google Cloud 콘솔에서 여러 논리 버전의 모듈을 디버깅할 수 있습니다.
  • STACKDRIVER_DEBUGGER_DEBUGGER 환경 변수가 Google Cloud 운영 제품군 바이너리의 위치를 가리키도록 설정합니다.
  • Linux에서 실행 중인 경우 Google Cloud 운영 제품군 디렉터리를 포함하도록 LD_LIBRARY_PATH 환경 변수를 설정합니다.

.NET Core 애플리케이션을 빌드할 때는 코드를 사용하여 PDB 파일을 포함하고 배포합니다. 각 PDB 파일에 다음 줄을 포함하세요.

    <PropertyGroup>
      <TargetFramework>netcoreapp2.1</TargetFramework>
      <DebugType>portable</DebugType>
    </PropertyGroup>

Release 빌드를 디버깅할 때 변수 이름이 잘못 지정되거나 누락될 수 있습니다.