Docs Menu
Docs Home
/ /

Tutorial: Implementar una aplicación Flask en Azure Container Apps

Este tutorial muestra cómo contenerizar una aplicación Flask que usa MongoDB Atlas e implementarla en Azure Container Apps. Azure Container Apps es una plataforma sin servidor que simplifica la implementación y la administración de aplicaciones en contenedores sin necesidad de administrar la infraestructura.

Este tutorial le muestra cómo completar las siguientes tareas:

  • Verificar los prerrequisitos

  • Configurar la aplicación Flask

  • Crear un Dockerfile

  • Crear un registro de contenedores de Azure

  • Construir y enviar la imagen de Docker

  • Crear e implementar la aplicación de contenedor de Azure

1

Antes de comenzar, completa los siguientes requisitos previos:

  • Cree una aplicación Flask y MongoDB desde el Repositorio de GitHub

  • Instalar Docker Desktop

  • Instalar Microsoft Azure

  • Instalar Python 3.9 o posterior

  • Instalar Postman Desktop u otra herramienta de prueba de API

Este tutorial también requiere una cuenta de MongoDB Atlas con un clúster activo y una suscripción a Microsoft Azure.

2

Clone el repositorio de la aplicación Flask ejecutando el siguiente comando:

git clone https://github.com/mongodb-developer/atlas-flask-azure-demo

Usando la interfaz de usuario de Atlas, cree un books Colección en una base de datos llamada bookshelf. Cree algunos documentos en la colección, utilizando los siguientes documentos de ejemplo como guía:

{
"book": "The Great Gatsby",
"pages": 180,
},
{
"book": "Slaughterhouse-Five",
"pages": 215,
},
{
"book": "If Beale Street Could Talk",
"pages": 197,
}

Para iniciar la aplicación, navegue a su directorio de trabajo y ejecute el siguiente comando:

flask run

Utilice su navegador o herramienta de prueba de API para acceder al punto final /books para recuperar los documentos que creó.

3

Un Dockerfile contiene comandos para crear una imagen de Docker. Cree un archivo llamado Dockerfile en su directorio de trabajo y agréguele el siguiente contenido:

FROM python:3.9-slim-buster
WORKDIR /azurecontainerappsdemo
COPY ./config/requirements.txt /azurecontainerappsdemo/
RUN pip install -r requirements.txt
COPY . /azurecontainerappsdemo/
ENV FLASK_APP=app.py
EXPOSE 5000
CMD ["flask", "run", "--host=0.0.0.0"]

Mueva su archivo requirements.txt a una nueva carpeta llamada config para garantizar que Docker pueda localizarlo y copiarlo durante el proceso de compilación.

Este Dockerfile realiza las siguientes tareas:

  • Utiliza python:3.9-slim-buster como imagen base

  • Establece el directorio de trabajo

  • Copia e instala dependencias de Python

  • Copia archivos de aplicaciones

  • Expone el puerto 5000

  • Configura Flask para aceptar conexiones desde cualquier interfaz de red

Agregue el siguiente código al final de su archivo app.py para garantizar que Flask se ejecute en todas las interfaces de red:

if __name__ == '__main__':
app.run(host='0.0.0.0', debug=True)

Puede verificar que su imagen de Docker funcione localmente antes de implementarla en Azure. Cree la imagen ejecutando el siguiente comando:

docker build --tag azurecontainerappsdemo .

Luego, ejecute el contenedor con su cadena de conexión MongoDB ejecutando el siguiente comando:

docker run -d -p 5000:5000 -e "CONNECTION_STRING=<MONGODB_ATLAS_URI_STRING_HERE>" azurecontainerappsdemo

Una vez que el contenedor esté en funcionamiento, accede a la aplicación en http://localhost:5000 desde tu navegador.

4

Inicie sesión en el portal de Azure y navegue hasta el servicio Container Registry. Haga clic en Create y especifique las siguientes configuraciones para su registro:

  • Grupo de recursos: el nombre de su grupo de recursos

  • Nombre de registro: sirve como su URL de inicio de sesión

  • Ubicación: La ubicación de su registro

Nota

Debe utilizar los mismos valores de grupo de recursos y ubicación al crear su aplicación contenedora.

Haga clic en Review and Create.

Una vez completada la implementación, abra Visual Studio Code. Asegúrese de instalar la extensión de Docker.

Navega a Registries, inicia sesión en tu cuenta de Azure y conecta tu repositorio.

Inicie sesión en su Azure Container Registry ejecutando el siguiente comando:

docker login <azure registry url>

Tip

Puede encontrar su nombre de usuario y contraseña en la sección Access Keys de su Registro de Contenedores. Habilite Admin Access para ver las credenciales.

Importante

Si usa Windows, haga clic derecho para pegar las credenciales en la terminal para evitar errores.

5

Siga estos pasos para crear su imagen de Docker y enviarla a Azure Container Registry. Seleccione la pestaña correspondiente a su sistema operativo y arquitectura:

Instale Buildx ejecutando el siguiente comando:

docker buildx install

Habilite Buildx ejecutando el siguiente comando:

docker buildx create --use

Cree la imagen para la plataforma linux/amd64 ejecutando el siguiente comando:

docker buildx build --platform linux/amd64 --t <azure registry url>/<image name>:<image tag> --output type=docker .

Inserte la imagen en su Azure Container Registry ejecutando el siguiente comando:

docker push <azure registry url>/<image name>:<image tag>

Construya la imagen ejecutando el siguiente comando:

docker build --t <azure registry url>/<image name>:<image tag> --output type=docker .

Empuje la imagen ejecutando el siguiente comando:

docker push <azure registry url>/<image name>:<image tag>

Construya la imagen ejecutando el siguiente comando:

docker build --t <azure registry url>/<image name>:<image tag> .

Empuje la imagen ejecutando el siguiente comando:

docker push <image name>:<image tag>

Para verificar que la inserción se realizó correctamente, navegue hasta Container Registry en el portal de Azure y haga clic en Repositories para ver su imagen.

6

Vaya al servicio Container Apps en el portal de Azure y haga clic en Create.

En la sección Basics, configure los siguientes ajustes para su aplicación contenedora:

  • Suscripción: Su suscripción de Azure

  • Grupo de recursos: el mismo grupo de recursos que utilizó para su Registro de contenedores

  • Nombre de la aplicación del contenedor

  • Región: La misma región que utilizó para su Registro de contenedores

Importante

Si esta es su primera aplicación de contenedor, cree un entorno al crear la aplicación. Un entorno de aplicación de contenedor crea un límite seguro para las aplicaciones de contenedor en la misma red virtual.

Configure los siguientes ajustes en la sección App Settings:

  • Desmarcar Use quickstart image

  • Seleccione Azure Container Registry como fuente de la imagen

  • Ingrese su información de registro, imagen y etiqueta

Agregue su cadena de conexión MongoDB Atlas como una variable de entorno CONNECTION_STRING llamada.

Habilite el ingreso y configure los siguientes ajustes de ingreso:

  • Tráfico de entrada: Aceptar tráfico desde cualquier parte

  • Tipo de entrada: HTTP

  • Transporte: Auto

  • Conexiones inseguras: Permitidas

  • Puerto de destino: 5000

Haga clic en Review and Create. Una vez completada la implementación, haga clic en Go to Resource y, a continuación, en Application URL para acceder a la aplicación implementada.

Agregue /books a la URL para ver los libros que agregó anteriormente desde su base de datos MongoDB Atlas.

Para ver el código completo de este tutorial, consulte el repositorio azurecontainerappdemo en GitHub.

Para obtener más información sobre Azure Container Apps, consulte la documentación de Azure Container Apps en el sitio web de Microsoft.

Volver

Tutorial: Probar y empaquetar una biblioteca de Python

En esta página