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:

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.

A screenshot of the Visual Studio Code command palette for 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 venvcompleto. 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.

A screenshot of the PyCharm IDE with an Azure CLI command deploying a web app.

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.

pip install Django

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.

http://127.0.0.1:8000/

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