다음을 통해 공유


빠른 시작: .NET/.NET Framework 콘솔 앱에 기능 플래그 추가

이 빠른 시작에서는 Azure App Configuration을 .NET 또는 .NET Framework 콘솔 앱에 통합하여 기능 관리의 엔드투엔드 구현을 만듭니다. App Configuration을 사용하면 모든 기능 플래그를 중앙에 저장하고 해당 상태를 제어할 수 있습니다.

.NET 기능 관리 라이브러리는 기능 플래그 지원을 제공하여 .NET을 확장합니다. 이 라이브러리는 .NET 구성 시스템을 기반으로 빌드됩니다. 해당 .NET 구성 공급자를 통해 App Configuration과 통합됩니다.

필수 구성 요소

기능 플래그 추가

App Configuration 저장소에 베타라는 기능 플래그를 추가하고 레이블설명을 기본값으로 둡니다. Azure Portal 또는 Azure CLI를 사용하여 저장소에 기능 플래그를 추가하는 방법에 대한 자세한 내용은 기능 플래그 만들기를 참조하세요.

Azure Portal에서 새 기능 플래그 만들기 대화 상자의 스크린샷. 이름 및 키 필드에는 베타가 포함됩니다. 레이블과 설명이 비어 있습니다.

액세스 설정 구성

이 빠른 시작에서 만든 앱은 App Configuration 저장소에 연결하여 기능 플래그 설정에 액세스합니다. 앱 구성에 연결하려면 앱에서 Microsoft Entra ID 또는 연결 문자열을 사용할 수 있습니다. Microsoft Entra ID를 사용하는 것이 좋습니다.

앱 구성의 데이터 역할 할당

기본적으로 생성된 앱은 DefaultAzureCredential를 사용하여 App Configuration 저장소에 인증합니다. DefaultAzureCredential 는 토큰 자격 증명 체인입니다. 권한 부여가 작동하려면 앱에서 사용하는 자격 증명에 앱 구성 데이터 판독 기 역할을 부여해야 합니다. 지침은 토큰 자격 증명을 사용한 인증을 참조하세요. 앱을 실행하기 전에 역할 할당이 전파되기에 충분한 시간을 허용합니다.

환경 변수 설정

앱은 환경 변수를 사용하여 App Configuration에 대한 연결을 설정합니다. 다음 명령 중 하나를 사용하여 App Configuration 저장소의 엔드포인트로 명명된 Endpoint 환경 변수를 설정합니다.

  • 명령 프롬프트를 사용하는 경우 다음 명령을 실행합니다.

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

    변경 내용이 적용되도록 명령 프롬프트를 닫고 다시 엽니다. 환경 변수가 해당 값을 콘솔에 인쇄하여 설정되었는지 확인합니다.

  • Windows PowerShell을 사용하는 경우 다음 명령을 실행합니다.

    [System.Environment]::SetEnvironmentVariable("Endpoint", "<endpoint-of-your-app-configuration-store>", "User")
    

콘솔 앱 만들기

Visual Studio를 사용하여 새 콘솔 앱 프로젝트를 만들려면 다음 단계를 수행합니다.

  1. Visual Studio를 엽니다. 이미 실행 중인 경우 이전 섹션에서 설정한 환경 변수를 인식할 수 있도록 닫고 다시 엽니다.

  2. Visual Studio에서>프로젝트 파일을> 선택합니다.

  3. 새 프로젝트 만들기 대화 상자에서 검색 상자에 콘솔을 입력합니다.

    • .NET 앱을 만들려면 콘솔 앱을 선택한 다음, 다음을 선택합니다.
    • .NET Framework 앱을 만들려면 콘솔 앱(.NET Framework)을 선택한 다음, 다음을 선택합니다.
  4. 새 프로젝트 구성 대화 상자에서 프로젝트 이름을 입력합니다.

    • .NET 앱을 만들려면 [다음 ]을 선택하여 추가 정보 대화 상자를 엽니다. 이 대화 상자에서 .NET Framework를 선택하고 최상위 문 사용 안 함 확인란의 선택을 취소한 다음 만들기를 선택합니다.
    • .NET Framework 앱을 만들려면 Framework에서 .NET Framework 4.7.2 이상 버전을 선택한 다음 만들기를 선택합니다.

기능 플래그 사용

앱에서 기능 플래그를 사용하려면 다음 단계를 수행합니다.

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 NuGet 패키지 관리를 선택합니다.

  2. 찾아보기 탭에서 다음 NuGet 패키지의 안정적인 최신 버전을 검색하여 프로젝트에 추가합니다.

    • Microsoft.Extensions.Configuration.AzureAppConfiguration
    • Microsoft.FeatureManagement
    • Azure.Identity
  3. Program.cs 열고 파일의 시작 부분에 다음 문을 추가합니다.

    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.Configuration.AzureAppConfiguration;
    using Microsoft.FeatureManagement;
    using Azure.Identity;
    
  4. 다음 코드 블록에 표시된 것처럼 세 가지 변경을 수행하여 Program.cs 업데이트합니다.

    • App Configuration에서 기능 플래그를 로드하려면 메서드에 호출을 추가합니다 UseFeatureFlags .
    • 구성에서 기능 플래그를 읽으려면 인스턴스 FeatureManager를 만듭니다.
    • 베타 기능 플래그를 사용하는 경우 메시지를 표시합니다.

    .NET

    IConfiguration configuration = new ConfigurationBuilder()
        .AddAzureAppConfiguration(options =>
        {
            string endpoint = Environment.GetEnvironmentVariable("Endpoint");
            options.Connect(new Uri(endpoint), new DefaultAzureCredential())
                   .UseFeatureFlags();
        }).Build();
    
    var featureManager = new FeatureManager(
        new ConfigurationFeatureDefinitionProvider(configuration));
    
    if (await featureManager.IsEnabledAsync("Beta"))
    {
        Console.WriteLine("Welcome to the beta!");
    }
    
    Console.WriteLine("Hello World!");
    

    .NET Framework

    public static async Task Main(string[] args)
    {         
        IConfiguration configuration = new ConfigurationBuilder()
            .AddAzureAppConfiguration(options =>
            {
                string endpoint = Environment.GetEnvironmentVariable("Endpoint");
                options.Connect(new Uri(endpoint), new DefaultAzureCredential())
                       .UseFeatureFlags();
            }).Build();
    
        var featureManager = new FeatureManager(
            new ConfigurationFeatureDefinitionProvider(configuration));
    
        if (await featureManager.IsEnabledAsync("Beta"))
        {
            Console.WriteLine("Welcome to the beta!");
        }
    
        Console.WriteLine("Hello World!");
    }
    

로컬로 앱 빌드 및 실행

  1. Visual Studio에서 Ctrl+F5 를 선택하여 애플리케이션을 빌드하고 실행합니다. 콘솔에 다음 출력이 표시됩니다.

    앱의 출력이 포함된 명령 프롬프트 창의 스크린샷 출력에는 Hello World! 텍스트가 포함됩니다.

  2. Azure Portal에 로그인합니다. 모든 리소스를 선택한 다음, App Configuration 저장소를 선택합니다.

  3. 기능 관리자를 선택하고 베타 기능 플래그를 찾습니다. 사용 토글을 켜서 플래그를 사용하도록 설정합니다.

  4. 애플리케이션을 다시 실행합니다. 베타 메시지가 콘솔에 표시됩니다.

    앱의 출력이 포함된 명령 프롬프트 창의 스크린샷. 출력에는 'Welcome to the beta!'와 'Hello World!'라는 텍스트가 포함되어 있습니다.

리소스 정리

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

중요합니다

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

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

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

다음 단계

이 빠른 시작에서는 App Configuration에 기능 플래그를 만들고 콘솔 앱에 사용했습니다. 애플리케이션을 다시 시작하지 않고 기능 플래그 및 기타 구성 값을 동적으로 업데이트하는 방법을 알아보려면 다음 자습서를 참조하세요.

다른 유형의 앱에 기능 관리 기능을 사용하도록 설정하려면 다음 빠른 시작을 참조하세요.

.NET 기능 관리 라이브러리의 전체 기능 개요는 다음 문서를 참조하세요.