Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Parte anterior: Implementación de la aplicación principal
En esta sección se revisan las bibliotecas de Python importadas por la aplicación principal y las variables de entorno de las que depende. Al implementar la aplicación en Azure, proporcione estas variables de entorno a través de Configuración de la aplicación en Azure App Service.
Dependencias e declaraciones de importación
La aplicación se basa en las bibliotecas siguientes:
- Flask: para definir la API web
- requests: el cliente HTTP estándar de Python para realizar llamadas de API externas
- azure.identity – para gestionar la autenticación basada en tokens de Microsoft Entra ID
- azure.keyvault.secrets: para recuperar de forma segura los secretos de Azure Key Vault
- azure.storage.queue: para interactuar con Azure Queue Storage
Incluya estas dependencias en el archivo requirements.txt de la aplicación. Instálelos durante la implementación o la configuración local.
flask
requests
azure.identity
azure.keyvault.secrets
azure.storage.queue
Al implementar la aplicación en Azure App Service, Azure instala automáticamente estos requisitos en el servidor host. Al ejecutar localmente, instálelos en el entorno con pip install -r requirements.txt.
El archivo de código comienza con las instrucciones de importación necesarias para las partes de las bibliotecas usadas en el código:
from flask import Flask, request, jsonify
import requests, random, string, os
from datetime import datetime
from azure.keyvault.secrets import SecretClient
from azure.identity import DefaultAzureCredential
from azure.storage.queue import QueueClient
Variables de entorno
El código de la aplicación depende de estas cuatro variables de entorno:
| Variable | Valor |
|---|---|
THIRD_PARTY_API_ENDPOINT |
Dirección URL de la API de terceros, como https://msdocs-example-api.azurewebsites.net/api/RandomNumber, que se describe en la Parte 3. |
KEY_VAULT_URL |
Dirección URL de Azure Key Vault en la que almacenó la clave de acceso para la API de terceros. |
THIRD_PARTY_API_SECRET_NAME |
Nombre del secreto en Key Vault que contiene la clave de acceso de la API de terceros. |
STORAGE_QUEUE_URL |
La dirección URL de una cola de almacenamiento de Azure que configure en Azure, como https://msdocsexamplemainapp.queue.core.windows.net/code-requests (consulte la parte 4). Dado que el nombre de la cola se incluye al final de la dirección URL, no verá el nombre en ninguna parte del código. |
La forma de establecer estas variables depende de dónde se ejecuta el código:
Al ejecutar el código localmente, cree estas variables en cualquier shell de comandos que use (como PowerShell, Bash o CMD). (Si implementa la aplicación en una máquina virtual, creará variables del lado servidor similares). También puede usar una biblioteca como python-dotenv, que lee pares clave-valor de un archivo .env y los establece como variables de entorno.
Al implementar el código en Azure App Service, como se muestra en este tutorial, no tiene acceso al propio servidor. En su lugar, defina la configuración de la aplicación con los mismos nombres en la configuración de App Service. Esta configuración expone automáticamente la aplicación como variables de entorno.
Los scripts de aprovisionamiento crean esta configuración mediante el comando CLI de Azure, az webapp config appsettings set. Establezca las cuatro variables con un solo comando.
Para crear configuraciones a través del portal de Azure, consulte Configurar una aplicación de servicio de aplicaciones en el portal de Azure.
Al ejecutar el código localmente, también debe especificar variables de entorno que contengan información sobre la entidad de servicio local.
DefaultAzureCredential busca estos valores. Cuando se implementa en App Service, no es necesario establecer estos valores, ya que la identidad administrada asignada por el sistema de la aplicación se usa en su lugar para autenticarse.
| Variable | Valor |
|---|---|
AZURE_TENANT_ID |
Id. de inquilino de Microsoft Entra (directorio). |
AZURE_CLIENT_ID |
ID de cliente (aplicación) de un registro de aplicación en el inquilino. |
AZURE_CLIENT_SECRET |
Un secreto del cliente que generó usted para el registro de la aplicación. |
Para obtener más información, consulte Autenticación de aplicaciones de Python en servicios de Azure durante el desarrollo local mediante entidades de servicio.