다음을 통해 공유


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

많은 애플리케이션은 환경마다 다른 구성을 사용해야 합니다. 애플리케이션에 백 엔드 데이터베이스에 사용할 연결 문자열 정의하는 구성 값이 있다고 가정합니다. 애플리케이션 개발자는 프로덕션 환경에서 사용하는 것과 다른 데이터베이스를 사용합니다. 애플리케이션이 개발에서 프로덕션으로 이동함에 따라 애플리케이션에서 사용하는 데이터베이스 연결 문자열 변경해야 합니다.

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

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

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

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

Add Value menu item

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

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

기본적으로 Azure 앱 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 =>
    {
            options.Connect(builder.Configuration.GetConnectionString("AppConfig"))
                // 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);
    });

Important

위의 코드 조각은 Secret Manager 도구를 사용하여 App Configuration 연결 문자열 로드합니다. 비밀 관리자를 사용하여 연결 문자열 저장하는 자세한 내용은 ASP.NET Core를 사용하여 Azure 앱 구성에 대한 빠른 시작을 참조하세요.

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

다른 환경에서 테스트

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

새 값이 설정된 상태에서 애플리케이션을 빌드하고 실행합니다.

dotnet build
dotnet run

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

Web application running with production configuration

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

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

Web application running with development configuration

다음 단계