Partilhar via


Guia de início rápido: adicionar sinalizadores de recursos a um aplicativo Python

Neste início rápido, você criará um sinalizador de recurso na Configuração do Aplicativo do Azure e o usará para controlar dinamicamente 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 do aplicativo. Esses exemplos no início rápido se baseiam no aplicativo python introduzido no tutorial de configuração dinâmica. Antes de continuar, conclua primeiro o início rápido e o tutorial para criar aplicativos python com configuração dinâmica.

Esta biblioteca não tem uma dependência de nenhuma biblioteca do Azure. Eles se integram perfeitamente com a Configuração de Aplicativos por meio de seu provedor de configuração Python.

Pré-requisitos

Adicionar um sinalizador de recurso

Adicione um sinalizador de recurso chamado Beta à loja de Configuração do Aplicativo e deixe Rótulo e Descrição com seus valores padrão. Para obter mais informações sobre como adicionar sinalizadores de recursos a uma loja usando o portal do Azure ou a CLI, vá para Criar um sinalizador de recurso. Nesta fase, a opção Ativar recurso sinalizador bock check bock deve ser desmarcada.

Captura de tela do sinalizador de recurso de ativação chamado Beta.

Aplicações de consola

  1. Instale o Gerenciamento de Recursos usando o pip install comando.

    pip install featuremanagement
    
  2. 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 App Configuration Data Reader função para acessar o repositório de configuração de aplicativos, consulte Funções de configuração de aplicativo para obter mais informações.

  1. Defina uma variável de ambiente chamada APP_CONFIGURATION_ENDPOINT e defina-a como o ponto de extremidade para sua loja 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.

  2. Execute o aplicativo python.

    python app.py
    
  3. No portal de Configuração do Aplicativo, selecione Gerenciador de Recursos e altere o estado do sinalizador do recurso Beta para Ativado, usando a alternância na coluna Habilitado .

    Chave Estado
    Beta Ativado
  4. Após cerca de 30s, que é o intervalo de atualização para o provedor, o aplicativo imprimirá o seguinte:

    Beta is True
    

Aplicações Web

O exemplo a seguir mostra como atualizar um aplicativo Web existente, usando a Configuração do Aplicativo 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 valores de configuração. Antes de continuar, certifique-se de que tem o sinalizador da funcionalidade Beta ativado na sua loja de Configuração de Aplicações.

No app.py, configure o método de carregamento da Configuração de Aplicativo do Azure para carregar adicionalmente sinalizadores de recursos, além de habilitar a 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 seu 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ê pode ver o sinalizador de recurso em ação, onde a Beta is enabled mensagem aparecerá na página, mas somente se o sinalizador de recurso estiver ativado na App Configuration Store.

Captura de tela do sinalizador de recurso ativar beta habilitado.

Você pode encontrar um exemplo completo do projeto aqui.

Sempre que esses pontos de extremidade são acionados, uma verificação de atualização pode ser executada para garantir que os valores de configuração mais recentes sejam usados. A verificação pode retornar imediatamente se o intervalo de atualização ainda não tiver passado ou se uma atualização já estiver em andamento.

Quando uma atualização é concluída, todos os valores são atualizados de uma só vez, para que a configuração seja sempre consistente dentro do objeto.

Clean up resources (Limpar recursos)

Se não quiser continuar a utilizar os recursos criados neste artigo, elimine o grupo de recursos que criou aqui para evitar cobranças.

Importante

A eliminação de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos nele contidos são excluídos permanentemente. Certifique-se de não excluir acidentalmente o grupo de recursos ou recursos errados. Se você criou os recursos para este artigo dentro de um grupo de recursos que contém outros recursos que deseja manter, exclua cada recurso individualmente de seu respetivo painel em vez de excluir o grupo de recursos.

  1. Entre no portal do Azure e selecione Grupos de recursos.
  2. Na caixa Filtrar por nome, introduza o nome do seu grupo de recursos.
  3. Na lista de resultados, selecione o nome do grupo de recursos para ver uma visão geral.
  4. Selecione Eliminar grupo de recursos.
  5. É-lhe pedido que confirme a eliminação do grupo de recursos. Insira o nome do grupo de recursos a ser confirmado e selecione Excluir.

Após alguns momentos, o grupo de recursos e todos os seus recursos são excluídos.

Próximos passos

Neste início rápido, você criou uma nova loja de Configuração de Aplicativo e a usou para gerenciar recursos em um aplicativo Python por meio da biblioteca de Gerenciamento de Recursos.