Inicio rápido: Creación de una aplicación de Python mediante Azure App Service en Linux

En este inicio rápido se implementa una aplicación web de Python en App Service en Linux, un servicio de Azure de hospedaje de sitios web muy escalable y con aplicación automática de revisiones. La interfaz de la línea de comandos (CLI) de Azure local se puede usar en un equipo Mac, Linux o Windows para implementar un ejemplo con los marcos Flask o Django. La aplicación web que se va a configurar usa un nivel de App Service básico que acarrea un pequeño costo en la suscripción de Azure.

Configuración del entorno inicial

  1. Disponga de una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
  2. Instale Python 3.6 o una versión posterior.
  3. Instale la CLI de Azure, con la que se ejecutan comandos en cualquier shell para aprovisionar y configurar los recursos de Azure.

Abra una ventana del terminal y compruebe que la versión de Python es la 3.6 o superior:

python3 --version

Compruebe que la versión de la CLI de Azure es la 2.0.80 o posterior:

az --version

Después, inicie sesión en Azure mediante la CLI:

az login

Este comando abre un explorador que recopila las credenciales. Cuando el comando finaliza, muestra una salida JSON que contiene información sobre las suscripciones.

Una vez que haya iniciado sesión, puede ejecutar comandos de Azure con la CLI de Azure para trabajar con los recursos de su suscripción.

¿Tiene problemas? Háganoslo saber.

Clonación del ejemplo

Ejecute el comando siguiente para clonar el repositorio de ejemplo y vaya a la carpeta de ejemplo. (Instale git si aún no lo tiene).

git clone https://github.com/Azure-Samples/python-docs-hello-world
git clone https://github.com/Azure-Samples/python-docs-hello-django

El ejemplo contiene código específico del marco que Azure App Service reconoce al iniciar la aplicación. Para más información, consulte Proceso de inicio del contenedor.

¿Tiene problemas? Háganoslo saber.

Ejecución del ejemplo

  1. Vaya a la carpeta python-docs-hello-world:

    cd python-docs-hello-world
    
  2. Cree un entorno virtual e instale las dependencias:

    # Linux systems only
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
    # Git Bash on Windows only
    py -3 -m venv .venv
    source .venv\\scripts\\activate
    pip install -r requirements.txt
    

    Si se encuentra en un sistema Windows y ve un error que dice que el origen no se reconoce como un comando interno o externo, asegúrese de que trabaja en el shell de Bash de Git o use los comandos mostrados en la pestaña Cmd anterior.

    Si encuentra "[Errno 2] No se encontró el archivo o directorio: 'requirements.txt'", asegúrese de que se encuentra en la carpeta python-docs-hello-world.

  3. Ejecute el servidor de desarrollo.

    flask run
    

    De forma predeterminada, el servidor supone que el módulo de entrada de la aplicación está en app.py, como se usa en el ejemplo.

    (Si usa un nombre de módulo diferente, establezca la variable de entorno FLASK_APP en ese nombre).

    Si se produce un error que dice que no se ha podido encontrar una aplicación Flask, y que no ha proporcionado la variable de entorno "FLASK_APP" y no se ha encontrado un módulo "wsgi.py" o "app.py" en el directorio actual, asegúrese de que se encuentra en la carpeta python-docs-hello-world que contiene el ejemplo.

  4. Abra un explorador web y vaya a la aplicación de ejemplo en http://localhost:5000/. La aplicación muestra el mensaje Hola mundo.

    Ejecución de una aplicación de Python de ejemplo en el entorno local

  5. En la ventana de terminal, presione Ctrl+C para salir del servidor de desarrollo.

  1. Vaya a la carpeta python-docs-hello-django:

    cd python-docs-hello-django
    
  2. Cree un entorno virtual e instale las dependencias:

    # Linux systems only
    python3 -m venv .venv
    source .venv/bin/activate
    pip install -r requirements.txt
    
    # Git Bash on Windows only
    py -3 -m venv .venv
    source .venv\\scripts\\activate
    pip install -r requirements.txt
    

    Si se encuentra en un sistema Windows y ve un error que dice que el origen no se reconoce como un comando interno o externo, asegúrese de que trabaja en el shell de Bash de Git o use los comandos mostrados en la pestaña Cmd anterior.

    Si encuentra "[Errno 2]: No se encontró el archivo o directorio: 'requirements.txt'", asegúrese de que se encuentra en la carpeta python-docs-hello-django.

  3. Ejecute el servidor de desarrollo.

    python manage.py runserver
    
  4. Abra un explorador web y vaya a la aplicación de ejemplo en http://localhost:8000/. La aplicación muestra el mensaje Hola mundo.

    Ejecución de una aplicación de Python de ejemplo en el entorno local

  5. En la ventana de terminal, presione Ctrl+C para salir del servidor de desarrollo.

¿Tiene problemas? Háganoslo saber.

Implementación del ejemplo

Implemente el código en la carpeta local (python-docs-hello-world) mediante el comando az webapp up:

az webapp up --sku B1 --name <app-name>
  • Si no se reconoce el comando az, asegúrese de que tiene instalada la CLI de Azure tal y como se describe en Configuración del entorno inicial.
  • Si no se reconoce el comando webapp, es porque la versión de la CLI de Azure es 2.0.80 o posterior. De lo contrario, instale la versión más reciente.
  • Reemplace <app_name> por un nombre que sea único en todo Azure (los caracteres válidos son a-z, 0-9 y - ). Un buen patrón es usar una combinación del nombre de la empresa y un identificador de la aplicación.
  • El argumento --sku B1 crea la aplicación web en el plan de tarifa básico, que genera un pequeño costo por hora. Omita este argumento para usar un nivel Premium más rápido.
  • Opcionalmente, incluya el argumento --location <location-name>, donde <location_name> es una región de Azure disponible. Puede recuperar una lista de las regiones permitidas para su cuenta de Azure mediante la ejecución del comando az account list-locations.
  • Si ve el error "No se pudo detectar automáticamente la pila en tiempo de ejecución de la aplicación", asegúrese de que ejecuta el comando en la carpeta python-docs-hello-world (Flask) o en la carpeta python-docs-hello-django (Django) que contiene el archivo requirements.txt. (Consulte Solución de problemas de detección automática con az webapp up (GitHub)).

El comando puede tardar varios minutos en completarse. Mientras se ejecuta, proporciona mensajes sobre cómo crear el grupo de recursos, el plan de App Service y la aplicación de hospedaje, configurar el registro y, a continuación, realizar la implementación del archivo ZIP. A continuación, se muestra el mensaje "Puede iniciar la aplicación en http://<nombre_de_la_aplicación>.azurewebsites.net", que es la dirección URL de la aplicación en Azure.

Salida de ejemplo del comando az webapp up

¿Tiene problemas? Consulte primero la Guía de solución de problemas, de lo contrario, háganoslo saber.

Nota

El comando az webapp up realiza las acciones siguientes:

Navegación hasta la aplicación

Vaya a la aplicación implementada mediante el explorador web en la dirección URL http://<app-name>.azurewebsites.net. La aplicación puede tardar un minuto o dos en iniciarse, por lo que si ve una página de aplicación predeterminada, espere un minuto y actualice el explorador.

El código de ejemplo de Python se ejecuta en un contenedor de Linux en App Service con una imagen integrada.

Ejecución de una aplicación de Python de ejemplo en Azure

¡Enhorabuena! Ha implementado su primera aplicación Python en App Service en Linux.

¿Tiene problemas? Consulte primero la Guía de solución de problemas, de lo contrario, háganoslo saber.

Reimplementación de actualizaciones

En esta sección, realizará un pequeño cambio de código y, a continuación, volverá a implementar el código en Azure. Este cambio de código incluye una instrucción print para generar la salida de registro con la que trabajará en la sección siguiente.

Abra app.py en un editor y actualice la función hello para que coincida con el código siguiente.

def hello():
    print("Handling request to home page.")
    return "Hello, Azure!"

Abra hello/views.py en un editor y actualice la función hello para que coincida con el código siguiente.

def hello(request):
    print("Handling request to home page.")
    return HttpResponse("Hello, Azure!")

Guarde los cambios y vuelva a implementar la aplicación con el comando az webapp up:

az webapp up

Este comando utiliza valores que se almacenan en caché de forma local en el archivo .azure/config, incluidos el nombre de la aplicación, el grupo de recursos y el plan de App Service.

Una vez completada la implementación, vuelva a la ventana del explorador abierta en http://<app-name>.azurewebsites.net. Actualice la página, lo que debería mostrar el mensaje modificado:

Ejecución de una aplicación de Python de ejemplo actualizada en Azure

¿Tiene problemas? Consulte primero la Guía de solución de problemas, de lo contrario, háganoslo saber.

Sugerencia

Visual Studio Code proporciona extensiones eficaces para Python y Azure App Service que simplifican el proceso de implementación de aplicaciones web de Python en App Service. Para más información, consulte Deploy Python apps to App Service from Visual Studio Code (Implementación de aplicaciones de Python en App Service desde Visual Studio Code).

Transmisión de registros

Puede acceder a los registros de consola generados desde dentro de la aplicación y del contenedor en que esta se ejecuta. Los registros incluyen todas las salidas generadas mediante instrucciones print.

Para transmitir registros, ejecute el comando az webapp log tail:

az webapp log tail

También puede incluir el parámetro --logs con el comando az webapp up para abrir automáticamente la secuencia de registro en la implementación.

Actualice la aplicación en el explorador para que se generen registros de la consola, que incluyen mensajes que describen las solicitudes HTTP a la aplicación. Si no aparece la salida inmediatamente, inténtelo de nuevo en 30 segundos.

También puede inspeccionar los archivos de registro desde el explorador en https://<app-name>.scm.azurewebsites.net/api/logs/docker.

Para detener el streaming de registros en cualquier momento, presione Ctrl+C en el terminal.

¿Tiene problemas? Consulte primero la Guía de solución de problemas y, si eso no funciona, háganoslo saber.

Administración de la aplicación de Azure

Vaya a Azure Portal para administrar la aplicación que ha creado. Busque y seleccione App Services.

Ir a App Services en Azure Portal

Seleccione el nombre de la aplicación de Azure.

Aplicación de Python en App Services desde Azure Portal

Al seleccionar la aplicación, se abre la página Información general, donde puede realizar tareas de administración básicas como examinar, detener, iniciar, reiniciar y eliminar.

Administración de la aplicación de Python en la página de información general de Azure Portal

El menú de App Service proporciona distintas páginas para configurar la aplicación.

¿Tiene problemas? Consulte primero la Guía de solución de problemas y, si eso no funciona, háganoslo saber.

Limpieza de recursos

En los pasos anteriores, creó recursos de Azure en un grupo de recursos. El grupo de recursos tiene un nombre como "appsvc_rg_Linux_CentralUS", en función de su ubicación. Si mantiene la aplicación web en ejecución, se generarán costos continuos (consulte Precios de App Service).

Si prevé que no necesitará estos recursos en el futuro, ejecute el siguiente comando para eliminar el grupo de recursos:

az group delete --no-wait

Este comando usa el nombre del grupo de recursos almacenado en la memoria caché del archivo .azure/config.

El argumento --no-wait permite la devolución del comando antes de que se complete la operación.

¿Tiene problemas? Póngase en contacto con nosotros.

Pasos siguientes