Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O provedor Python de Configuração de Aplicativo do Azure inclui recursos internos de cache e atualização. Este tutorial mostra como habilitar a configuração dinâmica em aplicativos Python.
Pré-requisitos
- Uma conta do Azure com uma subscrição ativa. Crie um gratuitamente.
- Uma loja de Configuração de Aplicativos do Azure. Crie uma loja.
- Python 3.8 ou posterior. Para informações sobre como configurar Python no Windows, consulte a documentação do Python no Windows.
Adicionar valores-chave
Adicione o seguinte valor-chave à sua loja de Configuração de Aplicações do Azure. Para obter mais informações sobre como adicionar valores-chave a uma loja usando o portal do Azure ou a CLI, vá para Criar um valor-chave.
| Key | valor | Etiqueta | Tipo do conteúdo |
|---|---|---|---|
| mensagem | Olá, mundo! | Deixar em branco | Deixar em branco |
| sentinela | 1 | Deixar em branco | Deixar em branco |
Nota
Uma chave sentinela é uma chave que atualiza após concluir a alteração de todas as restantes chaves. Seu aplicativo monitora a chave sentinela. Quando uma alteração é detetada, seu aplicativo atualiza todos os valores de configuração. Essa abordagem ajuda a garantir a consistência da configuração em seu aplicativo e reduz o número geral de solicitações feitas à sua loja de Configuração de Aplicativo do Azure, em comparação com o monitoramento de todas as chaves para alterações.
Aplicações de consola
Crie um novo arquivo Python chamado app.py e adicione o seguinte código:
Utiliza o
DefaultAzureCredentialpara autenticar no arquivo de App Configuration. Siga as instruções para atribuir à sua credencial a função de Leitor de Dados de Configuração do Aplicativo. Certifique-se de dar tempo suficiente para que a permissão se propague antes de executar seu aplicativo.from azure.appconfiguration.provider import load, WatchKey from azure.identity import DefaultAzureCredential import os import time endpoint = os.environ.get("APPCONFIGURATION_ENDPOINT") # Connecting to Azure App Configuration using connection string # Setting up to refresh when the Sentinel key is changed. config = load( endpoint=endpoint, credential=DefaultAzureCredential(), refresh_on=[WatchKey("sentinel")], refresh_interval=10, # Default value is 30 seconds, shorted for this sample ) print("Update the `message` in your Azure App Configuration store using Azure portal or CLI.") print("First, update the `message` value, and then update the `sentinel` key value.") while (True): # Refreshing the configuration setting config.refresh() # Current value of message print(config["message"]) # Waiting before the next refresh time.sleep(5)Execute o seu script:
python app.pyVerifique a saída.
Update the `message` in your Azure App Configuration store using Azure portal or CLI. First, update the `message` value, and then update the `sentinel` key value. Hello World!Atualize os seguintes valores-chave para o repositório de Configuração de Aplicativos do Azure.
Key valor Etiqueta Tipo do conteúdo mensagem Olá Mundo Atualizado! Deixar em branco Deixar em branco sentinela 2 Deixar em branco Deixar em branco Depois de os valores serem atualizados e o intervalo de atualização passar, o valor atualizado aparece.
Hello World Refreshed!
Aplicações Web
O exemplo a seguir mostra como atualizar um aplicativo Web existente para usar valores de configuração atualizáveis. É possível passar uma função de callback ao argumento nomeado on_refresh_success da função load. Esse retorno de chamada será invocado quando uma alteração de configuração for detetada no servidor e pode ser usado para atualizar os valores de configuração no aplicativo.
No app.py, configure a Configuração do Aplicativo do Azure para carregar seus valores de configuração. Em seguida, atualize os seus endpoints para verificar se existem valores de configuração atualizados.
from azure.appconfiguration.provider import load, WatchKey
from azure.identity import DefaultAzureCredential
azure_app_config = None # declare azure_app_config as a global variable
def on_refresh_success():
app.config.update(azure_app_config)
global azure_app_config
azure_app_config = load(endpoint=os.environ.get("AZURE_APPCONFIG_ENDPOINT"),
credential=DefaultAzureCredential(),
refresh_on=[WatchKey("sentinel")],
on_refresh_success=on_refresh_success,
refresh_interval=10, # Default value is 30 seconds, shortened for this sample
)
@app.route("/")
def index():
global azure_app_config
# Refresh the configuration from Azure App Configuration service.
azure_app_config.refresh()
# Access a configuration setting directly from within Flask configuration
print("Request for index page received")
context = {}
context["message"] = app.config.get("message")
return render_template("index.html", **context)
Atualize seu modelo index.html para usar os novos valores de configuração.
<!doctype html>
<head>
<title>Hello Azure App Configuration - Python Flask Example</title>
</head>
<html>
<body>
<main>
<div>
<h1>{{message}}</h1>
</div>
</main>
</body>
</html>
Você pode encontrar um exemplo completo do projeto aqui.
Sempre que estes endpoints forem invocados, pode ser efetuada uma verificação de atualização para garantir que são utilizados os valores de configuração mais recentes. A verificação pode retornar imediatamente se o intervalo de atualização 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.
Nota
Se o intervalo de atualização não tiver passado, não é tentada a atualização e a verificação retorna imediatamente.
Próximos passos
Neste tutorial, você habilitou seu aplicativo Python para atualizar dinamicamente as definições de configuração da Configuração do Aplicativo do Azure. Para saber como usar uma identidade gerenciada do Azure para simplificar o acesso à Configuração do Aplicativo do Azure, continue para o próximo tutorial.