Compartir vía


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, Flasko FastAPI.

Las aplicaciones web de Python desarrolladas localmente se pueden implementar en servicios como Azure App Service, Azure Container Appso 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 el 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 el ajuste específicos para el desarrollo de aplicaciones web en 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 Visual Studio Code entorno de desarrollo integrado (IDE) 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 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 Extensiones Vista 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 azure App Service le permite interactuar con Azure App 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:

    • La extensión Docker para compilar y trabajar con contenedores localmente. Por ejemplo, puede ejecutar una aplicación web de Python en contenedor en Azure App 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 Azure Storage, Azure Databasesy Azure Resources. 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.

Captura de pantalla de la paleta de comandos de Visual Studio Code para 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 venv, la extensión contenedor de desarrollo de Visual Studio Code (basada en la especificación de contenedor de desarrollo abierta ) le permite usar un contenedor de Docker de como entorno contenedorizado 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.

Ver Desarrollo dentro de un contenedor.

Trabajar con Visual Studio 2022

visual Studio 2022 es un entorno de desarrollo integrado (IDE) completo compatible 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, consulte 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 compatibilidad con Python en Visual Studio que le guía por los pasos necesarios para instalar la carga de trabajo de Python en Visual Studio 2022.

  • Para obtener un flujo de trabajo general de uso de Python para el desarrollo web, consulte Inicio rápido: Creación de la primera aplicación web de Python mediante 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 una instancia de Azure App Service mediante el comando az webapp up. 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.

Captura de pantalla del IDE de PyCharm con un comando de la CLI de Azure que implementa una aplicación web.

Comandos de la CLI de Azure

Al trabajar localmente con aplicaciones web mediante los comandos CLI de Azure, normalmente trabajarás con los siguientes comandos:

Get-Help Descripción
az webapp Administra las aplicaciones web. Incluye los subcomandos crear y arriba para crear una aplicación web o para crear e implementar desde un área de trabajo local, respectivamente.
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 crear para convertir un grupo de recursos en el que colocar los recursos de Azure.
az appservice Administra los planes de App Service.
az config Administra la configuración de la CLI de Azure. 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 más información sobre este ejemplo, consulte Inicio rápido: Implementación de una aplicación web de Python (Django o Flask) en Azure App Service.

Tenga en cuenta que para algunos de los flujos de trabajo de Azure también puede usar la CLI de Azure desde una Azure Cloud Shell. Azure Cloud Shell es un shell interactivo, autenticado y accesible para exploradores para administrar 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 los procedimientos recomendados 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 Instalar Índice de paquetes de Python
Azure Identity 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 Microsoft Entra ID. Para la autenticación en el código de la aplicación web, se recomienda usar el DefaultAzureCredential de en el paquete de azure-identity. 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 algunas ubicaciones predefinidas para obtener información de la cuenta, por ejemplo, en variables de entorno o a partir de la autenticación de Azure CLI. Para obtener información detallada sobre la lógica de DefaultAzureCredential, 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 acceso sencillo a objetos de solicitud y respuesta HTTP. Los marcos le permiten evitar tener que reinventar la rueda para funcionalidades comunes.

Tres marcos web comunes de Python son django, flasko 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 de .

Paso 1: Descargar los marcos con pip.

pip install Django

Paso 2: Crear la aplicación Hola, Mundo.

Cree un proyecto de ejemplo mediante el comando django-admin startproject. 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