Azure App Configuration을 사용한 동적 구성
Source: Dev.to

Azure App Configuration은 애플리케이션 설정 및 기능 플래그를 중앙에서 관리할 수 있는 서비스를 제공합니다. 특히 클라우드에서 실행되는 현대적인 프로그램은 일반적으로 분산된 여러 구성 요소를 가지고 있습니다.
이 글에서는 Azure App Configuration을 사용한 동적 구성과 라벨을 활용해 동적 수준을 더욱 높이는 방법을 살펴봅니다. 라벨을 사용하면 환경별 설정을 한 곳에서 제공하면서 환경 변수를 통해 각 환경에 맞는 값을 가져올 수 있습니다. 또한 라벨을 이용해 서로 다른 프로파일을 만들 수 있습니다—환경 이름 대신 다른 키를 사용하면 됩니다.
.NET에서 라벨‑특정 구성 호출하기
먼저 Microsoft.Extensions.Configuration.AzureAppConfiguration 패키지를 추가합니다:
dotnet add package Microsoft.Extensions.Configuration.AzureAppConfiguration
환경 변수에 저장된 연결 문자열을 사용해 Azure App Configuration에 대한 연결을 구성합니다:
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.AddAzureAppConfiguration(options => {
options.Connect(builder.Configuration.GetConnectionString("APPCONFIG_CONNECTION_STRING"))
.Select(KeyFilter.Any, LabelFilter.Null) // 라벨이 없는 설정 로드
.Select(KeyFilter.Any, ""); // 특정 라벨이 있는 설정 로드
});
첫 번째 Select는 라벨이 없는 모든 구성을 로드하고, 두 번째는 지정된 라벨이 있는 구성을 로드합니다.
환경 기반 접근 방식을 사용하려면 현재 환경 이름을 활용할 수 있습니다:
var environment = builder.Environment.EnvironmentName;
그 후 구성 설정은 일반 IConfiguration 인터페이스를 통해 접근합니다.
Select 메서드에 데이터베이스나 Redis 캐시 등에서 가져온 임의의 라벨 이름을 제공하여 특정 프로파일을 로드할 수도 있습니다.
TypeScript에서 라벨‑특정 구성 호출하기
JavaScript SDK를 사용할 때도 동일한 원리가 적용되며, React, Angular 등과 함께 사용할 수 있습니다. npm을 통해 패키지를 설치합니다:
npm install @azure/app-configuration
TypeScript 파일에서 클라이언트를 가져옵니다:
import { AppConfigurationClient } from "@azure/app-configuration";
연결 변수와 가져올 키를 설정합니다:
const connectionString = process.env["APPCONFIG_CONNECTION_STRING"] || "";
const client = new AppConfigurationClient(connectionString);
const configKey = "Samples:Endpoint:Url";
const labelKey = process.env["ENVIRONMENT"] || "Development";
키와 라벨을 사용해 구성 설정을 가져옵니다:
const betaEndpoint = await client.getConfigurationSetting({
key: configKey,
label: labelKey
});