Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

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

Este tutorial muestra cómo contenerizar una aplicación Flask que utiliza 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 contenerizadas sin necesidad de administrar la infraestructura.

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

  • Verificar los prerrequisitos

  • Configura la aplicación Flask

  • Crear un Dockerfile

  • Crear un Registro de Contenedor de Azure

  • Compila y envía la imagen Docker

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

1

Antes de comenzar, completa los siguientes requisitos previos:

  • Crear una aplicación Flask y MongoDB a partir de Repositorio de GitHub

  • Instale Docker Desktop

  • Install Microsoft Azure

  • Instala Python 3.9 o posterior

  • Instala 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

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

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

Utilizando la interfaz de usuario de Atlas, crea un books colección en una base de datos llamada bookshelf. Crea algunos documentos en la colección, utilizando los siguientes documentos de muestra 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, navega a tu directorio de trabajo y ejecuta 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 compilar una imagen de Docker. Cree un archivo llamado Dockerfile en el directorio de trabajo y, a continuación, añada 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"]

Mueve tu archivo requirements.txt a una nueva carpeta llamada config para asegurarte de 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 la 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 de cualquier interfaz de red

Agrega el siguiente código al final de tu 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 de 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

Inicia sesión en el portal de Azure y navega hasta el servicio de Registro de contenedores. Haz clic Create y especificar las siguientes configuraciones para tu registro:

  • Grupo de recursos: El nombre de tu grupo de recursos

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

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

Nota

Debe usar los mismos valores de Grupo de recursos y Ubicación cuando cree su Aplicación de contenedor.

Haga clic en Review and Create.

Una vez que se complete la implementación, abre Visual Studio Code. Asegúrate de instalar la extensión Docker.

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

Inicie sesión en su Registro de contenedores de Azure ejecutando el siguiente comando:

docker login <azure registry url>

Tip

Puedes encontrar tu nombre de usuario y contraseña en la sección Access Keys de tu Container Registry. Habilita Admin Access para ver las credenciales.

Importante

Si utiliza Windows, haga clic con el botón derecho para pegar credenciales en el terminal y así 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:

Instala Buildx ejecutando el siguiente comando:

docker buildx install

Habilite Buildx ejecutando el siguiente comando:

docker buildx create --use

Compila 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 .

Suba la imagen a su Registro de contenedor de Azure ejecutando el siguiente comando:

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

Compila la imagen ejecutando el siguiente comando:

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

Empuja la imagen ejecutando el siguiente comando:

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

Compila la imagen ejecutando el siguiente comando:

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

Empuja la imagen ejecutando el siguiente comando:

docker push <image name>:<image tag>

Para comprobar que el push se realizó correctamente, navega al Registro de contenedores en el portal de Azure y haz clic en Repositories para ver tu imagen.

6

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

En la sección Basics, configura los siguientes ajustes para tu aplicación de contenedores:

  • Suscripción: Su suscripción de Azure

  • Grupo de recursos: El mismo grupo de recursos que utilizaste para tu Registro de contenedores.

  • Nombre de la aplicación de contenedor

  • Región: la misma región que usaste para tu Registro de contenedores

Importante

Si esta es tu primera aplicación de contenedores, crea un entorno cuando crees la aplicación. Un entorno de Aplicación de contenedor crea un perímetro seguro para las aplicaciones de contenedor en la misma red virtual.

Configura la siguiente configuración en la sección App Settings:

  • Desmarcar Use quickstart image

  • Selecciona Azure Container Registry como fuente de la imagen

  • Introduce la información de tu registro, imagen y etiqueta

Añada su MongoDB Atlas cadena de conexión con el nombre CONNECTION_STRING como una variable de entorno.

Habilite el ingreso y configure la siguiente configuración de ingreso:

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

  • Tipo de ingreso: HTTP

  • Transporte: coche

  • Conexiones inseguras: Permitidas

  • Puerto de destino: 5000

Haz clic en Review and Create. Después de que se complete la implementación, haz clic en Go to Resource, luego haz clic en Application URL para acceder a tu aplicación implementada.

Agrega /books a la URL para ver los libros que agregaste previamente desde tu base de datos MongoDB Atlas.

Para ver el código completo de este tutorial, consulta el azurecontainerappdemo repositorio 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