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. Cuando la aplicación se implementa en Azure, estas variables de entorno se proporcionan a través de la 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
Estas dependencias se incluyen en el archivo requirements.txt de la aplicación y se instalan 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. Cuando se ejecuta localmente, se instalan 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 el shell de comandos que use (como PowerShell, Bash o CMD). (Si implementa la aplicación en una máquina virtual, crearía 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.
Cuando el código se implementa en Azure App Service, como se muestra en este tutorial, no tiene acceso al propio servidor. En su lugar, debe definir los ajustes de la aplicación con los mismos nombres en la configuración del servicio App Service. Esta configuración se expone automáticamente a la aplicación como variables de entorno.
Los scripts de aprovisionamiento crean esta configuración mediante el comando de la CLI de Azure, az webapp config appsettings set. Las cuatro variables se establecen 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 | Secreto de cliente que se generó para el registro de aplicaciones. |
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.