¿Qué aprenderá?
Al desarrollar este tutorial aprenderá a desplegar aplicaciones en Heroku. Se recomienda revisar en detalle las configuraciones requeridas para aplicaciones Flask y Angular.
Encuentre a continuación algunas actividades a desarrollar:
Para crear una cuenta en Heroku realice los siguientes pasos:
A continuación se describen los pasos requeridos para solicitar los créditos que otorga Heroku a estudiantes con cuenta GitHub:
Para validar la asignación de los créditos:
Crear Dyno
Para crear un Dyno en Heroku realice los siguientes pasos:
Configurar Dyno
Para configurar un Dyno en Heroku realice los siguientes pasos:
Despliegue automático
Aplica cuando se desea desplegar automáticamente cada cambio realizado en la rama seleccionada. Es ideal para equipos que implementan integración y despliegue continuo.
Para configurar el despliegue automático seleccione la rama y habilite la opción para validar que el set de pruebas pasen antes de desplegar.
Guarde los cambios haciendo clic en el botón Enable Automatic Deploys.
Despliegue manual
Esta opción de despliegue es más controlada y puede realizarse cada vez que el equipo considere necesario hacerlo.
Para usar esta opción seleccione la rama para despliegue y guarde los cambios haciendo clic en el botón Deploy branch.
Una vez realizado el paso anterior Heroku inicia el proceso de compilación y despliegue como se ve en la siguiente imagen.
Para ver la aplicación desplegada haga clic en el botón View.
Si al abrir la aplicación se visualiza el siguiente error, es probable que esté sucediendo algún problema en el despliegue del ambiente. Para identificarlo revise los logs como se indica en la siguiente sección.
Revisar logs
Para revisar los logs del Dyno y poder identificar si hay errores en la compilación o despliegue realice los siguientes pasos:
Para desplegar una aplicación Flask es necesario realizar la siguiente configuración:
Haga clic en el botón Reveal Config Vars e ingrese la información de la variable de entorno como se aprecia en la siguiente imagen.
Guarde los cambios haciendo clic en el botón Add.
gunicorn
en el requirements.txt
gunicorn==20.1.0
Procfile
(sin extensión) en la raíz del proyecto. Agregue la siguiente línea al archivo.web: gunicorn app:app
commit
y push
en el repositorio.Para abrir nuevamente la aplicación utilice el botón Open app ubicado en la parte superior derecha de la ventana.
Si su aplicación se ve como en la siguiente imagen es normal pues la ruta / no ha sido configurada en el proyecto Flask base.
Para desplegar una aplicación Angular es necesario realizar la siguiente configuración:
server.js
en la raíz del proyecto Angular. Agregue el siguiente fragmento de código al archivo.const express = require('express');
const path = require('path');
const app = express();
app.use(express.static(__dirname + '/dist/proyecto-frontend'));
app.get('/*', function(req,res) {
res.sendFile(path.join(__dirname+'/dist/proyecto-frontend/index.html'));
});
const PORT = process.env.PORT || 5000;
app.listen(PORT, function() {
console.log("Server running on port 5000...");
});
package.json
scripts
"scripts": {
"add-hooks": "scripts/add-hooks.sh",
"ng": "ng",
"start": "node server.js",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e",
"preinstall": "npm install -g @angular/cli @angular/compiler-cli typescript",
"postinstall": "ng build --configuration production"
},
engines
"engines": {
"node": "14.20",
"npm": "9.4.1"
},
Procfile
(sin extensión) en la raíz del proyecto. Agregue la siguiente línea al archivo.web: node server.js
commit
y push
en el repositorio.