Use filtros de recursos para habilitar sinalizadores de recursos condicionais
Os sinalizadores de recursos permitem ativar ou desativar uma funcionalidade em seu aplicativo. Um sinalizador de recursos simples está ligado ou desligado. O aplicativo sempre se comporta da mesma maneira. Por exemplo, você pode lançar um novo recurso por trás de um sinalizador de recurso. Quando o sinalizador de recursos estiver habilitado, todos os usuários verão o novo recurso. Desabilitar o sinalizador de recursos oculta o novo recurso.
Por outro lado, um sinalizador de recursos condicional permite que o sinalizador de recurso seja habilitado ou desabilitado dinamicamente. O aplicativo pode se comportar de forma diferente, dependendo dos critérios do sinalizador de recurso. Suponha que você queira mostrar seu novo recurso a um pequeno subconjunto de usuários a princípio. Um sinalizador de recursos condicional permite habilitar o sinalizador de recurso para alguns usuários ao desabilitá-lo para outros. Os filtros de recursos determinam o estado do sinalizador de recurso cada vez que ele é avaliado.
A biblioteca Microsoft.FeatureManagement
inclui os seguintes filtros de recursos internos acessíveis no portal de Configuração de Aplicativos do Azure.
- O Filtro de janela de tempo habilita o sinalizador de recurso durante uma janela de tempo especificada.
- O Filtro de direcionamento habilita o sinalizador de recurso para usuários e grupos especificados.
Você também pode criar seu próprio filtro de recurso que implemente a interface Microsoft.FeatureManagement.IFeatureFilter
. Para obter mais informações, consulte Implementando um filtro de recurso.
Pré-requisitos
- Siga as instruções do Início Rápido: Adicionar sinalizadores de recursos a um aplicativo do ASP.NET Core para criar um aplicativo Web com um sinalizador de recursos.
- Instale o pacote
Microsoft.FeatureManagement.AspNetCore
da versão 3.0.0 ou posterior.
Registrar um filtro de recursos
Se você tiver um filtro de recurso personalizado, poderá registrá-lo chamando o método AddFeatureFilter
.
services.AddFeatureManagement()
.AddFeatureFilter<MyCriteriaFilter>();
A partir da versão 3.0.0 de Microsoft.FeatureManagement
, os seguintes filtros internos são registrados automaticamente como parte da chamada AddFeatureManagement
, portanto, não é necessário registrá-los.
TimeWindowFilter
ContextualTargetingFilter
PercentageFilter
Dica
Para obter mais informações sobre o uso de TargetingFilter
, consulte Habilitar a distribuição em etapas de recursos para públicos-alvo.
Adicionar um filtro de recurso a um sinalizador de recurso
Nesta seção, você aprenderá a adicionar um filtro de recurso ao sinalizador de recurso Beta criado no Início Rápido. As etapas a seguir usam o TimeWindowFilter
interno como exemplo.
No portal do Azure, acesse o repositório de configurações e selecione Gerenciador de recursos.
Na linha com o sinalizador de recurso Beta que você criou no início rápido, selecione o menu de contexto e, em seguida, Editar.
No painel Editar sinalizador de recurso que é aberto, marque a caixa de seleção Habilitar sinalizador de recurso, se ainda não estiver habilitada. Em seguida, marque a caixa de seleção Usar filtro de recurso e selecione Criar.
O painel Criar um novo filtro é aberto. Em Tipo de filtro, selecione Filtro da janela de tempo.
Defina a Data de início como Personalizada e selecione uma hora alguns minutos antes da hora atual. Defina Data de expiração como Nunca
Selecione Adicionar para salvar o novo filtro de recursos e retornar à tela Editar sinalizador de recurso.
O filtro de recursos que você criou agora está listado nos detalhes do sinalizador de recurso. Selecione Aplicar para salvar as novas configurações do sinalizador de recurso.
Na página Gerenciador de recursos, o sinalizador de recurso agora tem um valor de Filtro de recurso igual a 1.
Filtros de recursos em ação
Reinicie o aplicativo que você criou no Início Rápido. Se a hora atual for anterior à hora de início definida para o filtro da janela de tempo, o item de menu Beta não aparecerá na barra de ferramentas. Isso ocorre porque o sinalizador do recurso Beta está desabilitado pelo filtro da janela de tempo.
Depois que a hora de início tiver passado, atualize o navegador algumas vezes. Você notará que o item de menu Beta aparecerá agora. Isso ocorre porque o sinalizador de recurso Beta agora está habilitado pelo filtro da janela de tempo.