free_zed.gitlab.io/content/grandpy-bot-zappa-flask-lam...

2.6 KiB
Raw Blame History

Title: GrandPy Bot à la mode «serverless» Date: 2019-03-16 23:34 Category: Réalisations Status: published Summary: Évolution du projet 7 réalisé durant le parcours OpenClassrooms avec: Zappa, AWS Lambda & Gitlab-CI/Pages. Lang: fr Slug: grandpy-bot-zappa-flask-lambda-gitlab Tags: git, gitlab, devops, flask, dev, zappa, serverless, aws, ci, cd, aws-lambda, python,

Il s'agissait d'un projet étudiant précédemment hébergé sur Github. Je l'ai mis à jour pour jouer avec:

Un papy-robot qui parle de souvenirs géographiques et citant Wikipedia.

Échangez donc quelques phrases avec lui (^_^)

Installez le vôtre !

L'exécution a besoin de quelques variables d'environnement:

  • EMAIL_ADDRESS (Nominatim API)
  • MAPBOX_API_KEY (Mapbox API)
  • GOO_API_KEY (not used but needed)

Localement:

Il fonctionne comme une simple application mono-page flask:

  • forkez-le
  • mettez en place un environement virtuel: virtualenv .venv
  • installez les dépendances: pip install -r requirements.txt
  • executez locallement: python run.py

Sur Gitlab:

Créez un profil AWS IAM sur votre compte AWS et ajoutez des variables d'environnement valides dans https://gitlab.com/<namespace>/grandpy/settings/ci_cd:

Repoussez le et le script d'intégration continue:

  • déployera le code du chat sur AWS Lambda avec l'aide magique de Zappa
  • mettra à jour le JavaScript avec l'URL AWS API Gateway pointant vers Lambda
  • génèrera la page d'accueil HTML (avec un script flask)
  • déployera les fichiers statiques sur gitlab-pages (HTML, images & CSS)

...et voilà, vous pouvez maintenant discuter avec GrandPy sur https://<namespace>.gitlab.io/grandpy/ (- ;


N'hésitez pas à me faire part de vos commentaires via les tickets.