빠른 시작: Node.js 콘솔 앱에 기능 플래그 추가
이 빠른 시작에서는 Azure 앱 Configuration을 Node.js 콘솔 앱에 통합하여 기능 관리의 엔드투엔드 구현을 만듭니다. App Configuration을 사용하면 모든 기능 플래그를 중앙에 저장하고 해당 상태를 제어할 수 있습니다.
JavaScript 기능 관리 라이브러리는 기능 플래그 지원을 사용하여 프레임워크를 확장합니다. JavaScript 구성 공급자를 통해 App Configuration과 원활하게 통합됩니다. 예를 들어 이 자습서에서는 Node.js 앱에서 JavaScript 기능 관리를 사용하는 방법을 보여줍니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정 만들기
- App Configuration 저장소. 저장소를 만듭니다.
- Node.js의 LTS 버전. Windows에서 직접 또는 WSL(Linux용 Windows 하위 시스템)을 사용하여 Node.js를 설치하는 방법에 대한 자세한 내용은 Node.js 시작하기를 참조하세요.
기능 플래그 추가
App Configuration 저장소에 베타라는 기능 플래그를 추가하고 레이블 및 설명을 기본값으로 둡니다. Azure Portal 또는 CLI를 사용하여 저장소에 기능 플래그를 추가하는 방법에 대한 자세한 내용은 기능 플래그 만들기로 이동하세요.
기능 플래그 사용
명령을 사용하여 기능 관리를 설치합니다
npm install
.npm install @microsoft/feature-management
app.js 파일을 만들고 다음 코드를 추가합니다.
App Configuration 저장소에 인증하는 데 사용합니다
DefaultAzureCredential
. 지침에 따라 자격 증명에 App Configuration 데이터 판독기 역할을 할당합니다. 애플리케이션을 실행하기 전에 권한이 전파될 수 있는 충분한 시간을 허용해야 합니다.const sleepInMs = require("util").promisify(setTimeout); const { load } = require("@azure/app-configuration-provider"); const { DefaultAzureCredential } = require("@azure/identity"); const { FeatureManager, ConfigurationMapFeatureFlagProvider} = require("@microsoft/feature-management"); const endpoint = process.env.AZURE_APPCONFIG_ENDPOINT; const credential = new DefaultAzureCredential(); // For more information, see https://learn.microsoft.com/azure/developer/javascript/sdk/credential-chains#use-defaultazurecredential-for-flexibility async function run() { // Connect to Azure App Configuration using endpoint and token credential const settings = await load(endpoint, credential, { featureFlagOptions: { enabled: true, // Note: selectors must be explicitly provided for feature flags. selectors: [{ keyFilter: "*" }], refresh: { enabled: true, refreshIntervalInMs: 10_000 } } }); // Create a feature flag provider which uses a map as feature flag source const ffProvider = new ConfigurationMapFeatureFlagProvider(settings); // Create a feature manager which will evaluate the feature flag const fm = new FeatureManager(ffProvider); while (true) { await settings.refresh(); // Refresh to get the latest feature flag settings const isEnabled = await fm.isEnabled("Beta"); // Evaluate the feature flag console.log(`Beta is enabled: ${isEnabled}`); await sleepInMs(5000); } } run().catch(console.error);
애플리케이션 실행
환경 변수를 설정합니다.
AZURE_APPCONFIG_ENDPOINT 환경 변수를 Azure Portal의 저장소 개요 아래에 있는 App Configuration 저장소의 엔드포인트로 설정합니다.
Windows 명령 프롬프트를 사용하는 경우 다음 명령을 실행하고, 명령 프롬프트를 다시 시작하여 변경 내용을 적용합니다.
setx AZURE_APPCONFIG_ENDPOINT "<endpoint-of-your-app-configuration-store>"
PowerShell을 사용하는 경우 다음 명령을 실행합니다.
$Env:AZURE_APPCONFIG_ENDPOINT = "<endpoint-of-your-app-configuration-store>"
macOS 또는 Linux를 사용하는 경우 다음 명령을 실행합니다.
export AZURE_APPCONFIG_ENDPOINT='<endpoint-of-your-app-configuration-store>'
다음 명령을 실행하여 앱을 로컬로 실행합니다.
node app.js
베타 기능 플래그를 사용할 수 없으므로 다음 콘솔 출력이 표시됩니다.
Beta is enabled: false
Azure Portal에 로그인합니다. 모든 리소스를 선택하고 이전에 만든 App Configuration 저장소를 선택합니다.
기능 관리자를 선택하고 베타 기능 플래그를 찾습니다. 사용 아래의 확인란을 선택하여 플래그를 사용하도록 설정합니다.
몇 초 동안 기다리면 콘솔 출력이 변경됩니다.
Beta is enabled: true