No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Flask

Curso de Flask

Bernardo Cassina

Bernardo Cassina

Deploy a producción con App Engine

35/36
Recursos

¿Cómo hacer deploy a App Engine?

Para llevar tu aplicación a un entorno de producción confiable y escalable, Google App Engine se presenta como una excelente opción. Aquí te guiaré a través del proceso, paso a paso, para realizar el despliegue utilizando App Engine.

¿Qué es el archivo AppYAML y por qué es importante?

AppYAML es el archivo de configuración clave que App Engine utiliza para saber cómo debe ejecutarse tu aplicación. Este archivo define el entorno de runtime y otras configuraciones necesarias para el despliegue de la aplicación.

  • Runtime definido: En este contexto, utilizamos Python 3.7. Sin embargo, App Engine también soporta Python 2.7, Java, Go y otros lenguajes, lo que permite flexibilidad en el desarrollo.
  • Configuración sencilla: El AppYAML simplifica el despliegue, haciendo innecesario configurar o acceder a máquinas virtuales para manejar la aplicación.

Aquí un ejemplo básico del archivo app.yaml:

runtime: python37

¿Cómo desplegar la aplicación con Gcloud?

El proceso de despliegue en App Engine utiliza la herramienta de línea de comandos Gcloud. Es esencial que todos los archivos de tu aplicación se suban a Google Cloud Storage para que App Engine los ejecute.

  1. Configuración del proyecto: Asegúrate de estar en el proyecto adecuado ejecutando gcloud config list para verificar las configuraciones actuales de tu entorno.
  2. Comando de despliegue:
    gcloud app deploy app.yaml
    
    Este comando iniciará el proceso de despliegue y confirmarás que deseas realizarlo.

¿Qué hacer si hay problemas de API durante el despliegue?

Si surge un error indicando que una API no está activada, sigue estos pasos:

  1. Activación de APIs necesarias: Normalmente, se te proporcionará una URL en la consola para habilitar la API pertinente desde la consola de Google. Asegúrate de habilitar todas las APIs que puedan ser necesarias para tu aplicación.

¿Qué beneficios ofrece App Engine?

App Engine facilita el manejo de tu aplicación en un entorno de producción sin necesidad de configuraciones extensas:

  • Autoescalable: App Engine ajusta automáticamente los recursos según la demanda de usuarios, eliminando la preocupación de escalar manualmente tu infraestructura.
  • Sin configuraciones de máquinas: Al realizar un despliegue en App Engine, evitas la configuración o gestión directa de máquinas virtuales.

¿Cómo visualizar y administrar el despliegue?

Post-deploy, puedes navegar y verificar el estado de tu aplicación:

  1. Acceso directo:
    • Utiliza el comando gcloud app browse para abrir la URL de tu aplicación en el navegador.
  2. Gestión de versiones:
    • Para desplegar una nueva versión, usa:
      gcloud app deploy app.yaml --version [VERSION_NUMBER]
      
      Este comando permite gestionar múltiples versiones de tu aplicación fácilmente, garantizando siempre la disponibilidad de una versión estable para tus usuarios.

Al finalizar, habrás completado el despliegue exitoso de tu aplicación en App Engine, lo que te permitirá enfocarte en mejorarla y enriquecer la experiencia del usuario. ¡Sigue explorando y aprendiendo más sobre Gcloud con cursos especializados para maximizar el potencial de tus aplicaciones!

Aportes 47

Preguntas 11

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Casi no lo logro 😭😭 pero acá llegué

gracias por el curso , aprendí a punta de mil errores, muy interesante el uso de Flask y la parte de deploy

Después de casi 4 meses o más, finalizo este curso. Todos van a su ritmo, que esto no desmoralice a nadie. Flask es muy bueno, me ha ayudado en algunos proyectos que se están haciendo en la empresa en qué trabajo. Qué chimba, bacano y lindo contar con esta plataforma. No escatimo un peso de lo que pagué por la suscripción. Gracias Bernardo.

1.Crear archivo app.yaml —> runtime: python37
2.Crear nuevo proyecto en gcloud para producción
3.Cambiar el proyecto actual de gcloud : gcloud init
4.Ejecutar el comando: gcloud app deploy app.yaml
5.Activar firestore en gcloud
6.Ejecutar el comando: gcloud app browse
7. Ingresar a la ruta generada por gcloud y probar la app.

Me cobran por el deploy 😦

Seria super interesante si pudieran actualizar este curso, o si pudieran hacer un curso de Fastapi :3

No es necesario administrar un servidor web o mantener una máquina Linux y mucho menos pagar costosos deploys.

No es necesario instalar parches de seguridad y configuraciones locales es correr tu código python en cualquier lugar… Simplemente revisa: https://www.pythonanywhere.com/

No se puede habilitar si no tenemos cuenta de pago 😦

Y que me bota el error 500 en el servidor… Bueno, ya sé que el template sí funcionaba :'v


yo hice el deploy en render y si se me lio un poco, pero mas que nada fue por que desconocía algunas cosas básicas pero en esencia es muy fácil desplegar bueno les dejo la pagina ya desplegada y el código en mi github
 
Para los que le entre la curiosidad de como hice el daploy les redacto el como lo hice:

  1. De primeras deben de hacerse una cuenta en render en el apartado de GET STARTED FOR FREE
  2. A lado del su nombre aparece la opción de New hacemos click y escojemos la opcion de web service
  3. Conectamos con nuestra cuenta de GitHub y escogemos el repo a subir y le damos a connect
  4. asignamos un nombre
  5. en esta parte solo hay que introducir el comando gunicorn main:app esto en caso de que hayas descidido llamar a tu archivo principal main,py si lo llamaste app o run o lo que sea pues lo pones como lo hayas llamado gunicorn algo:app
  6. creo que esta de mas decir que escoges la opción gratuita y le das a crearte web service solo esperas a que haga el deploy y sino cometiste ningún error te la desplegara en caso de que tu código ande mal pues lo corriges y actualizas tu repo y en automático se hará el deploy sin que tengas que hacer nada
     
    adicionalmente no se bien el propósito de los archivos Procfile así sin extensión pero decidí agregarlo en mi repo para evitar algún error, adentro de este Procfile solo puse web: gunicorn main:app y pues ya eso es todo es muy fácil desplegar en render y sinceramente seguiré programando con flask y subirlo aquí, dehecho cada mes te dan un limite de 750hrs por cada despliegue pero siendo sinceros si tu web recibe mas 750hrs de uso cada mes ya vale la pena pagar y meter adsence o afiliados XD ok ya me estoy yendo por las ramas.
     
    Bueno espero que haya a alguien que le sirva esto ;D

Pensé que me demoraría 1 semana o 10 días…

¡Me demoré casi un mes y muchos días de trabajo pero lo logré!

Bueno de a poco ya hice mi primer aplicación con Flask
Un asesor de comidas Nutricionales que genera una jornada nutricional cada vez que se le da al botón generar
https://manuelledezma687.pythonanywhere.com/

Cortaron mucho este video

Hola a todos! despues de mil errores y varias noches de trasnocho, termino este curso. No fue nada facil, ademas no realice la app con firebase sino con base de datos mysql.

si alguien quiere revisar el codigo lo dejo en github.
Suerte!

Que tan grande o usada debe ser mi app para que me comiencen a cobrar?

LO LOGRÉ!!!

despliegue de un proyecto flask en Heroku
https://codigofacilito.com/articulos/deploy-flask-heroku

Hola, alguien probo el deploy en heroku?

Podemos marcar la tarea de Aprender Flask como Done 🥳

Esta es la mejor clase, me ayudo a salvar el semestre 😄
Estaba intentando con Heroku y no me funcionó. Heroku funciona muy bien si trabajando con Django y funciona muy bien con node.js

Pueden checar esta pagina para los permisos de la app

https://console.cloud.google.com/cloud-build/settings

Me daba unos errores pero al final me dejo subir el proyecto
Los permisos los deje asi

Si tienen el Error 502. Deben actualizar las dependencias en el archivo de requirements.txt.

Desde la consola lo pueden hacer así:

Python3

pip3 freeze > requirements.txt

Python2

pip freeze > requirements.txt

Hacer despliegue de nuevo

gcloud app deploy app.yaml

Me hubiera gustado que hubieran hecho logout para que identificara un bug y lo corrigiera…

Si no queréis poner una tarjeta de crédito podéis usar Heroku en lugar de Google cloud:
https://www.youtube.com/watch?v=D2GLVoiEZyE

esta clase fue la única que no logre completar con éxito del
Curso de Flask, me dice que es obligatorio habilitar la facturación, yo no tengo tarjetas de crédito ni debito… pero lo demas lo logre con exito

Y eso que flask es facil, no me imagino como sera django

App Engine, me pide agregar mi tarjeta de crédito, Sabes los costos por usar esta app?

por que creo un nuevo proyecto en gcloud?

No le puedo hacer deploy a la app porque GCP me pide una cuenta de facturación. Incluso para verla deployada le puse mi tarjeta débito ey nisiquiera la recibe, re chafa.
(este es el error).
“Cloud Build has not been used in project todoflask-317122 before or it is disabled. Enable it by visiting https://console.developers.google.com/apis/api/cloudbuild.googleapis.com/overview?project=todoflask-317122 then retry. If you enabled this API recently, wait a few minutes for the action to propagate to our systems and retry.”

Para habilitar la API me pide forma de pago y yo no tengo ninguna :’(

A los que les muestre el error 502 Bad Request al hacer deploy a AppEngine, a mi me pasó porque mi archivo principal se llamaba índex en lugar de main.

❤️ genial

Alguien sabe cómo realizar el deployment de flask en amazon?

Qué buen curso! y qué fácil ha sido el deploy de la app en GCP.
Muchísimas gracias!

Si a alguien le sale el error 502, puede ser que el nombre del archivo requirements.txt este mal. Es buena idea revisar que su contenido sea el correcto y el nombre para que lo identifique App Engine.

luego ejecutar de nuevo

gcloud app deploy app.yaml

a alguien le ha aparecido este error

ERROR: gcloud crashed (UnicodeDecodeError): 'ascii' codec can't decode byte 0xc3 in position 69: ordinal not in range(128)

no encuentro solución, ni dice donde esta el bendito carácter, he buscado en archivos, cambie los que tenían acentos, en directorios no tengo acentos.

alguien que pueda ayudar

Hola! qué tal?
Me aparece este error al hacer el Deploy

Updating service [default]...failed.
ERROR: (gcloud.app.deploy) Error Response: [7] Failed to create cloud build: Permission denied.

Saben qué podría ser?

Como lo hice con PostgreSQL me tuve que ir con Heroku, fue un proceso tardado pero al final valió muchísimo la pena!

Si alguien no tiene los 12 meses de appEngine gratis porque no se creó un gmail para el curso.
Les recomiendo
https://www.pythonanywhere.com/
Funciona para cualquier webApp hecha en python y es gratis, solo tienes que ingresar cada 3 meses.

Lo logré!

Te rifaste Bernardo, me encantó el curso…

Tengo el siguiente error:

Beginning deployment of service [default]...
ERROR: (gcloud.app.deploy) Unable to read file [C:\Users\masanchez\Documents\Cursode Platzi\platzi-flask\venv\bin\python]: [Errno 22] Invalid argument: 'C:\\Users\\masanchez\\Documents\\Curso de Platzi\\platzi-flask\\venv\\bin\\python'

Al momento de hacer el deploy a App Engine algunas veces cuando lleno el formulario de login y singup aparece el error de The CSRF token is invalid.. Como puedo arreglarlo?

Deploy es un término famoso entre los desarrolladores web. Puede significar muchas cosas, dependiendo del ambiente y de la tecnología usada. Sin embargo, los significados que más se refieren a la práctica y pueden resumir su función son: implantar, colocar en posición, habilitar para uso o, simplemente, publicar.

la verdad no pude completar el desarrollo, solo pude ver y bueno así igual aprendí pero quería segur desarrollando

Cuanto cuesta usar app engine?