Introducción a Python en Azure

Use este documento como lista de comprobación y una guía a medida que empiece a desarrollar aplicaciones de Python que se hospedarán en la nube o usen servicios en la nube. Si sigue los vínculos e instrucciones de este documento, hará lo siguiente:

  • tiene una comprensión fundamental de lo que es la nube y cómo diseña la aplicación con la nube en mente.
  • configure el entorno de desarrollo local, incluidas las herramientas y las bibliotecas que necesitará para crear aplicaciones basadas en la nube.
  • comprenda el flujo de trabajo al desarrollar aplicaciones basadas en la nube.

Fase 1: Conceptos de aprendizaje

Si no está familiarizado con el desarrollo de aplicaciones para la nube, esta breve serie de artículos con vídeos le ayudará a ponerse al día rápidamente.

Una vez que comprenda los conceptos básicos del desarrollo de aplicaciones para la nube, querrá configurar el entorno de desarrollo y seguir un inicio rápido o tutorial para compilar la primera aplicación.

Fase 2: Configuración del entorno local de Python para el desarrollo de Azure

Para desarrollar aplicaciones de Python con Azure, primero quiere configurar el entorno de desarrollo local. La configuración incluye la creación de una cuenta de Azure, la instalación de herramientas para el desarrollo de Azure y la conexión de esas herramientas a su cuenta de Azure.

El desarrollo en Azure requiere Python 3.8 o posterior. Para comprobar la versión de Python en la estación de trabajo, en una ventana de consola, escriba el comando python3 --version para macOS/Linux o py --version para Windows.

Creación de una cuenta de Azure

Para desarrollar aplicaciones de Python con Azure, necesita una cuenta de Azure. La cuenta de Azure es las credenciales que se usan para iniciar sesión en Azure con y con lo que se usa para crear recursos de Azure.

Si usa Azure en el trabajo, póngase en contacto con el administrador de la nube de su empresa para obtener las credenciales que se usan para iniciar sesión en Azure.

De lo contrario, puede crear una cuenta de Azure gratuitamente y recibir 12 meses de servicios populares gratis y un crédito de 200 USD para explorar Azure durante 30 días.

Uso de Azure Portal

Una vez que tenga sus credenciales, puede iniciar sesión en Azure Portal en https://portal.azure.com. Azure Portal suele ser una manera más sencilla de empezar a trabajar con Azure, especialmente si no está familiarizado con Azure y el desarrollo en la nube. En Azure Portal, puede realizar varias tareas de administración, como crear y eliminar recursos.

Si ya tiene experiencia con el desarrollo en la nube y Azure, probablemente empezará a usar herramientas, como Visual Studio Code y la CLI de Azure. En los artículos del Centro para desarrolladores de Python se muestra cómo trabajar con Azure Portal, Visual Studio Code y la CLI de Azure.

Usar Visual Studio Code

Puede usar cualquier editor o IDE para escribir código de Python al desarrollar para Azure. Sin embargo, puede considerar la posibilidad de usar Visual Studio Code para el desarrollo de Azure y Python. Visual Studio Code proporciona muchas extensiones y personalizaciones para Azure y Python, lo que facilita el ciclo de desarrollo y la implementación desde un entorno local a Azure.

Para el desarrollo de Python mediante Visual Studio Code, instale:

  • Extensión de Python. Esta extensión incluye IntelliSense (Pylance), Linting, Debugging (multiproceso, remoto), Cuadernos de Jupyter Notebook, formato de código, refactorización, pruebas unitarias, etc.

  • Paquete de extensiones de Azure Tools. El paquete de extensiones contiene extensiones para trabajar con App de Azure Service, Azure Functions, Azure Storage, Azure Cosmos DB y Azure Virtual Machines en un paquete práctico. Las extensiones de Azure facilitan la detección e interacción con Azure.

Para instalar extensiones desde Visual Studio Code:

  1. Presione Ctrl + Mayús + X para abrir la ventana Extensiones.
  2. Busque la extensión Azure Tools.
  3. Seleccione el botón Instalar.

Screenshot of the Visual Studio Code showing extensions panel searching for the Azure Tools extension pack.

Para obtener más información sobre la instalación de extensiones en Visual Studio Code, consulte el documento Marketplace de extensiones en el sitio web de Visual Studio Code.

Después de instalar la extensión azure Tools, inicie sesión con su cuenta de Azure. En el panel izquierdo, verá un icono de Azure. Seleccione este icono y aparecerá un panel de control de los servicios de Azure. Elija Iniciar sesión en Azure... para completar el proceso de autenticación.

Screenshot of the Visual Studio Code showing how to sign-in the Azure tools to Azure.

Nota:

Si ve el error "No se encuentra la suscripción con el nombre [identificador de suscripción]", puede deberse a que está detrás de un servidor proxy y no puede acceder a la API de Azure. Configure las variables de entorno HTTP_PROXY y HTTPS_PROXY con la información del servidor proxy en el terminal:

# Windows
set HTTPS_PROXY=https://username:password@proxy:8080
set HTTP_PROXY=http://username:password@proxy:8080
# macOS/Linux
export HTTPS_PROXY=https://username:password@proxy:8080
export HTTP_PROXY=http://username:password@proxy:8080

Uso de la CLI de Azure

Además de Azure Portal y Visual Studio Code, Azure también ofrece la herramienta de línea de comandos de la CLI de Azure para crear y administrar recursos de Azure. La CLI de Azure proporciona ventajas como eficacia, repetibilidad y la capacidad de crear scripts para tareas periódicas. En la práctica, la mayoría de los desarrolladores usan tanto Azure Portal como la CLI de Azure.

Después de instalar la CLI de Azure, inicie sesión en su cuenta de Azure desde la CLI de Azure escribiendo el comando az login en una ventana de terminal de la estación de trabajo.

az login

La CLI de Azure abrirá el explorador predeterminado para completar el proceso de inicio de sesión.

Configuración del entorno virtual de Python

Al crear aplicaciones de Python para Azure, se recomienda crear un entorno virtual para cada aplicación. Un entorno virtual es un directorio independiente para una versión concreta de Python, además de los demás paquetes necesarios para esa aplicación.

Para crear un entorno virtual, siga estos pasos.

  1. Abra un terminal o un símbolo del sistema.

  2. Cree una carpeta para el proyecto.

  3. Cree el entorno virtual:

    # py -3 uses the global python interpreter. You can also use python3 -m venv .venv.
    py -3 -m venv .venv
    

    Este comando ejecuta el módulo de Python venv y crea un entorno virtual en una carpeta ".venv". Normalmente, los archivos .gitignore tienen una entrada ".venv" para que el entorno virtual no se proteja con las comprobaciones de código.

  4. Active el entorno virtual:

    .venv\Scripts\activate
    

    Nota:

    Si usa el shell de comandos de Windows, active el entorno virtual con .venv\Scripts\activate. Si usa Git Bash en Visual Studio Code en Windows, use el comando source .venv/Scripts/activate en su lugar.

Una vez que se activa ese entorno (algo que Visual Studio Code hace automáticamente), al ejecutar pip install se instala una biblioteca únicamente en ese entorno. El código de Python que se ejecuta en un entorno virtual usa las versiones de paquete específicas instaladas en ese entorno virtual. El uso de entornos virtuales diferentes permite que diferentes aplicaciones usen versiones diferentes de un paquete, lo que a veces es necesario. Para más información sobre los entornos virtuales, consulte Entornos virtuales y paquetes en la documentación de Python.

Por ejemplo, si los requisitos están en un archivo requirements.txt , en el entorno virtual activado, puede instalarlos con:

pip install -r requirements.txt

Fase 3: Descripción del flujo de trabajo de desarrollo de Azure

Artículo anterior: aprovisionamiento, acceso y administración de recursos

Ahora que entiende el modelo de servicios y recursos de Azure, puede entender el flujo general del desarrollo de aplicaciones en la nube con Azure: aprovisionamiento, codificación, pruebas, implementacióny administración.

Paso Herramientas principales Actividades
Aprovisionar . CLI de Azure, Azure Portal, extensiones de herramientas de Azure de VS Code, Cloud Shell, scripts de Python mediante bibliotecas de administración de Azure SDK Crear grupos de recursos y crear recursos en esos grupos; configure los recursos para que estén listos para su uso desde el código de la aplicación o listos para recibir código de Python en las implementaciones.
Código Editor de código (como Visual Studio Code y PyCharm), bibliotecas cliente del SDK de Azure, documentación de referencia Escriba código de Python mediante las bibliotecas cliente del SDK de Azure para interactuar con los recursos aprovisionados.
Prueba Entorno de ejecución de Python, depurador Ejecutar código de Python localmente en recursos en la nube activos (normalmente recursos de desarrollo o pruebas en lugar de recursos de producción). El propio código aún no está hospedado en Azure, lo que le ayuda a depurar e iterar rápidamente.
Implementar VS Code, CLI de Azure, Acciones de GitHub, Azure Pipelines Una vez que el código se ha probado localmente, implementarlo en un servicio de hospedaje de Azure adecuado en el que el propio código pueda ejecutarse en la nube. El código implementado se ejecuta normalmente en recursos de ensayo o de producción.
Administración CLI de Azure, Azure Portal, VS Code, scripts de Python, Azure Monitor Supervisar el rendimiento y la capacidad de respuesta de la aplicación, realizar ajustes en el entorno de producción, migrar las mejoras de nuevo al entorno de desarrollo para la siguiente ronda de aprovisionamiento y desarrollo.

Paso 1: Aprovisionamiento y configuración de recursos

Tal como se describe en el artículo anterior de esta serie, el primer paso en el desarrollo de cualquier aplicación es aprovisionar y configurar los recursos que constituyen el entorno de destino de la aplicación.

El aprovisionamiento comienza por la creación de un grupo de recursos en una región de Azure adecuada. Puede crear un grupo de recursos a través de Azure Portal, VS Code con extensiones de Azure Tools, la CLI de Azure o con un script personalizado que use las bibliotecas de administración de Azure SDK (o api REST).

En ese grupo de recursos, aprovisiona y configura los recursos individuales que necesita, de nuevo mediante el portal, VS Code, la CLI o el SDK de Azure. (De nuevo, consulte Guía de introducción para desarrolladores de Azure para obtener información general sobre los tipos de recursos disponibles).

La configuración incluye el establecimiento de directivas de acceso que controlan qué identidades (entidades de servicio y/o identificadores de aplicación) pueden acceder a esos recursos. Las directivas de acceso se administran a través del control de acceso basado en rol (RBAC) de Azure; algunos servicios también tienen controles de acceso más específicos. Como desarrollador en la nube que trabaja con Azure, asegúrese de familiarizarse con RBAC de Azure porque lo usa con casi cualquier recurso que tenga problemas de seguridad.

En la mayoría de los escenarios de aplicación, normalmente se crean scripts de aprovisionamiento con la CLI de Azure o el código de Python mediante las bibliotecas de administración del SDK de Azure. Estos scripts describen la totalidad de las necesidades de recursos de la aplicación (en esencia, definen el equipo en la nube personalizado en el que va a implementar la aplicación). Un script le permite volver a crear fácilmente el mismo conjunto de recursos dentro de un entorno diferente, como desarrollo, prueba, ensayo y producción. Al automatizar, puede evitar realizar manualmente muchos pasos repetidos en Azure Portal o VS Code. Estos scripts también facilitan el aprovisionamiento de un entorno en una región diferente o el uso de distintos grupos de recursos. Si además mantiene estos scripts en repositorios de control de código fuente, también tiene una auditoría y un historial de cambios completos.

Paso 2: Escribir el código de la aplicación para usar recursos

Una vez que haya aprovisionado los recursos que necesita para la aplicación, escriba el código de la aplicación para que funcione con los aspectos en tiempo de ejecución de esos recursos.

Por ejemplo, en el paso de aprovisionamiento, es posible que haya creado una cuenta de almacenamiento de Azure, creado un contenedor de blobs dentro de esa cuenta y establecido directivas de acceso para la aplicación en ese contenedor. Este proceso de aprovisionamiento se muestra en Ejemplo: Aprovisionamiento de Azure Storage con las bibliotecas de Azure para Python. Desde el código, ahora puede realizar la autenticación con esa cuenta de almacenamiento y después crear, actualizar o eliminar blobs en ese contenedor. Este proceso en tiempo de ejecución se muestra en Ejemplo: Aprovisionamiento de Azure Storage con las bibliotecas de Azure para Python. Del mismo modo, podría haber aprovisionado una base de datos con un esquema y los permisos adecuados (como se muestra en Ejemplo: Uso de las bibliotecas de Azure para aprovisionar una base de datos), para que el código de la aplicación pueda conectarse a la base de datos y realizar las consultas de creación, lectura, actualización y eliminación habituales.

Normalmente, el código de la aplicación usa variables de entorno para identificar los nombres y las direcciones URL de los recursos que se van a usar. Las variables de entorno permiten cambiar fácilmente entre entornos en la nube (desarrollo, prueba, ensayo y producción) sin realizar cambios en el código. Los diversos servicios de Azure que hospedan el código de la aplicación proporcionan un medio para definir las variables necesarias. Por ejemplo, en App de Azure Service (para hospedar aplicaciones web) y Azure Functions (proceso sin servidor para Azure), se define la configuración de la aplicación a través de Azure Portal, VS Code o la CLI de Azure, que después aparecen en el código como variables de entorno.

Como desarrollador de Python, es probable que escriba el código de la aplicación en Python mediante las bibliotecas cliente del SDK de Azure para Python. Dicho esto, cualquier parte independiente de una aplicación en la nube se puede escribir en cualquier lenguaje compatible. Si está trabajando en un equipo con varios lenguajes de programación, es posible que algunas partes de la aplicación usen Python, algunos JavaScript, algunos Java y otros C#.

El código de aplicación puede usar las bibliotecas de administración de Azure SDK para realizar operaciones de aprovisionamiento y administración según sea necesario. Los scripts de aprovisionamiento, de forma similar, pueden usar las bibliotecas cliente del SDK para inicializar recursos con datos específicos o realizar tareas de limpieza en recursos en la nube incluso cuando esos scripts se ejecutan localmente.

Paso 3: Probar y depurar el código de la aplicación localmente

Normalmente, a los desarrolladores les gusta probar el código de la aplicación en sus estaciones de trabajo locales antes de implementar ese código en la nube. Probar el código de la aplicación localmente significa que normalmente está accediendo a otros recursos que ya ha aprovisionado en la nube, como el almacenamiento, las bases de datos, etc. La diferencia es que aún no está ejecutando el código de la aplicación en un servicio en la nube.

Al ejecutar el código de forma local, también puede sacar el máximo partido de las características de depuración que ofrecen herramientas como Visual Studio Code y administrar el código en un repositorio con control de código fuente.

No es necesario modificar el código en absoluto para las pruebas locales: Azure es totalmente compatible con el desarrollo local y la depuración mediante el mismo código que se implementa en la nube. Las variables de entorno son de nuevo la clave: en la nube, el código puede acceder a la configuración del recurso de hospedaje como variables de entorno. Al crear esas mismas variables de entorno localmente, el mismo código se ejecuta sin modificaciones. Este patrón funciona para las credenciales de autenticación, las direcciones URL de los recursos, las cadenas de conexión y cualquier otra configuración, lo que facilita el uso de los recursos en un entorno de desarrollo al ejecutar el código localmente y los recursos de producción una vez que el código esté implementado en la nube.

Paso 4: Implementación del código de la aplicación en Azure

Cuando haya probado el código de forma local, estará preparado para implementar el código en el recurso de Azure que haya aprovisionado para hospedarlo. Por ejemplo, si está escribiendo una aplicación web de Django, implemente ese código en una máquina virtual (donde usted proporciona su propio servidor web) o en Azure App Service (que le proporciona a usted el servidor web). Una vez implementado, el código se ejecuta en el servidor en lugar de en la máquina local y puede acceder a todos los recursos de Azure para los que está autorizado.

Como se ha indicado en la sección anterior, en los procesos de desarrollo típicos, primero se implementa el código en los recursos que haya aprovisionado en un entorno de desarrollo. Después de una serie de pruebas, se implementa el código en los recursos de un entorno de ensayo y se hace que la aplicación esté disponible para el equipo de pruebas y quizás también para los clientes de la versión preliminar. Cuando esté satisfecho con el rendimiento de la aplicación, puede implementar el código en el entorno de producción. Todas estas implementaciones también se pueden automatizar mediante la integración continua y la implementación continua mediante Azure Pipelines y Acciones de GitHub.

Sin embargo, una vez implementado el código en la nube, realmente se convierte en una aplicación en la nube que se ejecuta completamente en los equipos servidor de los centros de datos de Azure.

Paso 5: Administrar, supervisar y revisar

Después de la implementación, desea asegurarse de que la aplicación funciona como debe y que responde a las solicitudes de los clientes y utiliza los recursos de manera eficaz (y con el costo más reducido). Puede administrar cómo Azure escala automáticamente la implementación según sea necesario y puede recopilar y supervisar datos de rendimiento con Azure Portal, VS Code, la CLI de Azure o scripts personalizados escritos con las bibliotecas de Azure SDK. Después, puede realizar ajustes en tiempo real en los recursos aprovisionados para optimizar el rendimiento, también con las mismas herramientas.

La supervisión proporciona información sobre cómo puede reestructurar su aplicación en la nube. Por ejemplo, puede ver que determinadas partes de una aplicación web (por ejemplo, un grupo de puntos de conexión de API) solo se utilizan ocasionalmente en comparación con las partes principales. Después, puede optar por implementar esas API por separado como Azure Functions sin servidor. Como funciones, tienen sus propios recursos de proceso de respaldo que no compiten con la aplicación principal, sino que solo cuestan centavos al mes. La aplicación principal tiene la capacidad de responder cada vez a más clientes sin tener que escalar verticalmente a un nivel de costo superior.

Pasos siguientes

Ya está familiarizado con la estructura básica de Azure y el flujo de desarrollo general: aprovisione recursos, escriba y pruebe el código, implemente el código en Azure y, después, supervise y administre esos recursos.