Tutorial: Habilitar recursos condicionais com um filtro personalizado em um aplicativo Python
Os sinalizadores de recursos podem usar filtros de recursos para habilitar os recursos condicionalmente. Para saber mais sobre filtros de recursos, consulte Tutorial: Habilitar recursos condicionais com filtros de recursos.
O exemplo usado neste tutorial é baseado no aplicativo Python apresentado no gerenciamento de recursos do início rápido. Antes de prosseguir, conclua o início rápido para criar um aplicativo Python com um sinalizador de recursos Beta. Depois de concluído, você deve adicionar um filtro de recurso personalizado ao sinalizador de recurso Beta no repositório de Configuração de Aplicativos.
Neste tutorial, você aprenderá a implementar um filtro de recurso personalizado e usar o filtro de recursos para habilitar os recursos condicionalmente.
Pré-requisitos
- Crie um aplicativo Python com um sinalizador de recurso.
- Adicionar um filtro de recurso personalizado ao sinalizador de recurso
Implementar um filtro de recurso personalizado
Você adicionou um filtro de recurso personalizado chamado Random com um parâmetro Percentage para o sinalizador de recurso Beta nos pré-requisitos. Em seguida, implemente o filtro de recursos para habilitar o sinalizador de recursos Beta com base na chance definida pelo parâmetro Porcentagem.
Adicione um arquivo
RandomFilter.py
com o código a seguir.import random from featuremanagement import FeatureFilter @FeatureFilter.alias("Random") class RandomFilter(FeatureFilter): def evaluate(self, context, **kwargs): value = context.get("parameters", {}).get("Value", 0) if value < random.randint(0, 100): return True return False
Você adicionou uma classe
RandomFilter
que implementa a classe abstrataFeatureFilter
da bibliotecaFeatureManagement
. A classeFeatureFilter
tem um único método chamadoevaluate
, que é chamado sempre que um sinalizador de recurso é avaliado. Emevaluate
, um filtro de recurso habilita um sinalizador de recurso retornandotrue
.Você decorou um
FeatureFilter.alias
para oRandomFilter
para dar ao filtro um alias Random, que corresponde ao nome do filtro definido no sinalizador de recurso Beta na Configuração de Aplicativos do Azure.Abra o arquivo app.py e registre o
RandomFilter
ao criar oFeatureManager
. Além disso, modifique o código para não atualizar automaticamente e para acessar também o sinalizador de recursos Beta algumas vezes, conforme mostrado abaixo.from featuremanagement import FeatureManager from azure.appconfiguration.provider import load from azure.identity import DefaultAzureCredential import os endpoint = os.environ.get("APPCONFIGURATION_ENDPOINT_STRING") # Connect to Azure App Configuration using and Endpoint and Azure Entra ID # feature_flag_enabled makes it so that the provider will load feature flags from Azure App Configuration # feature_flag_refresh_enabled makes it so that the provider will refresh feature flags # from Azure App Configuration, when the refresh operation is triggered config = load(endpoint=endpoint, credential=DefaultAzureCredential(), feature_flag_enabled=True) feature_manager = FeatureManager(config, feature_filters=[RandomFilter()]) for i in range(0, 10): print("Beta is", feature_manager.is_enabled("Beta"))
Filtro de recurso em ação
Quando você executar o aplicativo, o provedor de configuração carregará o sinalizador de recursos Beta da Configuração de Aplicativos do Azure. O resultado do método is_enabled("Beta")
será impresso no console. Como o RandomFilter
é implementado e usado pelo sinalizador de recursos Beta, o resultado será True
50% do tempo e False
os outros 50% do tempo.
A execução do aplicativo mostrará que o sinalizador de recurso Beta às vezes está habilitado e às vezes não.
Beta is True
Beta is False
Beta is True
Beta is True
Beta is True
Beta is False
Beta is False
Beta is False
Beta is True
Beta is True
Próximas etapas
Para saber mais sobre os filtros de recursos, prossiga para os seguintes tutoriais: