다음을 통해 공유


Azure Spring Apps에서 원격으로 앱 디버그

참고 항목

기본, 표준엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.

표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.

이 문서는 기본/표준 ✅ 엔터프라이즈에✅ 적용됩니다.

이 기능은 Azure Spring Apps에서 애플리케이션의 원격 디버깅을 사용하도록 설정하는 방법을 설명합니다.

필수 조건

  • Azure Spring Apps 확장을 사용하는 Azure CLI. 다음 명령을 사용하여 이전 버전을 제거하고 최신 확장을 설치합니다. 이전에 spring-cloud 확장을 설치한 경우 구성 및 버전 불일치를 방지하기 위해 제거합니다.

    az extension remove --name spring
    az extension add --name spring
    az extension remove --name spring-cloud
    
  • Azure Spring Apps에 배포된 애플리케이션.

원격 디버깅 사용 또는 사용 안 함

보안상의 이유로 Azure Spring Apps는 기본적으로 원격 디버깅을 사용하지 않도록 설정합니다. 회사 정책에 따라 사용자가 직접 앱에 대해 원격 디버깅을 사용하도록 설정하거나 관리자가 이를 사용하도록 설정할 수 있습니다. Azure CLI, Azure Portal 또는 VS Code 확장을 사용하여 원격 디버깅을 사용하거나 사용하지 않도록 설정할 수 있습니다.

다음 단계에 따라 Azure Portal에서 애플리케이션에 대한 원격 디버깅을 사용하도록 설정합니다.

  1. 애플리케이션 페이지로 이동합니다.

  2. 왼쪽 탐색 창의 설정에서 원격 디버깅을 선택합니다.

  3. 원격 디버깅 페이지에서 원격 디버깅을 사용하도록 설정하고 디버깅 포트를 지정합니다.

    원격 디버깅 및 디버깅 포트 옵션이 선택된 원격 디버깅 페이지를 보여 주는 Azure Portal의 스크린샷.

Azure 역할 할당

앱 인스턴스를 원격으로 디버그하려면 Microsoft.AppPlatform/Spring/apps/deployments/remotedebugging/action 데이터 작업 권한을 포함하는 Azure Spring Apps Remote Debugging Role 역할을 부여해야 합니다.

Azure Portal 또는 Azure CLI를 사용하여 Azure 역할을 할당할 수 있습니다.

다음 단계를 통해 Azure Portal을 사용하여 Azure 역할을 할당합니다.

  1. Azure Portal을 엽니다.

  2. Azure Spring Apps 서비스 인스턴스를 엽니다.

  3. 왼쪽 탐색 창에서 액세스 제어(IAM)를 선택합니다.

  4. 액세스 제어(IAM) 페이지에서 추가를 선택한 다음, 역할 할당 추가를 선택합니다.

    역할 할당 추가 옵션이 강조 표시된 Azure Spring Apps 인스턴스에 대한 Azure Portal 액세스 제어(IAM) 페이지의 스크린샷.

  5. 역할 할당 추가 페이지의 이름 목록에서 Azure Spring Apps 원격 디버깅 역할을 검색하여 선택한 다음, 다음을 선택합니다.

    Azure Spring 앱 원격 디버깅 역할 이름이 강조 표시된 역할 할당 추가 페이지를 보여 주는 Azure Portal의 스크린샷.

  6. 멤버를 선택한 다음, 사용자 이름을 검색하여 선택합니다.

  7. 검토 + 할당을 선택합니다.

앱 인스턴스 원격 디버깅

Azure Toolkit for IntelliJ 또는 VS Code용 Azure Spring Apps 확장을 사용하여 원격으로 앱 인스턴스를 디버그할 수 있습니다.

이 섹션에서는 Azure Toolkit for IntelliJ를 사용하여 원격으로 앱 인스턴스를 디버그하는 방법을 설명합니다.

필수 조건

원격 디버깅 사용 또는 사용 안 함

다음 단계에 따라 원격 디버깅을 사용하거나 사용하지 않도록 설정할 수 있습니다.

  1. Azure Explorer에서 Azure 계정에 로그인합니다.

  2. 앱 인스턴스를 선택한 다음, 원격 디버깅 사용을 선택합니다.

    원격 디버깅 사용 메뉴 옵션을 보여 주는 IntelliJ의 스크린샷.

디버거 연결

다음 단계에 따라 디버거를 연결합니다.

  1. 앱 인스턴스를 선택한 다음, 디버거 연결을 선택합니다. IntelliJ가 앱 인스턴스에 연결되고 원격 디버깅을 시작합니다.

    디버거 연결 메뉴 옵션을 보여 주는 IntelliJ의 스크린샷.

  2. Azure Toolkit for IntelliJ는 원격 디버깅 구성을 만듭니다. 원격 Jvm 디버그에서 이 내용을 확인할 수 있습니다. 원격 디버깅에 사용하는 소스 코드에 대한 모듈 클래스 경로를 구성합니다.

    실행/디버그 구성 페이지를 보여 주는 IntelliJ의 스크린샷.

문제 해결

이 섹션에서는 문제 해결 정보를 제공합니다.

  • 디버거를 연결하지 못하고 java.net.SocketException, connection reset 또는 Failed to attach to remote debugger, ClosedConnectionException과 유사한 오류를 수신하는 경우 다음 작업을 수행합니다.

    • RBAC 역할을 확인하여 앱 인스턴스를 원격으로 디버그할 권한이 있는지 확인합니다.

    • 유효한 인스턴스에 연결하고 있는지 확인합니다. 배포를 새로 고침하여 최신 인스턴스를 가져옵니다.

      앱 인스턴스 노드의 새로 고침 메뉴 옵션을 보여 주는 IntelliJ 프로젝트 탐색기의 스크린샷.

  • 디버거를 성공적으로 연결했지만 앱 인스턴스를 원격으로 디버그할 수 없는 경우 다음 작업을 수행합니다.

    • IDE에 디버그하려는 소스 코드가 포함되어 있는지 확인합니다.
    • 디버그 구성에 올바른 모듈 클래스 경로가 있는지 확인합니다.

제한 사항

원격 디버깅은 Java 애플리케이션에 대해서만 지원됩니다.

계획 배포 유형 지원됨
표준 및 기본 플랜 Jar
표준 및 기본 플랜 소스 코드(Java)
표준 및 기본 플랜 사용자 지정 이미지 아니요
엔터프라이즈 계획 Java 애플리케이션
엔터프라이즈 계획 소스 코드(Java)
엔터프라이즈 계획 사용자 지정 이미지 아니요

  • Java 원격 디버깅은 원격 코드 실행을 허용하므로 위험합니다. Azure Spring Apps를 사용하면 클라이언트 IDE와 원격 애플리케이션 간의 통신을 보호할 수 있습니다. 그러나 원격 디버깅을 사용하지 않도록 설정하고 완료되면 RBAC 역할을 제거해야 합니다.
  • 트래픽이 인스턴스로 이동할 수 있도록 앱 인스턴스를 하나로 스케일 인해야 합니다.

다음 단계