Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta serie de tutoriales se muestra cómo incluir en contenedores una aplicación web de Python y, a continuación, ejecutarla localmente o implementarla en Azure App Service. App Service Web App for Containers le permite centrarse en la creación de contenedores sin preocuparse de administrar y mantener un orquestador de contenedores subyacente. Al compilar aplicaciones web, Azure App Service es una buena opción para realizar los primeros pasos con los contenedores. Esta aplicación web de contenedor puede usar una instancia local de MongoDB o MongoDB para Azure Cosmos DB para almacenar datos. Para obtener más información sobre el uso de contenedores en Azure, consulte Comparación de las opciones de contenedor de Azure.
En este tutorial:
Compile y ejecute un contenedor Docker localmente. Consulte Compilación y ejecución de una aplicación web de Python en contenedores localmente.
Compile una imagen de contenedor Docker directamente en Azure. Consulte Compilación de una aplicación web de Python en contenedor en Azure.
Configure una instancia de App Service para crear una aplicación web basada en la imagen de contenedor de Docker. Consulte Implementación de una aplicación de Python en contenedor en App Service.
Después de completar los artículos de esta serie de tutoriales, tendrá la base para la integración continua (CI) y la implementación continua (CD) de una aplicación web de Python en Azure.
Introducción al servicio
El diagrama de servicio que admite este tutorial muestra dos entornos: entorno de desarrollador y entorno de Azure. Resalta los servicios clave de Azure que se usan en el proceso de desarrollo.
Entorno para desarrolladores
Entre los componentes que admiten el entorno para desarrolladores de este tutorial se incluyen:
sistema de desarrollo local: un equipo personal que se usa para codificar, compilar y probar el contenedor de Docker.
contenedorización de Docker: Docker se emplea para empaquetar la aplicación y sus dependencias en un contenedor portátil.
Herramientas de desarrollo: incluye un editor de código y otras herramientas necesarias para el desarrollo de software.
instancia local de MongoDB: una base de datos local de MongoDB utilizada para el almacenamiento de datos durante el desarrollo.
Conexión de MongoDB: acceso a la base de datos local de MongoDB proporcionada a través de una cadena de conexión.
Entorno de Azure
Los componentes que admiten el entorno de Azure en este tutorial incluyen:
-
- En Azure App Service, Web App for Containers usa la tecnología de contenedor de Docker para proporcionar hospedaje de contenedores de imágenes integradas e imágenes personalizadas mediante Docker.
- Web App for Containers usa un webhook en Azure Container Registry (ACR) para recibir notificaciones de nuevas imágenes. Cuando se inserta una nueva imagen en el registro, la notificación de webhook desencadena App Service para extraer la actualización y reiniciar la aplicación.
Registro de contenedores de Azure
Azure Container Registry permite almacenar y administrar imágenes de Docker y sus componentes en Azure. Proporciona un registro ubicado cerca de las implementaciones de Azure que ofrece la capacidad de controlar el acceso mediante los permisos y grupos de Microsoft Entra.
En este tutorial, Azure Container Registry es el origen del registro, pero también puede usar Docker Hub o un registro privado con modificaciones menores.
-
Azure Cosmos DB para MongoDB es una base de datos NoSQL que se usa en este tutorial para el almacenamiento de datos.
La aplicación en contenedor se conecta y accede al recurso de Azure Cosmos DB mediante una cadena de conexión, que se almacena como una variable de entorno y se proporciona a la aplicación.
Autenticación
En este tutorial, creará una imagen de Docker localmente o en Azure y, a continuación, la implementará en Azure App Service. App Service extrae la imagen de contenedor de un repositorio de Azure Container Registry.
Para extraer imágenes del repositorio de forma segura, App Service usa una identidad administrada asignada por el sistema. Esta identidad administrada concede a la aplicación web permisos para interactuar con otros recursos de Azure, lo que elimina la necesidad de credenciales explícitas. En este tutorial, la identidad administrada se configura durante la instalación de App Service para usar una imagen de contenedor del registro.
La aplicación web de ejemplo del tutorial usa MongoDB para almacenar datos. El código de ejemplo se conecta a Azure Cosmos DB a través de una cadena de conexión.
Prerrequisitos
Para completar este tutorial, necesita lo siguiente:
Una cuenta de Azure donde puede crear:
- Registro de contenedores de Azure
- Azure App Service
- Azure Cosmos DB para MongoDB (o acceso a un equivalente). Para crear una base de datos de Azure Cosmos DB para MongoDB, siga los pasos descritos en la parte 2 de este tutorial.
Visual Studio Code o CLI de Azure, según la herramienta que prefiera. Si usa Visual Studio Code, necesita la extensión de Docker y la extensión de Azure App Service .
Estos paquetes de Python:
- Shell de MongoDB (mongosh) para conectarse a MongoDB.
- Flask o Django como marco web.
Docker instalado localmente.
Aplicación de ejemplo
El resultado final de este tutorial es una aplicación de revisión de restaurantes, implementada y en ejecución en Azure, que tiene un aspecto similar a la siguiente captura de pantalla.
En este tutorial, creará una aplicación de revisión de restaurantes de Python que usa MongoDB para el almacenamiento de datos. Para ver una aplicación de ejemplo con PostgreSQL, consulte Creación e implementación de una aplicación web de Flask en Azure con una identidad administrada.