NodeJS

Comment déployer l'application GraphQL à l'aide de Node.js sur le serveur EC2

Comment déployer l'application GraphQL à l'aide de Node.js sur le serveur EC2
GraphQL, également connu sous le nom de Graph Query Language, établi et maintenu par Facebook, est un langage de requête utilisé pour les API. Il est construit à l'aide des langages de programmation JavaScript, Scala, Java et Ruby. Son objectif de base est de demander les données du serveur au client.GraphQL agrège les données de différentes sources. L'agrégation est le processus de filtrage des données côté serveur, puis d'envoi des données filtrées au client. Sans agrégation, nous envoyons toutes les données au client, puis les données sont filtrées côté client. Cela ralentit le système et nous pouvons améliorer l'efficacité d'une API en utilisant GraphQL. Ici, nous allons apprendre à déployer une application GraphQL simple à l'aide de node.js sur un serveur EC2.

Installation des packages requis

La première étape pour déployer votre application graphQL est de préparer votre serveur en installant les packages requis. Connectez-vous au serveur en utilisant SSH.

[email protégé] :~$ ssh ubuntu@IPAdress -i KeyPair.pem

REMARQUE: Assurez-vous que le groupe de sécurité de l'instance est configuré pour autoriser la connexion à partir du port 22 et que le fichier de clé privée a l'autorisation 400.

Mettre à jour les dépôts Ubuntu.

[email protected]:~$ sudo apt-get update -y

Maintenant, installez le nœud.js et npm sur votre serveur ubuntu.

[email protected]:~$ sudo apt-get install nodejs -y
[email protected]:~$ sudo apt-get install npm -y

Vérifiez l'installation en vérifiant la version du nœud.js et npm.

[email protégé] :~$ nœud -v
[email protégé] :~$ npm -v

Déplacer l'application GraphQL vers le serveur EC2

L'instance EC2 est prête à déployer des applications graphQL dans le nœud.js. Nous allons maintenant déplacer notre code vers l'instance EC2. Deux façons courantes de copier le code sur le serveur sont répertoriées ci-dessous et seront discutées ici.

Copier l'application à l'aide de la commande scp

Afin de copier votre application sur le serveur EC2 à l'aide de la commande scp, supprimez tout d'abord le répertoire 'node_modules' de votre application graphQL. Ce répertoire contient tous les packages npm requis pour exécuter l'application. Nous installerons ces packages plus tard avant de démarrer l'application graphQL. Maintenant compressez le répertoire du projet dans un fichier zip. Après avoir créé le fichier zip, nous déplacerons le fichier zip du projet sur le serveur. Linux et Windows ont des méthodes différentes pour créer un fichier zip.

les fenêtres

Dans Windows, faites un clic droit sur le répertoire racine de l'application et accédez à l'option "Envoyer à". Il ouvrira un sous-menu. Cliquez sur le 'dossier compressé (zippé)' pour créer un fichier zip de l'application graphQL.

Linux ou Mac

Sous Linux ou Mac OS, nous utiliserons la commande 'zip' pour créer un fichier zip du projet.

[email protégé] :~$ zip -r graphQL.zip graphQL

La commande ci-dessus va générer le graphQL.zip du répertoire graphQL.

Télécharger l'application sur le serveur

Nous avons maintenant un fichier zip de notre application, et nous pouvons télécharger le fichier zip sur le serveur en utilisant la commande scp.

[email protégé] :~$ scp -i KeyPair.pem graphQL.zip ubuntu@IPAddress:~/

La commande ci-dessus déplacera le fichier zip du projet vers le répertoire de base du serveur distant via la connexion ssh. Maintenant sur le serveur distant, décompressez le fichier zip du projet.

[email protected] :~$ décompressez graphQL.Zip *: français

Cloner l'application depuis Github, Bitbucket ou Gitlab

La deuxième méthode pour copier le code de l'application sur le serveur utilise git. Installez git à partir de la ligne de commande sur le serveur EC2.

[email protected]:~$ sudo apt install git

Vérifiez la version de git pour vérifier l'installation.

[email protégé] :~$ git --version

S'il ne donne pas la version de git, alors git n'est pas installé. Clonez maintenant l'application à partir de github, gitlab ou bitbucket. Ici, nous allons cloner le code de l'application depuis le github.

[email protégé] :~$ git clone ttps://github.com/contentful/the-example-app.nodejs

Démarrage de l'application GraphQL

Nous avons maintenant notre application graphQL sur le serveur distant. Accédez au répertoire racine de l'application graphQL et installez les packages npm requis pour exécuter l'application graphQL.

[email protégé] :~$ cd graphQL
[email protégé] : ~$ sudo npm install

Cette commande analysera le package.json dans le projet et installez tous les packages npm requis. Après avoir installé les packages requis, nous allons maintenant démarrer l'application graphQL.

[email protected] : ~$ application de nœud.js

Exécution de l'application en tant que démon

Lorsque nous exécutons l'application en utilisant la méthode standard décrite ci-dessus, elle s'exécute au premier plan et l'application s'arrête lorsque vous fermez la fenêtre du terminal. Nous pouvons exécuter l'application en arrière-plan en ajoutant le signe esperluette (&) à la commande.

[email protected] : ~$ application de nœud.js &

Le problème avec cette méthode est que lorsque nous modifions notre code d'application, les changements appliqués ne se refléteront pas automatiquement. Nous devrons redémarrer l'application à chaque fois que nous modifions le code pour appliquer les changements. Afin d'exécuter l'application en arrière-plan et d'appliquer les modifications automatiquement, nous utiliserons un package npm nommé pm2. Installer pm2 sur le serveur.

[email protégé] :~$ sudo npm install -g pm2

Démarrez l'application graphQL en utilisant pm2.

[email protégé] : ~$ pm2 démarrer l'application.js --name "graphQL" --watch

L'indicateur '-name' nommera le processus d'arrière-plan, et nous pouvons démarrer et arrêter l'application en utilisant le nom. Le drapeau '-watch' continuera à vérifier le code de l'application pour appliquer les modifications immédiatement. Vous pouvez en savoir plus sur pm2 en visitant le lien suivant

https://pm2.keymetrics.io/

Interrogation de l'API GraphQL à partir du navigateur

Nous pouvons configurer notre application graphQL pour faire des requêtes graphQL à partir du navigateur manuellement. Pour cela, nous devons créer un point de terminaison HTTP distinct sur lequel nous monterons le serveur d'API graphQL. Et ce point de terminaison HTTP sera utilisé pour faire des requêtes manuelles. Voici le code pour créer le point de terminaison du serveur api graphQL.

const express = require('express');
const graphqlHTTP = require('express-graphql');
const buildSchema = require('graphql');
const graphQLSchema = buildSchema('
tapez Requête
message : chaîne
'
);
fonction const =
message : () =>

return 'vous utilisez le serveur api graphql';

 ;
serveur const = express();
serveur.use('/graphql', graphqlHTTP(
schéma : graphQLSchema,
valeur racine : fonction,
graphiql : vrai
));
serveur.écoute (3000);

Maintenant, après avoir exécuté le serveur, nous pouvons accéder au serveur api graphQL sur la route suivante.

http://localhost:3000/graphql

Interroger l'API GraphQL à l'aide de la CLI

Dans la section précédente, nous avons fait des requêtes graphQL à partir du navigateur en utilisant graphiql. Nous allons maintenant créer des requêtes graphQL à l'aide de l'interface de ligne de commande dans Ubuntu. Depuis la ligne de commande, pour faire une requête HTTP POST, nous utiliserons le module curl.

[email protected]:~$ curl -X POST -H "Content-Type: application/json" -d '"query": " message "' http://localhost:3000/graphql

Interroger l'API GraphQL par programmation

Afin de faire une requête graphQL par programmation, nous utiliserons le module 'node-fetch' dans node.js. Nœud ouvert.js dans le terminal.

[email protected] :~$ nœud

Faites maintenant la requête HTTP POST au serveur en utilisant le module 'node-fetch'.

GraphQL est un langage de requête efficace, et il peut réduire le temps de réponse d'une requête adressée à la base de données. Les appels api standard pour récupérer les données de la base de données impliquent de nombreuses données inutiles dans la réponse, et donc le temps de réponse augmente, ce qui diminue l'efficacité. La requête faite aux bases de données à l'aide de GraphQL ne renvoie que les données utiles et diminue donc le temps de réponse. Dans cet article, nous avons déployé notre application graphQL sur une instance EC2.

Comment utiliser Xdotool pour stimuler les clics de souris et les frappes sous Linux
Xdotool est un outil de ligne de commande gratuit et open source pour simuler les clics de souris et les frappes. Cet article couvrira un bref guide s...
Top 5 des produits de souris d'ordinateur ergonomiques pour Linux
L'utilisation prolongée de l'ordinateur provoque-t-elle des douleurs au poignet ou aux doigts? Vous souffrez de raideurs articulaires et devez constam...
Comment modifier les paramètres de la souris et du pavé tactile à l'aide de Xinput sous Linux
La plupart des distributions Linux sont livrées avec la bibliothèque "libinput" par défaut pour gérer les événements d'entrée sur un système. Il peut ...