Início Rápido: Adicionar sinalizadores de recurso a um aplicativo Python
Neste início rápido, você criará um sinalizador de recursos na Configuração de Aplicativos do Azure e o usará para controlar dinamicamente os aplicativos Python para criar uma implementação de ponta a ponta do gerenciamento de recursos.
O suporte ao gerenciamento de recursos estende o recurso de configuração dinâmica na Configuração de Aplicativos. Esses exemplos no início rápido se baseiam no aplicativo Python introduzido no tutorial de configuração dinâmica. Antes de continuar, primeiro conclua o início rápido e o tutorial para criar aplicativos Python com configuração dinâmica.
Essa biblioteca não tem uma dependência em nenhuma biblioteca do Azure. Elas são integradas diretamente à Configuração de Aplicativos por meio de seu provedor de configuração do Python.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie um gratuitamente.
- Um repositório de Configuração de Aplicativos. Criar um repositório.
- O Python 3.8 ou posterior – Para obter informações sobre como configurar o Python no Windows, confira a Documentação do Python no Windows, caso contrário, confira Downloads do Python.
- biblioteca azure-appconfiguration-provider 1.2.0 ou posterior.
Adicionar um sinalizador de recursos
Adicione um sinalizador de recurso chamado Beta ao repositório da Configuração de Aplicativos e deixe o Rótulo e a Descrição com seus valores padrão. Para mais informações sobre como adicionar sinalizadores de recursos a um repositório usando o portal do Azure ou a CLI, acesse Criar um sinalizador de recurso. Neste estágio, o bloco Habilitar sinalizador de recursos deve ser desmarcado.
Aplicativos de console
Instale o Gerenciamento de Recursos usando o comando
pip install
.pip install featuremanagement
Crie um novo arquivo Python chamado
app.py
e adicione o seguinte código:from featuremanagement import FeatureManager from azure.identity import InteractiveBrowserCredential from azure.appconfiguration.provider import load import os from time import sleep endpoint = os.environ["APP_CONFIGURATION_ENDPOINT"] # Connecting to Azure App Configuration using an endpoint # credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes). # 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=InteractiveBrowserCredential(), feature_flag_enabled=True, feature_flag_refresh_enabled=True) feature_manager = FeatureManager(config) # Is always false print("Beta is ", feature_manager.is_enabled("Beta")) while not feature_manager.is_enabled("Beta"): sleep(5) config.refresh() print("Beta is ", feature_manager.is_enabled("Beta"))
Ao iniciar o aplicativo, uma janela do navegador será aberta para autenticar o usuário. O usuário deve ter pelo menos a função App Configuration Data Reader
para acessar o repositório de Configuração de Aplicativos, consulte Funções de Configuração de Aplicativos para obter mais informações.
Defina uma variável de ambiente chamada APP_CONFIGURATION_ENDPOINT e defina-a como o ponto de extremidade para o repositório de Configuração de Aplicativos. Na linha de comando, execute o seguinte comando e reinicie o prompt de comando para permitir que a alteração entre em vigor:
Para criar e executar o aplicativo localmente usando o prompt de comando do Windows, execute o seguinte comando:
setx APP_CONFIGURATION_ENDPOINT "endpoint-of-your-app-configuration-store"
Reinicie o prompt de comando para permitir que a alteração entre em vigor. Valide se ele está definido corretamente imprimindo o valor da variável de ambiente.
Execute o aplicativo Python.
python app.py
No portal da Configuração de Aplicativos, selecione Gerenciador de Recursos e altere o estado do sinalizador de recurso Beta para Ativado, usando a alternância na coluna Habilitado.
Chave Estado Beta Ativado Após cerca de 30 segundos, que é o intervalo de atualização para o provedor, o aplicativo imprimirá o seguinte:
Beta is True
Aplicativos Web
O exemplo a seguir mostra como atualizar um aplicativo Web existente, usando a Configuração de Aplicativos do Azure com atualização dinâmica para também usar sinalizadores de recursos. Consulte Configuração Dinâmica do Python para obter um exemplo mais detalhado de como usar a atualização dinâmica para os valores de configuração. Antes de continuar, verifique se você tem o sinalizador de recurso Beta habilitado no repositório de Configuração de Aplicativos.
Em app.py
, configure o método de carga da Configuração de Aplicativos do Azure para carregar adicionalmente sinalizadores de recursos, juntamente com a habilitação da atualização de sinalizadores de recursos.
from featuremanagement import FeatureManager
...
global azure_app_config, feature_manager
# Connecting to Azure App Configuration using an endpoint
# credential is used to authenticate the client, the InteractiveBrowserCredential is used for this sample. It will open a browser window to authenticate the user. For all credential options see [credential classes](https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity#credential-classes).
# 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
azure_app_config = load(endpoint=endpoint, credential=InteractiveBrowserCredential(),
refresh_on=[WatchKey("sentinel")],
on_refresh_success=on_refresh_success,
refresh_interval=10, # Default value is 30 seconds, shortened for this sample
feature_flag_enabled=True,
feature_flag_refresh_enabled=True,
)
feature_manager = FeatureManager(config)
Atualize também suas rotas para verificar se há sinalizadores de recursos atualizados.
@app.route("/")
def index():
...
context["message"] = azure_app_config.get("message")
context["beta"] = feature_manager.is_enabled("Beta")
...
Atualize o modelo index.html
para usar os novos sinalizadores de recursos.
...
<body>
<main>
<div>
<h1>{{message}}</h1>
{% if beta %}
<h2>Beta is enabled</h2>
{% endif %}
</div>
</main>
</body>
Depois de atualizar e executar seu aplicativo, você poderá ver o sinalizador de recurso em ação, em que a mensagem Beta is enabled
será exibida na página, mas somente se o sinalizador de recurso estiver habilitado no repositório de Configuração de Aplicativos.
Você pode encontrar um projeto de exemplo completo aqui.
Sempre que esses pontos de extremidade são disparados, uma verificação de atualização pode ser executada para garantir que os valores de configuração mais recentes sejam usados. A verificação poderá retornar imediatamente se o intervalo de atualização não tiver passado ou uma atualização já estiver em andamento.
Quando uma atualização é concluída, todos os valores são atualizados de uma só vez, portanto, a configuração é sempre consistente dentro do objeto.
Limpar os recursos
Se não deseja continuar usando os recursos criados neste artigo, exclua o grupo de recursos que você criou aqui para evitar encargos.
Importante
A exclusão de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos contidos nele são excluídos permanentemente. Não exclua acidentalmente grupo de recursos ou recursos incorretos. Se tiver criado os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que você deseja manter, exclua cada um individualmente do respectivo painel em vez de excluir o grupo de recursos.
- Entre no portal do Azure e selecione Grupos de recursos.
- Na caixa Filtrar por nome..., digite o nome do seu grupo de recursos.
- Na lista de resultados, selecione o nome do grupo de recursos para conferir uma visão geral.
- Selecione Excluir grupo de recursos.
- Você receberá uma solicitação para confirmar a exclusão do grupo de recursos. Insira o nome do grupo de recursos para confirmar e selecione Excluir.
Após alguns instantes, o grupo de recursos e todos os recursos dele são excluídos.
Próximas etapas
Neste início rápido, você criou um novo repositório de Configuração de Aplicativos e o usou para gerenciar recursos em um aplicativo Python por meio da biblioteca do Gerenciamento de Recursos.
- Saiba mais sobre o gerenciamento de recursos.
- Gerenciar sinalizadores de recursos.