Inscris-toi
(c'est gratuit !)
Un compte est nécessaire pour participer aux discussions.
Créer un compte00:00:00 :Si vous allez voir dans le dépôt git du projet, vous allez voir que j'ai une branche spécifique pour le projet web qui est la partie qu'on afaite avec la visualisation, avec le projet Flask, donc la visualisation des données JSON en front-end.
00:00:12 :Donc cette branche, en fait, on va l'utiliser pour notre serveur.On va ici cliquer sur Code pour aller récupérer l'adresse HTTPS qui va nous permettre de cloner ce dépôt directement sur mon serveur sans avoirbesoin de mettre la clé SSH.
00:00:26 :Donc là, on aura une restriction dans le fait qu'on ne pourra pas envoyer des modifications sur ce dépôt.On va juste pouvoir cloner le code.
00:00:33 :Nous, on a juste besoin de ça.On veut juste récupérer le code pour ensuite exécuter le script et le projet Flask.Là, c'est un projet qui est public, donc je peux faire ça directement avec cette adresse HTTPS.
00:00:43 :Donc je vais copier cette URL dans le clipboard et je vais revenir dans mon terminal.Et là, on va utiliser git pour cloner notre dépôt.
00:00:50 :Je fais un git clone et je mets l'adresse.Là, vous allez voir que par défaut, on n'a pas git qui est installé sur cette machine.
00:00:56 :Vous voyez que grâce à Warp, j'ai l'indication ici, une suggestion de l'installation de git.Donc je peux faire commande entrée pour accepter cette suggestion puisqu'effectivement, je vais vouloir installer git.
00:01:08 :Là, ça peut varier selon les distributions de Linux.Il y en a qui vont utiliser YUM, il y en a qui vont utiliser DNF.Il y a plein de package managers différents selon les distributions de Linux.
00:01:18 :Là, ce qui est bien ici avec notre terminal un petit peu intelligent, c'est qu'il va pouvoir savoir,vous voyez qu'il sait qu'on est sur un Amazon Linux, donc il sait qu'on va utiliser YUMet il nous propose d'utiliser la commande sudo yum install-y git.
00:01:32 :Donc là, je peux accepter cette commande en cliquant ici ou en appuyant sur la touche entréeet il va de cette façon lancer cette commande dans mon terminal pour installer git.
00:01:40 :Donc vous voyez, c'est pratique quand même d'avoir cet outil d'intelligence artificiellelà encore à l'intérieur de notre terminal.Ça nous évite de faire des allers-retours avec une interface comme chatgivitydans laquelle il faudrait qu'on lui donne ces informations pour lui dire,OK, je suis avec une instance Amazon, etc.
00:01:56 :Là, vu qu'il est directement dans notre terminal, il peut, s'il a besoin, aller récupérer ces informations.Vous voyez là, par exemple, pour vérifier que git a bien été installé,il va exécuter git version dans le terminal et il va voir que la commande fonctionneet donc il me dit que c'est bien, ça a fonctionné.
00:02:12 :Si ça n'avait pas été le cas, il aurait pu récupérer l'output du terminalpour le renvoyer à CloudSunet pour ensuite essayer de débuguer tout ça automatiquement.
00:02:21 :Quand c'est des commandes qui sont un petit peu plus dangereuses,on va dire si c'est des commandes qui vont enlever des fichiers ou des choses comme ça,la fameuse commande rm par exemple, et bien il ne va pas l'exécuter,il va me demander avant si je veux l'exécuter.
00:02:33 :Là, quand c'est juste vérifier un git version, il peut l'exécuter tout seulsans avoir besoin de mon intervention.Donc là, je vais vérifier. Effectivement, si j'ai fait git version, j'ai bien la version de git.
00:02:44 :Je peux refaire un git clone avec mon URL et là, vous voyez que ça va correctementaller récupérer les informations depuis GitHub.Si je fais un ls ici, je vois que j'ai bien mon dossier Scraping Cinemaet je vais naviguer à l'intérieur de Scraping Cinema.
00:02:59 :Maintenant, je vais devoir installer l'outil UV que j'ai utilisé pour gérer les dépendances.Je l'avais déjà installé sur mon Mac en local.Là, je vais l'installer sur le Amazon WS.
00:03:10 :Je vais reprendre la petite ligne de commande qui me permet sur Mac et sur Linux d'installer UV.Je la lance. C'est assez rapide.Et maintenant, à l'intérieur de mon projet, je vais pouvoir créer un environnement virtuel.
00:03:21 :Je vais faire uv venv tout simplement et ça va créer un environnement virtuel.Par défaut, vous voyez qu'il va le mettre dans un dossier .venv.
00:03:29 :Si je fais un ls-la, je vois bien ce dossier venv.Je peux maintenant sourcer mon environnement virtuel et installer avec UV les requirements.Je vais le remettre en haut pour que vous voyez bien.
00:03:40 :Je vais faire uv pip install-r requirements.txtet vous allez voir que c'est très rapide avec UV.On a tout ça qui est fait en même pas une seconde.
00:03:50 :C'est très rapide. Vous voyez 0,326 secondes pour exécuter tout ça.C'est l'avantage de UV.Maintenant, je vais pouvoir lancer mon application Flask.Je vais aller vérifier que tout fonctionne.
00:04:00 :Si je fais un witch Python 3, je devrais bien me retrouver avec le Python 3 à l'intérieur de mon environnement virtuel.C'est parfait.Avant de lancer le serveur, je vais essayer de lancer mon scriptparce que le script de scrapping va récupérer les données.
00:04:12 :Pour l'instant, si je fais un ls, vous voyez qu'on n'a pas le dossier datapuisque c'est un dossier qu'on avait exclu de git avec notre gitignorepuisque les fichiers JSON, on ne veut pas les avoir dans notre dépôt git.
00:04:23 :On veut juste les avoir sur le serveur local ou le serveur distant comme ici.Ce qu'on va faire, c'est lancer notre scrapper.On va vérifier également que toutes les librairies sont bien installées.
00:04:32 :Je vais faire Python 3 et ensuite, on va lancer en module scrapper.src.main.Si je me souviens bien, le chemin complet.Je lance et là, effectivement, ça fonctionne bien.
00:04:43 :On a la récupération qui se fait et on va avoir les données qui vont être sauvegardéesdans le dossier data à la racine du projet.
00:04:49 :Je vais attendre un petit peu que ça se termine et on va vérifier que tout fonctionne correctement.Le script a bien été exécuté.Je vais refaire un petit peu de place pour revenir en haut.
00:04:58 :On va faire un ls. On a bien le dossier data qui est là.Donc, si je vais voir dans data et si je fais un cat du fichier qu'on doit avoir ici,qu'il me suggère, je vois que j'ai bien toutes les informations que j'ai récoltées.
00:05:08 :Donc, ça fonctionne bien et on peut essayer de lancer notre application web.Donc, je vais faire, si je me souviens bien, c'est web.Alors là, je ne suis pas dans la bonne branche parce que quand je fais un ls,vous voyez que là, j'ai le data, mais je n'ai pas le dossier web
00:05:20 :parce que je suis sur la branche main.Donc, on va changer en faisant un check out sur la branche web, qui est check out web.
00:05:27 :Et là, si je refais un ls, vous voyez que je suis bien dans la version de mon dépôt git avec l'interface web.Donc, je vais faire python3web-app.py et là, on n'a pas flask.
00:05:40 :Donc, c'est normal parce qu'en fait, le requirements que j'avais à partir du dossier gitne contenait pas les informations pour le web.Si je fais un more-requirements.txt, vous voyez que là, j'ai flask qui apparaît.
00:05:54 :Mais si je me remets en fait avec ma branche main et que je refais un more-requirements.txt,vous voyez que là, on avait juste python.env et request.
00:06:04 :Donc, je refais un git check out pour me remettre dans ma branche webet je vais refaire un uv pip install-r requirements.Là encore, ça va très vite.
00:06:13 :Il installe tout ce qu'il faut pour avoir flask.Je peux refaire un python3web-app.py et là, notre application est bien lancée.Donc, la dernière chose qu'on va faire, c'est tout simplement changer un petit peu notre applicationpour la rendre disponible à toutes les adresses IP sur le serveur.
00:06:30 :Donc, ce que je vais faire, c'est aller dans la web app.Donc, je vais faire un cd web et on va faire un vim de app.py
00:06:38 :et à la fin ici, quand on lance notre serveur, à la place du debug true ici,je vais l'enlever et je vais plutôt mettre le host qui va être 0.0.0.0.
00:06:47 :Ça va permettre d'écouter sur toutes les interfaces réseau,donc y compris l'IP qu'on va ensuite utiliser pour se connecter depuis notre Mac en local.Donc, je vais vous montrer tout ça.
00:06:56 :Donc là, je vais mettre host égal à 0.0.0.0.Je ferme le guillemet et pour le port, je vais mettre aussi le port 5000.On va revenir sur ce port-là.
00:07:05 :Il était bloqué de mon côté sur le Mac, mais normalement ici, ça devrait être bon.Je ne pense pas qu'il soit utilisé par quoi que ce soit d'autreet on va l'ouvrir par la suite dans les paramètres de AWS.
00:07:16 :Donc, j'appuie sur Escape, je sauvegarde avec 2.wq pour sauvegarderet on va aller cette fois-ci dans l'interface de AWS pour modifier les ports qui sont ouverts.
00:07:26 :Donc, si je reviens sur mon tableau de bord, je vais retourner dans les instances iciet sur mon Scraping Web Cinema 3, on va aller dans le security ici.
00:07:35 :Vous voyez que pour l'instant, on a juste le port 22 qui est ouvert.Donc, ce qu'on va faire, c'est qu'on va aller dans Action, Security iciet on va changer le groupe de sécurité parce que par défaut, vous allez voir qu'il y a un groupe de sécuritéqui est créé, qui est ce groupe ici, qui est partagé avec toutes les instances qu'on va créer.
00:07:51 :Ça permet d'avoir une seule configuration de sécurité qui peut être partagée entre plusieurs instances.Donc, moi, ce que je vais faire, c'est modifier ce groupe.
00:07:59 :Alors, comme je vous disais, des fois, on s'y perd un petit peu.Là, normalement, si je vais dans Action, Security, il me semble que c'est là,Change Security Group ou Instance Settings, il est peut-être aussi ici.
00:08:11 :Voilà, Security Group.Et voilà, ici, j'ai mon groupe.Je peux le sélectionner et je peux faire Edit Inbound Rules.Donc, là, j'ai bien le port 22 qui est pour le SSH.
00:08:22 :Donc, ça me permet de me connecter en SSH sur ce serveur.Je vais ajouter une règle ici et dans le port, on va mettre 5000 qui est le port de notre application Flask.
00:08:30 :Ici, dans le source, je vais sélectionner de nouveau uniquement mon IP.Donc, là, il va automatiquement prendre mon IP pour restreindre uniquement mon IP pour pouvoir accéder à ce port.
00:08:40 :Là encore, ça permet d'éviter, si vous avez des applications un petit peu sensibles,que n'importe qui puisse se connecter à cette application.Et pour la description, je vais mettre Flask Web App, tout simplement, pour qu'on s'y retrouve.
00:08:52 :Donc, je sauvegarde cette règle.Et voilà, la règle est ajoutée et je peux m'y connecter avec mon IP.Vous voyez que pour le port 22, on avait fait la même chose.
00:09:00 :On l'avait restreint à notre IP pour nous connecter en SSH.Donc, je vais revenir dans mon interface ici.Je vais relancer mon application python3-web-app.py.Je relance et là, ça ne fonctionne pas parce que je suis à l'intérieur du dossier web.
00:09:14 :Donc, je reviens un niveau au-dessus.Je relance.Donc, là, on a bien lancé notre serveur.Ce que je vais faire, c'est aller copier l'adresse IP du serveur.
00:09:23 :Donc, pour ça, on peut retourner dans notre console.Si je reviens sur mes instances ici, si on sélectionne notre instance, on peut aller trouver l'adresse IP.
00:09:30 :Donc, dans Details, ici, on a le public ipv4-adresse.Donc, je vais prendre cette adresse.Je vais la copier et je vais retourner dans mon serveur.
00:09:38 :Donc, là, il est toujours en train de fonctionner.Donc, c'est bon.Et je vais retourner dans Brave.Donc, là, j'ai mon serveur en local qui est normalement toujours en train de tourner sur mon cursor.
00:09:47 :C'est le cas.Il y a bien l'interface qui s'affiche.Donc, là, on est sur mon Mac en local sur le 127.0.0.1.Je vais ouvrir un nouvel onglet.
00:09:54 :Je vais coller cette adresse IP et on va se mettre sur le port 5000.Et normalement, on devrait avoir accès ici à notre application.Effectivement, c'est le cas qui fonctionne.
00:10:02 :Donc, vous voyez, on a exactement la même chose ici.On a des petites différences parce que j'ai relancé le script à un horaire un peu différent.
00:10:08 :Là, vous voyez qu'on était à 9h33 le matin.Et entre 9h33 et 16h29, il y a eu des petits changements.Donc, je pense que c'est juste les horaires de 14h qui ne sont plus disponibles.
00:10:18 :Effectivement, c'est juste ça la différence.Donc, là, on va vérifier que ça fonctionne vite fait.Mais ça a l'air.Normalement, il n'y a pas de raison.
00:10:24 :C'est exactement la même application.Et si je clique là, tout fonctionne bien.Et on a donc un aperçu ici de notre application qui est en train de tourner sur le serveur.
00:10:31 :Donc, vous voyez exactement la même chose.C'est juste l'adresse qui change.Dans un cas, j'ai mon application en local.Et dans l'autre cas, j'ai l'application qui est directement sur l'instance AWS.
00:10:40 :Donc, vous voyez, ce n'est pas très compliqué.On a toujours l'impression qu'il faut faire des choses très compliquées avec des noms de domaine, des DNS, etc.
00:10:45 :En fait, il suffit juste d'ouvrir un port pour pouvoir y accéder.Et ensuite, on a juste besoin de l'adresse IP du port.Et on peut se connecter directement à notre application.
Ce n'est pas fini...
✋
Tu as complété % du parcours 🔥
Termine l'intégralité de la formation pour pouvoir débloquer ton attestation de réussite.