기능 플래그는 기능 필터를 사용하여 기능을 조건부로 사용하도록 설정할 수 있습니다. 기능 필터에 대한 자세한 내용은 기능 필터를 사용하여 조건부 기능 사용을 참조하세요.
이 가이드에서는 ASP.NET Core 애플리케이션에서 사용자 지정 기능 필터를 구현하고 기능 필터를 사용하여 기능을 조건부로 사용하도록 설정하는 방법을 보여 줍니다.
필수 구성 요소
- 빠른 시작: ASP.NET Core 앱에 기능 플래그 추가의 단계를 완료하면 베타 기능 플래그가 있는 ASP.NET Core 애플리케이션이 생성됩니다. 이 가이드는 해당 기능 관리 빠른 시작을 기반으로 합니다.
- Azure App Configuration 저장소의
Random기능 플래그에 추가된 사용자 지정 기능 필터입니다. 지침은 사용자 지정 기능 필터 추가를 참조하세요.
사용자 지정 기능 필터 구현
App Configuration 저장소에서 베타 기능 플래그에는 이름이 지정된 Random사용자 지정 기능 필터가 있습니다. 해당 필터에는 매개 변수가 있습니다 Percentage . 기능 필터를 구현하려면 매개 변수에서 정의한 확률에 따라 베타 기능 플래그를 Percentage 사용하도록 설정합니다.
필수 구성 요소에 나열된 기능 관리 빠른 시작에서 ASP.NET Core 애플리케이션 프로젝트가 포함된 폴더로 이동합니다.
다음 코드가 포함된 RandomFilter.cs 파일을 추가합니다.
using Microsoft.FeatureManagement; namespace TestAppConfig { [FilterAlias("Random")] public class RandomFilter : IFeatureFilter { private readonly Random _random; public RandomFilter() { _random = new Random(); } public Task<bool> EvaluateAsync(FeatureFilterEvaluationContext context) { int percentage = context.Parameters.GetSection("Percentage").Get<int>(); int randomNumber = _random.Next(100); return Task.FromResult(randomNumber <= percentage); } } }RandomFilter클래스는 이전 코드에서IFeatureFilter인터페이스를Microsoft.FeatureManagement라이브러리에서 구현합니다.IFeatureFilter인터페이스에는 기능 플래그가 평가될 때마다 호출되는EvaluateAsync라는 단일 메서드가 있습니다.EvaluateAsync에서 기능 필터는true를 반환하여 기능 플래그를 사용하도록 설정합니다.이 코드에서
RandomFilter클래스는FilterAliasAttribute으로 데코레이션되어 필터에Random라는 별칭을 부여합니다. 해당 별칭은 App Configuration의 베타 기능 플래그에 있는 필터 이름과 일치합니다.Program.cs 파일을 엽니다. 다음 코드에서와 같이
RandomFilter메서드에 호출을 추가하여AddFeatureFilter를 등록합니다.// Existing code in Program.cs // ... ... // Add feature management to the container of services. builder.Services.AddFeatureManagement() .AddFeatureFilter<RandomFilter>(); // The rest of the existing code in Program.cs // ... ...
기능 필터 적용
명령을 사용하여 앱을 빌드합니다
dotnet build. 그런 다음dotnet run을 사용하여 실행합니다.명령의
dotnet run출력에서 웹앱이 수신 대기하는 URL을 찾습니다. 브라우저를 열고 해당 URL로 이동합니다.브라우저를 몇 번 새로 고칩니다. 베타 메뉴가 웹 페이지에 표시되는 경우도 있고 그렇지 않은 경우도 있습니다. 베타 기능 플래그는 수동으로 설정 및 해제되지 않습니다. 이러한 변화는 기능 플래그가 평가될 때
RandomFilter의EvaluateAsync구현이 생성하는 난수에 의해 발생합니다.
다음 단계
기본 제공 기능 필터에 대해 자세히 알아보려면 다음 문서를 계속 진행하세요.
.NET 기능 관리 라이브러리의 전체 기능 런다운을 보려면 다음 문서를 계속 진행합니다.