다음을 통해 공유


Azure Container Apps에서 Admin for Spring 구성 요소 구성

Admin for Spring 관리 구성 요소는 Actuator 엔드포인트를 노출하는 Spring Boot 웹 애플리케이션에 대한 관리 인터페이스를 제공합니다. 이 문서에서는 Spring 구성 요소를 구성하고 관리하는 방법을 보여 줍니다.

표시

show 명령을 사용하여 이름으로 개별 구성 요소의 세부 정보를 볼 수 있습니다.

다음 명령을 실행하기 전에 <>로 묶인 자리 표시자를 원하는 값으로 바꿉니다.

az containerapp env java-component admin-for-spring show \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --name <JAVA_COMPONENT_NAME>

엽데이트

update 명령을 사용하여 Spring용 Admin 구성 요소의 복제본 수 및 구성을 업데이트할 수 있습니다.

다음 명령을 실행하기 전에 <>로 묶인 자리 표시자를 원하는 값으로 바꿉니다. 지원되는 구성은 속성 목록 표에 나열되어 있습니다.

az containerapp env java-component admin-for-spring update \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --name <JAVA_COMPONENT_NAME> \
  --min-replicas <REPLICA_COUNT> \
  --max-replicas <REPLICA_COUNT> \
  --configuration <CONFIGURATION_KEY>="<CONFIGURATION_VALUE>"

List

list 명령을 사용하여 등록된 모든 Java 구성 요소를 나열할 수 있습니다.

다음 명령을 실행하기 전에 <>로 묶인 자리 표시자를 원하는 값으로 바꿉니다.

az containerapp env java-component list \
  --environment <ENVIRONMENT_NAME> \
  --resource-group <RESOURCE_GROUP>

바인딩 해제

컨테이너 앱에서 바인딩을 제거하려면 --unbind 옵션을 사용합니다.

다음 명령을 실행하기 전에 <>로 묶인 자리 표시자를 원하는 값으로 바꿉니다.

az containerapp update \
  --name <APP_NAME> \
  --unbind <JAVA_COMPONENT_NAME> \
  --resource-group <RESOURCE_GROUP>

Dependency

컨테이너 앱에서 관리 구성 요소를 사용하는 경우 pom.xml 파일에 다음 종속성을 추가해야 합니다. 버전 번호를 Maven 리포지토리에서 사용 가능한 최신 버전으로 바꿉니다.

<dependency>
    <groupId>de.codecentric</groupId>
    <version>3.3.2</version>
    <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>

구성 가능한 속성

Spring Boot 2부터 상태 및 정보 이외의 엔드포인트는 기본적으로 노출되지 않습니다. application.properties 파일에 다음 구성을 추가하여 노출할 수 있습니다.

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

Spring용 관리자에게 허용되는 구성 목록

다음 목록에는 앱에 대해 구성할 수 있는 관리 구성 요소 속성이 자세히 설명되어 있습니다. 자세한 내용은 Spring Boot 관리 문서를 참조하세요.

Property name 설명 기본값
spring.boot.admin.server.enabled Spring Boot 관리 서버를 사용하도록 설정합니다. true
spring.boot.admin.context-path 관리 서버의 정적 자산 및 API가 제공되는 경로 접두사입니다. Dispatcher-Servlet과 관련됩니다.
spring.boot.admin.monitor.status-interval 인스턴스 상태를 확인하는 시간 간격(밀리초)입니다. 10,000ms
spring.boot.admin.monitor.status-lifetime 상태의 수명(밀리초)입니다. 마지막 상태가 만료되지 않는 한 상태는 업데이트되지 않습니다. 10,000ms
spring.boot.admin.monitor.info-interval 인스턴스 정보를 확인하는 시간 간격(밀리초)입니다. 1m
spring.boot.admin.monitor.info-lifetime 정보의 수명(분)입니다. 정보는 마지막 정보가 만료되지 않은 한 오래되지 않습니다. 1m
spring.boot.admin.monitor.default-timeout 요청 시 기본 시간 제한. 특정 엔드포인트의 개별 값은 spring.boot.admin.monitor.timeout.*을 사용하여 재정의될 수 있습니다. 10,000
spring.boot.admin.monitor.timeout.* endpointId당 시간 제한이 있는 키-값 쌍입니다. default-timeout 값을 기본값으로 설정
spring.boot.admin.monitor.default-retries 실패한 요청에 대한 기본 다시 시도 횟수입니다. 데이터(PUT, POST, PATCH, DELETE)를 수정하는 요청은 다시 시도되지 않습니다. 특정 엔드포인트의 개별 값은 spring.boot.admin.monitor.retries.*을 사용하여 재정의될 수 있습니다. 0
spring.boot.admin.monitor.retries.* endpointId당 다시 시도 횟수가 포함된 키-값 쌍입니다. 데이터(PUT, POST, PATCH, DELETE)를 수정하는 요청은 다시 시도되지 않습니다. default-retries 값을 기본값으로 설정
spring.boot.admin.metadata-keys-to-sanitize 모든 JSON 출력을 삭제하는 데 사용되는 정규식 패턴과 일치하는 키의 메타데이터 값입니다. Spring Boot 3부터 모든 액추에이터 값은 기본적으로 마스킹됩니다. 정리 취소 프로세스를 구성하는 방법에 대한 자세한 내용은(중요한 값 정리)를 참조하세요. ".**password$", ".\*secret$", ".\*key$", ".\*token$", ".\*credentials.**", ".*vcap_services$"
spring.boot.admin.probed-endpoints Spring Boot 1.x 클라이언트 애플리케이션의 경우 Spring Boot 관리는 OPTIONS 요청을 사용하여 지정된 엔드포인트를 검색합니다. 경로가 ID와 다른 경우 이 값을 id:path(예: health:ping)로 지정할 수 있습니다. "health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents"
spring.boot.admin.instance-proxy.ignored-headers 클라이언트에 요청할 때 전달되지 않는 헤더입니다. "Cookie", "Set-Cookie", "Authorization"
spring.boot.admin.ui.title 표시된 페이지 제목입니다. "Spring Boot Admin"
spring.boot.admin.ui.poll-timer.cache 새 캐시 데이터를 페치하기 위한 폴링 기간(밀리초)입니다. 2500
spring.boot.admin.ui.poll-timer.datasource 새 데이터 원본 데이터를 페치하기 위한 폴링 기간(밀리초)입니다. 2500
spring.boot.admin.ui.poll-timer.gc 새 gc 데이터를 페치하기 위한 폴링 기간(밀리초)입니다. 2500
spring.boot.admin.ui.poll-timer.process 새 프로세스 데이터를 페치하기 위한 폴링 기간(밀리초)입니다. 2500
spring.boot.admin.ui.poll-timer.memory 새 메모리 데이터를 페치하기 위한 폴링 기간(밀리초)입니다. 2500
spring.boot.admin.ui.poll-timer.threads 새 스레드 데이터를 페치하기 위한 폴링 기간(밀리초)입니다. 2500
spring.boot.admin.ui.poll-timer.logfile 새 로그 파일 데이터를 페치하기 위한 폴링 기간(밀리초)입니다. 1000
spring.boot.admin.ui.enable-toasts 알림 메시지를 사용하거나 사용하지 않도록 설정합니다. false
spring.boot.admin.ui.title 브라우저의 창 제목 값입니다. ""
spring.boot.admin.ui.brand 탐색 헤더에 렌더링된 HTML 코드이며 기본값은 Spring Boot 관리 레이블입니다. 기본적으로 Spring Boot 관리 로고 뒤에는 이름이 옵니다. ""
management.scheme Actuator 엔드포인트에 액세스하는 데 사용되는 서비스 URL에서 대체되는 값입니다.
management.address Actuator 엔드포인트에 액세스하는 데 사용되는 서비스 URL에서 대체되는 값입니다.
management.port Actuator 엔드포인트에 액세스하는 데 사용되는 서비스 URL에서 대체되는 값입니다.
management.context-path 액추에이터 엔드포인트에 액세스하는 데 사용되는 서비스 URL에 추가되는 값입니다. ${spring.boot.admin.discovery.converter.management-context-path}
health.path 상태 검사에 사용되는 서비스 URL에 추가되는 값입니다. EurekaServiceInstanceConverter에 의해 무시됩니다. ${spring.boot.admin.discovery.converter.health-endpoint}
spring.boot.admin.discovery.enabled 관리 서버에 대한 DiscoveryClient 지원을 사용하도록 설정합니다. true
spring.boot.admin.discovery.converter.management-context-path management-url 값이 DefaultServiceInstanceConverter에 의해 변환될 때 발견된 서비스의 service-url에 추가되는 값입니다. /actuator
spring.boot.admin.discovery.converter.health-endpoint-path health-url 값이 DefaultServiceInstanceConverter에 의해 변환될 때 발견된 서비스의 management-url에 추가되는 값입니다. "health"
spring.boot.admin.discovery.ignored-services 검색 사용 시 무시되고 애플리케이션으로 등록되지 않은 서비스입니다. "foo*", "*bar", "foo*bar*"와 같은 단순한 패턴을 지원합니다.
spring.boot.admin.discovery.services 검색 사용 시 포함되고 애플리케이션으로 등록되는 서비스입니다. "foo*", "*bar", "foo*bar*"와 같은 단순한 패턴을 지원합니다. "*"
spring.boot.admin.discovery.ignored-instances-metadata 이 목록의 패턴과 일치하는 메타데이터 항목이 하나 이상 포함된 경우 서비스가 무시됩니다. "discoverable=false"와 같은 패턴을 지원합니다.
spring.boot.admin.discovery.instances-metadata 목록의 패턴과 일치하는 메타데이터 항목이 하나 이상 포함된 경우 서비스가 포함됩니다. "discoverable=true"와 같은 패턴을 지원합니다.

일반 구성

  • 관련 구성 로깅
    • logging.level.*
    • logging.group.*
    • logging.* 네임스페이스의 다른 모든 구성은 금지되어야 합니다. 예를 들어, logging.file을 사용하여 로그 파일을 작성하는 것은 금지되어야 합니다.

다음 단계