빠른 시작: Spring Boot 앱에 기능 플래그 추가

이 빠른 시작에서는 Azure App Configuration 기능 플래그를 만들고 이를 사용하여 Spring Boot 앱을 동적으로 제어하여 기능 관리의 엔드투엔드 구현을 만듭니다.

Spring Boot 기능 관리 라이브러리는 Azure 라이브러리에 대한 종속성을 갖지 않습니다. 또한 해당 Spring Boot 구성 공급자를 통해 App Configuration과 원활하게 통합됩니다.

필수 구성 요소

기능 플래그 추가

App Configuration 저장소에 베타라는 기능 플래그를 추가하고 레이블설명을 기본값으로 둡니다. Azure Portal 또는 CLI를 사용하여 저장소에 기능 플래그를 추가하는 방법에 대한 자세한 내용은 기능 플래그 만들기로 이동하세요. 이 단계에서 기능 플래그 사용 확인란을 선택 취소해야 합니다.

베타라는 이름의 기능 플래그를 사용하도록 설정하는 것을 보여 주는 스크린샷.

콘솔 앱 만들기

  1. 새 Spring Boot 프로젝트를 만듭니다.

    1. Spring Initializr로 이동합니다.

    2. 다음 옵션을 지정합니다.

      • Java를 사용하는 Maven 프로젝트를 생성합니다.
      • 3.0보다 크거나 같은 Spring Boot 버전을 지정합니다.
      • 애플리케이션에 대한 그룹아티팩트 이름을 지정합니다. 이 문서에서는 com.exampledemo를 사용합니다.
    3. 이전 옵션을 지정한 후 프로젝트 생성을 선택합니다. 프로젝트를 다운로드하여 로컬 컴퓨터에 추출합니다.

  2. 앱의 루트 디렉터리에서 pom.xml 찾아 텍스트 편집기에서 엽니다.

  3. 다음을 목록 <dependencies>에 추가합니다.

    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-appconfiguration-config</artifactId>
    </dependency>
    <dependency>
        <groupId>com.azure.spring</groupId>
        <artifactId>spring-cloud-azure-feature-management</artifactId>
    </dependency>
    
  4. 다음 <dependencyManagement> 섹션을 추가하여 Spring Cloud Azure 라이브러리 버전을 관리합니다.

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.azure.spring</groupId>
                <artifactId>spring-cloud-azure-dependencies</artifactId>
                <version>7.2.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
  5. 앱의 resources 디렉터리로 이동하여 application.properties 또는 application.yaml 파일을 엽니다.

    DefaultAzureCredential을(를) App Configuration 저장소에 인증하는 데 사용합니다. 권한 부여가 작동하려면 앱에서 사용하는 자격 증명에 앱 구성 데이터 판독 기 역할을 부여해야 합니다. 지침은 토큰 자격 증명을 사용한 인증을 참조하세요. 애플리케이션을 실행하기 전에 권한이 전파될 수 있는 충분한 시간을 허용해야 합니다.

    spring.config.import=azureAppConfiguration
    spring.cloud.azure.appconfiguration.stores[0].endpoint= ${AZURE_APPCONFIG_ENDPOINT}
    spring.cloud.azure.appconfiguration.stores[0].feature-flags.enabled=true
    
  6. 앱의 DemoApplication.java 패키지 디렉터리에 있는 파일을 다음 코드로 업데이트합니다.

    import org.springframework.boot.CommandLineRunner;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.annotation.Bean;
    
    import com.azure.spring.cloud.feature.management.FeatureManager;
    
    @SpringBootApplication
    public class DemoApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(DemoApplication.class, args);
        }
    
        @Bean
        public CommandLineRunner runner(FeatureManager featureManager) {
            return args -> {
                System.out.println("Beta is enabled: " + featureManager.isEnabled("Beta"));
            };
        }
    }
    
  7. AZURE_APPCONFIG_ENDPOINT 환경 변수를 설정하고 App Configuration 저장소의 엔드포인트로 설정합니다. 명령줄에서 다음 명령을 실행하고 명령 프롬프트를 다시 시작하여 변경 내용을 적용합니다.

    setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
    

    명령 프롬프트를 다시 시작하여 변경 내용을 적용합니다. 환경 변수의 값을 인쇄하여 올바르게 설정되었는지 유효성을 검사합니다.

  8. Maven을 사용하여 Spring Boot 애플리케이션을 빌드하고 실행합니다.

    mvn clean package
    mvn spring-boot:run
    
  9. App Configuration 포털에서 기능 관리자를 선택하고 사용하도록 설정 열의 토글을 사용하여 베타 기능 플래그의 상태를 켜짐으로 변경합니다.

    시스템 상태
    베타 설정
  10. 애플리케이션을 다시 시작합니다. 애플리케이션은 다음을 출력합니다.

    Beta is enabled: true
    

리소스 정리

이 문서에서 만든 리소스를 계속 사용하지 않으려면 여기서 만든 리소스 그룹을 삭제하여 요금이 부과되지 않도록 합니다.

중요합니다

리소스 그룹을 삭제하면 다시 되돌릴 수 없습니다. 리소스 그룹 및 포함된 모든 리소스가 영구적으로 삭제됩니다. 잘못된 리소스 그룹 또는 리소스를 자동으로 삭제하지 않도록 합니다. 유지하려는 다른 리소스가 포함된 리소스 그룹 내에서 이 문서에 대한 리소스를 만든 경우 리소스 그룹을 삭제하는 대신 해당 창에서 각 리소스를 개별적으로 삭제합니다.

  1. Azure Portal에 로그인하고 리소스 그룹을 선택합니다.
  2. 이름으로 필터링 상자에서 리소스 그룹의 이름을 입력합니다.
  3. 결과 목록에서 리소스 그룹 이름을 선택하여 개요를 확인합니다.
  4. 리소스 그룹 삭제를 선택합니다.
  5. 리소스 그룹 삭제를 확인하는 메시지가 표시됩니다. 리소스 그룹의 이름을 입력하여 확인하고 삭제를 선택합니다.

잠시 후, 리소스 그룹 및 모든 해당 리소스가 삭제됩니다.

다음 단계

이 빠른 시작에서는 새 App Configuration 저장소를 만들고 기능 관리 라이브러리를 통해 Spring Boot 앱의 기능을 관리하는 데 사용했습니다.