Configuración del entorno local para implementar aplicaciones web de Python en Azure
En este artículo se explica cómo configurar el entorno local para desarrollar aplicaciones web de Python e implementarlas en Azure. La aplicación web puede ser python pura o usar uno de los marcos web comunes basados en Python, como Django, Flask o FastAPI.
Las aplicaciones web de Python desarrolladas localmente se pueden implementar en servicios como App de Azure Service, Azure Container Apps o Azure Static Web Apps. Hay muchas opciones para la implementación. Por ejemplo, para la implementación de App Service, puede optar por implementar desde código, un contenedor de Docker o una aplicación web estática. Si implementa desde código, puede implementar con Visual Studio Code, con la CLI de Azure, desde un repositorio git local o con acciones de GitHub. Si implementa en un contenedor de Docker, puede hacerlo desde Azure Container Registry, Docker Hub o desde cualquier registro privado.
Antes de continuar con este artículo, se recomienda revisar la configuración del entorno de desarrollo para obtener instrucciones sobre cómo configurar el entorno de desarrollo para Python y Azure. A continuación, analizaremos la configuración y la configuración específicas del desarrollo de aplicaciones web de Python.
Después de configurar el entorno local para el desarrollo de aplicaciones web de Python, estará listo para abordar estos artículos:
- Inicio rápido: Creación de una aplicación web de Python (Django o Flask) en App de Azure Service.
- Tutorial: Implementación de una aplicación web de Python (Django o Flask) con PostgreSQL en Azure
- Creación e implementación de una aplicación web de Flask en Azure con una identidad administrada asignada por el sistema
Trabajar con Visual Studio Code
El entorno de desarrollo integrado (IDE) de Visual Studio Code es una manera fácil de desarrollar aplicaciones web de Python y trabajar con recursos de Azure que usan las aplicaciones web.
Sugerencia
Asegúrese de que tiene instalada la extensión de Python . Para obtener información general sobre cómo trabajar con Python en VS Code, consulte Introducción a Python en VS Code.
En VS Code, trabajará con recursos de Azure a través de extensiones de VS Code. Puede instalar extensiones desde la vista Extensiones o la combinación de teclas Ctrl+Mayús+X. En el caso de las aplicaciones web de Python, es probable que trabaje con una o varias de las siguientes extensiones:
La extensión App de Azure Service permite interactuar con App de Azure Service desde Visual Studio Code. App Service proporciona hospedaje totalmente administrado para aplicaciones web, incluidos sitios web y API web.
La extensión Azure Static Web Apps permite crear Azure Static Web Apps directamente desde VS Code. Static Web Apps es sin servidor y es una buena opción para el hospedaje de contenido estático.
Si planea trabajar con contenedores, instale:
Extensión de Docker para compilar y trabajar con contenedores localmente. Por ejemplo, puede ejecutar una aplicación web de Python en contenedores en App de Azure Service mediante Web Apps for Containers.
La extensión Azure Container Apps para crear e implementar aplicaciones en contenedor directamente desde Visual Studio Code.
Hay otras extensiones, como Las extensiones Azure Storage, Azure Databases y Recursos de Azure. Siempre puede agregar estas y otras extensiones según sea necesario.
Las extensiones de Visual Studio Code son accesibles como cabría esperar en una interfaz IDE típica y con compatibilidad con palabras clave enriquecidas mediante la paleta de comandos de VS Code. Para acceder a la paleta de comandos, use la combinación de teclas Ctrl+Mayús+P. La paleta de comandos es una buena manera de ver todas las posibles acciones que puede realizar en un recurso de Azure. En la captura de pantalla siguiente se muestran algunas de las acciones de App Service.
Trabajar con contenedores de desarrollo en Visual Studio Code
Los desarrolladores de Python suelen confiar en entornos virtuales para crear un entorno aislado y independiente para un proyecto específico. Los entornos virtuales permiten a los desarrolladores administrar dependencias, paquetes y versiones de Python por separado para cada proyecto, evitando conflictos entre proyectos diferentes que podrían requerir versiones de paquetes diferentes.
Aunque hay opciones populares disponibles en Python para administrar entornos como virtualenv
o , la extensión contenedora de desarrollo de Visual Studio Code (basada en la especificación open Dev Container) le permite usar un contenedor de Docker como entorno contenedorizado venv
completo. Permite a los desarrolladores definir una cadena de herramientas coherente y fácilmente reproducible con todas las herramientas, dependencias y extensiones necesarias preconfiguradas. Esto significa que si tiene requisitos del sistema, configuraciones de shell o usa otros lenguajes por completo, puede usar un contenedor de desarrollo para configurar explícitamente todas las partes del proyecto que podrían residir fuera de un entorno básico de Python.
Por ejemplo, un desarrollador puede configurar un único contenedor de desarrollo para incluir todo lo necesario para trabajar en un proyecto, incluido un servidor de base de datos postgreSQL junto con la base de datos del proyecto y los datos de ejemplo, un servidor de Redis, Nginx, código de front-end, bibliotecas cliente como React, etc. Además, el contenedor contendrá el código del proyecto, el entorno de ejecución de Python y todas las dependencias del proyecto de Python con las versiones correctas. Por último, el contenedor puede especificar las extensiones de Visual Studio Code que se van a instalar para que todo el equipo tenga las mismas herramientas disponibles. Por lo tanto, cuando un nuevo desarrollador se une al equipo, todo el entorno, incluidas las herramientas, las dependencias y los datos, está listo para clonarse en su máquina local y puede empezar a trabajar inmediatamente.
Consulte Desarrollo dentro de un contenedor.
Trabajar con Visual Studio 2022
Visual Studio 2022 es un entorno de desarrollo integrado (IDE) completo con compatibilidad con el desarrollo de aplicaciones de Python y muchas herramientas y extensiones integradas para acceder a los recursos de Azure e implementarlos. Aunque la mayoría de la documentación para compilar aplicaciones web de Python en Azure se centra en el uso de Visual Studio Code, Visual Studio 2022 es una excelente opción si ya la tiene instalada, se siente cómodo con su uso y la usa para proyectos de .NET o C++.
En general, vea Visual Studio | Documentación de Python para toda la documentación relacionada con el uso de Python en Visual Studio 2022.
Para conocer los pasos de instalación, consulte Instalación de compatibilidad con Python en Visual Studio que le guía por los pasos para instalar la carga de trabajo de Python en Visual Studio 2022.
Para obtener un flujo de trabajo general sobre el uso de Python para el desarrollo web, consulte Inicio rápido: Creación de la primera aplicación web de Python con Visual Studio. Este artículo es útil para comprender cómo compilar una aplicación web de Python desde cero (pero no incluye la implementación en Azure).
Para usar Visual Studio 2022 para administrar los recursos de Azure e implementarlos en Azure, consulte Desarrollo de Azure con Visual Studio. Aunque gran parte de la documentación aquí menciona específicamente .NET, las herramientas para administrar recursos de Azure e implementar en Azure funcionan igual independientemente del lenguaje de programación.
Cuando no hay ninguna herramienta integrada disponible en Visual Studio 2022 para una tarea de implementación o administración de Azure determinada, siempre puede usar comandos de la CLI de Azure.
Trabajar con otros IDE
Si trabaja en otro IDE que no tiene compatibilidad explícita con Azure, puede usar la CLI de Azure para administrar los recursos de Azure. En la captura de pantalla siguiente, se abre una aplicación web de Flask sencilla en el IDE de PyCharm . La aplicación web se puede implementar en un servicio de App de Azure mediante el az webapp up
comando . En la captura de pantalla, el comando de la CLI se ejecuta en el emulador de terminal insertado de PyCharm. Si el IDE no tiene un emulador incrustado, puede usar cualquier terminal y el mismo comando. La CLI de Azure debe estar instalada en el equipo y ser accesible en cualquier caso.
Comandos de la CLI de Azure
Al trabajar localmente con aplicaciones web mediante los comandos de la CLI de Azure, normalmente trabajará con los siguientes comandos:
Comando | Descripción |
---|---|
az webapp | Administra las aplicaciones web. Incluye los subcomandos crear para crear una aplicación web y hasta crear e implementar desde un área de trabajo local |
az container app | Administra Azure Container Apps. |
az staticwebapp | Administra Azure Static Web Apps. |
az group | Administra los grupos de recursos y las implementaciones de plantillas. Use el subcomando create en un grupo de recursos para colocar los recursos de Azure en. |
az appservice | Administra los planes de App Service. |
az config | Configuración de la CLI de Azure administrada. Para guardar pulsaciones de tecla, puede definir una ubicación predeterminada o un grupo de recursos que otros comandos usen automáticamente. |
Este es un comando de la CLI de Azure de ejemplo para crear una aplicación web y recursos asociados e implementarla en Azure en un comando mediante az webapp up. Ejecute el comando en el directorio raíz de la aplicación web.
az webapp up \
--runtime PYTHON:3.9 \
--sku B1 \
--logs
Para obtener más información sobre este ejemplo, consulte Inicio rápido: Implementación de una aplicación web de Python (Django o Flask) en App de Azure Service.
Tenga en cuenta que para algunos de los flujos de trabajo de Azure también puede usar la CLI de Azure desde Azure Cloud Shell. Azure Cloud Shell es un shell interactivo, autenticado y accesible desde el explorador, que sirve para administrar los recursos de Azure.
Paquetes de claves del SDK de Azure
En las aplicaciones web de Python, puede hacer referencia mediante programación a los servicios de Azure mediante el SDK de Azure para Python. Este SDK se describe ampliamente en la sección Uso de las bibliotecas de Azure (SDK) para Python. En esta sección, mencionaremos brevemente algunos paquetes clave del SDK que usará en el desarrollo web. Además, mostraremos un ejemplo sobre el procedimiento recomendado para autenticar el código con recursos de Azure.
A continuación se muestran algunos de los paquetes que se usan habitualmente en el desarrollo de aplicaciones web. Puede instalar paquetes en el entorno virtual directamente con pip
. O bien, coloque el nombre del índice de paquetes de Python (Pypi) en el archivo requirements.txt .
Documentación del SDK | Instalación | Índice de paquetes de Python |
---|---|---|
Identidad de Azure | pip install azure-identity |
azure-identity |
Blobs de Azure Storage | pip install azure-storage-blob |
azure-storage-blob |
Azure Cosmos DB | pip install azure-cosmos |
azure-cosmos |
Secretos de Azure Key Vault | pip install azure-keyvault-secrets |
azure-keyvault-secrets |
El paquete azure-identity permite que la aplicación web se autentique con el identificador de Microsoft Entra. Para la autenticación en el código de la aplicación web, se recomienda usar DefaultAzureCredential en el azure-identity
paquete. Este es un ejemplo de cómo acceder a Azure Storage. El patrón es similar para otros recursos de Azure.
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
azure_credential = DefaultAzureCredential()
blob_service_client = BlobServiceClient(
account_url=account_url,
credential=azure_credential)
El DefaultAzureCredential
buscará en ubicaciones predefinidas para obtener información de la cuenta, por ejemplo, en variables de entorno o desde el inicio de sesión de la CLI de Azure. Para obtener información detallada sobre la DefaultAzureCredential
lógica, consulte Autenticación de aplicaciones de Python en servicios de Azure mediante el SDK de Azure para Python.
Marcos web basados en Python
En el desarrollo de aplicaciones web de Python, a menudo se trabaja con marcos web basados en Python. Estos marcos proporcionan funcionalidad como plantillas de página, administración de sesiones, acceso a bases de datos y fácil acceso a objetos de solicitud y respuesta HTTP. Los marcos le permiten evitar la necesidad de tener que reinventar la rueda para una funcionalidad común.
Tres marcos web de Python comunes son Django, Flask o FastAPI. Estos y otros marcos web se pueden usar con Azure.
A continuación se muestra un ejemplo de cómo puede empezar a trabajar rápidamente con estos marcos localmente. Al ejecutar estos comandos, terminará con una aplicación, aunque una sencilla que se pueda implementar en Azure. Ejecute estos comandos dentro de un entorno virtual.
Paso 1: Descargar los marcos con pip.
Paso 2: Crear una aplicación hola mundo.
Cree un proyecto de ejemplo mediante el comando startproject django-admin. El proyecto incluye un archivo manage.py que es el punto de entrada para ejecutar la aplicación.
django-admin startproject hello_world
Paso 3: Ejecutar el código localmente.
Django usa WSGI para ejecutar la aplicación.
python hello_world\manage.py runserver
Paso 4: Examinar la aplicación hola mundo.
En este momento, agregue un archivo requirements.txt y, a continuación, puede implementar la aplicación web en Azure o incluirla en contenedores con Docker y, a continuación, implementarla.
Pasos siguientes
- Inicio rápido: Creación de una aplicación web de Python (Django o Flask) en App de Azure Service.
- Tutorial: Implementación de una aplicación web de Python (Django o Flask) con PostgreSQL en Azure
- Creación e implementación de una aplicación web de Flask en Azure con una identidad administrada asignada por el sistema