다음을 통해 공유


레이블을 사용하여 환경별 구성 값을 제공합니다.

많은 애플리케이션은 다양한 환경에 대해 서로 다른 구성을 사용해야 합니다. 애플리케이션에 백 엔드 데이터베이스에 사용할 엔드포인트를 정의하는 구성 값이 있다고 가정합니다. 애플리케이션 개발자는 프로덕션에 사용되는 데이터베이스와 다른 데이터베이스를 사용합니다. 애플리케이션이 개발에서 프로덕션으로 이동함에 따라 애플리케이션에서 사용하는 데이터베이스 엔드포인트가 변경되어야 합니다.

Azure App Configuration에서 레이블을 사용하여 동일한 키에 대해 서로 다른 값을 정의할 수 있습니다. 예를 들어 개발 및 프로덕션에 대해 서로 다른 값을 사용하여 단일 키를 정의할 수 있습니다. App Configuration에 연결할 때 로드할 레이블을 지정할 수 있습니다.

이 기능을 보여 주려면 빠른 시작에서 만든 웹앱을 수정합니다. Azure App Configuration을 사용하여 ASP.NET Core 앱을 만들어 개발 및 프로덕션에 대해 서로 다른 구성 설정을 사용합니다. 계속하기 전에 빠른 시작을 완료합니다.

구성 값을 추가할 때 레이블 지정

Azure Portal에서 구성 탐색기 로 이동하여 빠른 시작에서 만든 TestApp:Settings:FontColor 키를 찾습니다. 상황에 맞는 메뉴를 선택한 다음 , 값 추가를 선택합니다.

값 추가 메뉴 항목

값 추가 화면에서 빨간색과 개발 레이블을 입력합니다. 콘텐츠 형식을 비워 둡니다. 적용을 선택합니다.

지정된 레이블을 사용하여 구성 값 로드

기본적으로 Azure App Configuration은 레이블이 없는 구성 값만 로드합니다. 구성 값에 대한 레이블을 정의한 경우 App Configuration에 연결할 때 사용할 레이블을 지정해야 합니다.

이전 섹션에서는 개발 환경에 대해 다른 구성 값을 만들었습니다. 변수를 사용하여 앱이 HostingEnvironment.EnvironmentName 현재 실행되는 환경을 동적으로 결정합니다. 자세한 내용은 ASP.NET Core에서 여러 환경 사용을 참조하세요.

KeyFilterLabelFilter 클래스에 액세스하기 위해 Microsoft.Extensions.Configuration.AzureAppConfiguration 네임스페이스에 대한 참조를 추가합니다.

using Microsoft.Extensions.Configuration.AzureAppConfiguration;

메서드에 환경 이름을 전달하여 현재 환경에 해당하는 레이블로 Select 구성 값을 로드합니다.

var builder = WebApplication.CreateBuilder(args);

builder.Configuration.AddAzureAppConfiguration(options =>
    {
        string endpoint = Environment.GetEnvironmentVariable("Endpoint");
        options.Connect(new Uri(endpoint), new DefaultAzureCredential())
               // Load configuration values with no label
               .Select(KeyFilter.Any, LabelFilter.Null)
               // Override with any configuration values specific to current hosting env
               .Select(KeyFilter.Any, builder.Environment.EnvironmentName);
    });

메서드를 Select 두 번 호출합니다. 처음으로 레이블이 없는 구성 값을 로드합니다. 그런 다음 현재 환경에 해당하는 레이블을 사용하여 구성 값을 로드합니다. 이러한 환경별 값은 레이블 없이 해당 값을 재정의합니다. 모든 키에 대한 환경별 값을 정의할 필요는 없습니다. 키에 현재 환경에 해당하는 레이블이 있는 값이 없으면 레이블이 없는 값을 사용합니다.

다른 환경에서 테스트

launchSettings.json 디렉터리 아래에서 Properties 파일을 엽니다. config 에서 항목을 찾습니다profiles. 섹션에서 변수ProductionenvironmentVariablesASPNETCORE_ENVIRONMENT .로 설정합니다.

새 값을 설정하여 애플리케이션을 빌드하고 실행합니다.

dotnet build
dotnet run

웹 브라우저를 사용하여 .로 http://localhost:5000이동합니다. 글꼴 색이 검은색임을 알 수 있습니다.

프로덕션 구성을 사용하여 실행되는 웹 애플리케이션

변수를 .로 설정 ASPNETCORE_ENVIRONMENT 하도록 업데이트 launchSettings.json 합니다Development. 다시 실행 dotnet run 합니다.

이제 글꼴 색이 빨간색으로 표시됩니다. 이는 애플리케이션이 이제 레이블이 있는 값을 TestApp:Settings:FontColor 사용하기 때문입니다 Development . 다른 모든 구성 값은 프로덕션 값과 동일하게 유지됩니다.

개발 구성을 사용하여 실행되는 웹 애플리케이션

다음 단계