¿Cómo automatizar tus procesos con GitHub Actions?
En este curso, exploramos cómo usar GitHub Actions para simplificar diversas tareas de desarrollo, especialmente al trabajar con el Serverless Framework y AWS Lambda Layers. A través de estas lecciones, no solo aprendes a optimizar procesos manuales repetitivos, sino que también mejoras en agilidad y calidad en tus proyectos de desarrollo. Es una oportunidad perfecta para profundizar en el mundo de DevOps y la automatización de flujos de trabajo.
¿Cómo referenciar múltiples Lambda Layers en Serverless Framework?
Uno de los beneficios al usar Serverless Framework es su habilidad de gestionar Lambda Layers de manera eficiente. Al hacer referencia a una misma Lambda Layer, garantizas uniformidad en tus recursos, pero a veces necesitas manejar múltiples Layers para diferentes funciones, como:
ProcDependencies: Dependencias esenciales que son comunes entre los proyectos.
ProcDependencies asociadas a clientes: Para funciones que se conectan específicamente a servicios de clientes.
ProcDependencies Processing: Layers encargadas de procesar tareas en segundo plano.
ProcDatabaseDependencies: Dependencias de gestión de base de datos.
Asegúrate siempre de mantener el número de Layers bajo control, hasta un máximo de cinco para evitar complicaciones.
¿Cuál es el rol de GitHub Actions en la creación y manejo de Lambda Layers?
GitHub Actions es clave en la automatización del flujo de trabajo, al gestionar no solo los procesos de build y test, sino también la creación de Lambda Layers. Aquí hay un resumen sobre cómo se estructura un workflow típico:
name: Node.js CI
on:push:branches:- main
pull_request:branches:- main
jobs:build:runs-on: ubuntu-latest
steps:-uses: actions/checkout@v2
-name: Set up Node.js
uses: actions/setup-node@v2
with:node-version:'14'-run: npm install
-run: npm run build
¿Cómo implementar el proceso automático de despliegue y artefactos?
El proceso de despliegue en GitHub Actions implica cargar y descargar artefactos. Estos se almacenan temporalmente entre los diferentes jobs para facilitar su reutilización:
Carga de Artefactos: Después de empaquetar las dependencias en un archivo Node.js.zip, este se carga como un artefacto temporal.
Descarga de Artefactos: En el siguiente job, el artefacto se descarga en un directorio específico en el que será necesario usarlo.
¿Cómo validar y depurar GitHub Actions?
Al crear un pull request, los Actions verifican automáticamente los tests y construcciones de layers antes de continuar con el despliegue. Si algo falla, GitHub Actions te proporciona un punto de reinicio, permitiendo ejecutar el job fallido sin necesidad de reiniciar todo el proceso:
Errores de Configuración: Asegúrate de configurar las credenciales y variables de entorno necesarias en la sección de secretos de GitHub.
Validación de CI/CD: Monitoriza el estado de los jobs y ajusta las configuraciones en el repositorio según sea necesario para mantener el flujo de trabajo eficiente.
¿Cómo asegurar la adecuación del proyecto tras múltiples despliegues?
Después del despliegue exitoso, puedes asegurar que tu proyecto está utilizando la última versión de las Lambda Layers gracias a CloudFormation. CloudFormation se ocupa de gestionar las actualizaciones y asegurarte de que tu código siempre refiera a la versión más reciente.
Al dominar estas técnicas y herramientas, te preparas para enfrentar proyectos de manera más eficiente y profesional. ¡La automatización con GitHub Actions no solo mejora el flujo de trabajo sino que también eleva las posibilidades de éxito en tus implementaciones de código!
Pueden solucionarlo cambiando los permisos en el menu de SETTINGS => ACTIONS=>GENERAL
Y seleccionar la opcion "Read and write permissions":
Es una posible solución temporal pero espero les funcione 😁
Desde el curso básico y continuando con este, he visto que todos los cambios se despliegan directamente a AWS. Mi pregunta es, de acuerdo a su experiencia, ¿es mejor trabajar de esta forma o podemos usar los plugins de serverless (con todas sus limitantes) para depurar antes de hacer el deploy a AWS?
En la vida real, ¿cual es la forma idónea de trabajar en este sentido?
Los plugins que permiten probar en local llegan hasta un punto y a partir de ahi se vuelven un poco inutiles tratando de emular en local los servicios mas complejos de la nube, por esto llega un punto en el que es mas facil probar directamente en la nube usando multiples stages/ambientes y despues mandarlo a tus ambientes productivos, para aplicaciones que sean solo apigateway y dynamodb funciona bien probar todo en local antes de tirarlo a la nube
Excelentes la automatizaciones con Github!, hay algún curso con GitLab?, he visto que muchas empresas usan este ultimo porque creo que es gratis para empresas( bajo ciertas condiciones)
Hola Jose Gabriel, que pena la demora, hable con el team y en proximas semanas deberia salir un Curso de Github Actions, dejame saber aca que contenidos esperas de Github Actions :ner
Equipo me pueden hacer el favor de ayudarme del por que se da este error en la ejecución del Actions
Hola Jhonston, usualmente este error de
Resource not accessible by integration
es un error asociado a que no tienes los permisos suficientes para ejecutar la accion solicitada.
Por otro lado, pregunta, estas usando algun PAT?
Es tu cuenta personal o corporativa? si es corporativa, revisa si tienes permisos para ejecutar Github Actions :eyes:
El valor del GITHUB_TOKEN es un token temporal que los github actions crean automaticamente por ti, NO debes usar ningun PAT de Github.
Es decir no debes crear ninguna Env var o Token para configurar tus github actions, deben funcionar sin ninguna configuracion previa.
Si tienen un error en build-js-layer-depsError: fatal: detected dubious ownership in repository at steps: - name: Add git safe directory exception run: git config --global --add safe.directory /__w/aws-serverless-usermanagement/aws-serverless-usermanagement
Error: fatal: detected dubious ownership in repository at
```Entonces deben agregar un step al inicio
```js
steps:- name:Add git safe directory exception
run: git config --global --add safe.directory/__w/aws-serverless-usermanagement/aws-serverless-usermanagement
Si alguien le da este error:
Error:Unable to find any artifacts for the associated workflow
Listo y sin errores esta vez, ya tengo en la mira el curso de git actions.
Excelente clase, aprendiendo mas sobre github actions he avanzando bastante hice algunas modificaciones en la parte de como se construye la layer y el zip y funciona sin problemas