Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I flag di funzionalità possono usare filtri di funzionalità per abilitare le funzionalità in modo condizionale. Per altre informazioni sui filtri delle funzionalità, vedere Abilitare le funzionalità condizionali con i filtri delle funzionalità.
L'esempio usato in questa guida si basa sull'applicazione Python introdotta nella guida introduttiva alla gestione delle funzionalità. Prima di continuare, completare l’avvio rapido per creare un'applicazione Python con un flag di funzionalità Beta. Al termine, è necessario aggiungere un filtro di funzionalità personalizzato al flag di funzionalità Beta nell'archivio di configurazione app.
Questo articolo illustra come implementare un filtro di funzionalità personalizzato e usare il filtro delle funzionalità per abilitare le funzionalità in modo condizionale.
Prerequisiti
- Creare un'app Python con un flag di funzionalità.
- Aggiungere un filtro di funzionalità personalizzato al flag di funzionalità
Implementare un filtro di funzionalità personalizzato
È stato aggiunto un filtro di funzionalità personalizzato denominato Casuale con un parametro Percentuale per il flag di funzionalità Beta nei prerequisiti. Successivamente, si implementa il filtro delle funzionalità per abilitare il flag di funzionalità Beta in base alla probabilità definita dal parametro Percentuale.
Aggiungere un file
RandomFilter.pycon il codice seguente.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È stata aggiunta una classe
RandomFilterche implementa la classe astrattaFeatureFilterdalla libreriaFeatureManagement. La classeFeatureFilterha un singolo metodo denominatoevaluate, che viene chiamato ogni volta che viene valutato un flag di funzionalità. Inevaluate, un filtro di funzionalità abilita un flag di funzionalità restituendotrue.È stato decorato un
FeatureFilter.aliasinRandomFilterper assegnare al filtro un alias Casuale, che corrisponde al nome del filtro impostato nel flag di funzionalità Beta in Configurazione app di Azure.Aprire il file app.py e registrare
RandomFilterdurante la creazione diFeatureManager. Inoltre, modificare il codice per non aggiornare automaticamente e per accedere anche al flag di funzionalità Beta alcune volte, come illustrato di seguito.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 funzionalità in azione
Quando si esegue l'applicazione, il provider di configurazione caricherà il flag di funzionalità Beta da Configurazione app di Azure. Il risultato del metodo is_enabled("Beta") verrà stampato nella console. Poiché RandomFilter viene implementato e usato dal flag di funzionalità Beta, il risultato sarà True il 50% del tempo e False l'altro 50% del tempo.
L'esecuzione dell'applicazione mostrerà che il flag di funzionalità Beta è talvolta abilitato e talvolta no.
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
Passaggi successivi
Per altre informazioni sui filtri di funzionalità predefiniti, continuare con i documenti seguenti.