NodeJS

Hvordan distribuere GraphQL-applikasjon ved hjelp av Node.js på EC2 Server

Hvordan distribuere GraphQL-applikasjon ved hjelp av Node.js på EC2 Server
GraphQL, også kjent som Graph Query Language, etablert og vedlikeholdt av Facebook, er et spørrespråk som brukes til API-er. Den er bygget ved hjelp av programmeringsspråk JavaScript, Scala, Java og Ruby. Dens grunnleggende formål er å be om data fra server til klient.GraphQL samler data fra forskjellige kilder. Aggregering er prosessen med å filtrere data på serversiden og deretter sende de filtrerte dataene til klienten. Uten aggregering sender vi alle dataene til klienten, og deretter filtreres dataene på klientsiden. Dette gjør systemet tregt, og vi kan forbedre effektiviteten til et API ved å bruke GraphQL. Her vil vi lære å distribuere et enkelt GraphQL-program ved hjelp av node.js på en EC2-server.

Installere nødvendige pakker

Det første trinnet for å distribuere grafQL-applikasjonen din er å klargjøre serveren din ved å installere de nødvendige pakkene. Logg deg på serveren ved hjelp av SSH.

[e-postbeskyttet]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

MERK: Forsikre deg om at sikkerhetsgruppen for forekomsten er konfigurert til å tillate tilkobling fra port 22, og at den private nøkkelfilen har 400 tillatelse.

Oppdater Ubuntu-arkiver.

[e-postbeskyttet]: ~ $ sudo apt-get update -y

Installer nå node.js og npm på ubuntu-serveren din.

[e-postbeskyttet]: ~ $ sudo apt-get install nodejs -y
[e-postbeskyttet]: ~ $ sudo apt-get install npm -y

Bekreft installasjonen ved å sjekke versjonen av noden.js og npm.

[e-postbeskyttet]: ~ $ node -v
[e-postbeskyttet]: ~ $ npm -v

Flytt GraphQL Application til EC2 Server

EC2-forekomsten er klar til å distribuere graphQL-applikasjoner i node.js. Nå vil vi flytte koden vår til EC2-forekomsten. To vanlige måter å kopiere koden til serveren er oppført nedenfor og vil bli diskutert her.

Kopier applikasjon ved hjelp av scp Command

For å kopiere applikasjonen til EC2-serveren ved hjelp av scp-kommandoen, først og fremst, fjern 'node_modules' -katalogen fra graphQL-applikasjonen. Denne katalogen har alle npm-pakkene som kreves for å kjøre applikasjonen. Vi installerer disse pakkene senere før vi starter grafQL-applikasjonen. Komprimer nå prosjektkatalogen til en zip-fil. Etter å ha opprettet zip-filen, flytter vi prosjekt-zip-filen til serveren. Linux og windows har forskjellige metoder for å lage en zip-fil.

Windows

I Windows høyreklikker du på applikasjonens rotkatalog og går til alternativet 'send til'. Det åpner en undermeny. Klikk på 'Komprimert (zippet) -mappe' for å opprette en zip-fil av graphQL-applikasjonen.

Linux eller Mac

I Linux eller Mac OS bruker vi kommandoen 'zip' til å lage en zip-fil av prosjektet.

[e-postbeskyttet]: ~ $ zip -r graphQL.zip graphQL

Ovennevnte kommando genererer graphQL.zip-fil til grafQL-katalogen.

Last opp applikasjon til serveren

Nå har vi en zip-fil av applikasjonen vår, og vi kan laste opp zip-filen til serveren ved hjelp av scp-kommandoen.

[e-postbeskyttet]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IPAddress: ~ /

Kommandoen ovenfor flytter prosjektets zip-fil til den eksterne serverens hjemmekatalog over ssh-tilkoblingen. Nå på den eksterne serveren pakker du ut zip-filen for prosjektet.

[e-postbeskyttet]: ~ $ pakke ut grafQLQL.glidelås

Klonapplikasjon fra Github, Bitbucket eller Gitlab

Den andre metoden for å kopiere applikasjonskode til serveren bruker git. Installer git fra kommandolinjen på EC2-serveren.

[e-postbeskyttet]: ~ $ sudo apt installere git

Sjekk git-versjonen for å bekrefte installasjonen.

[e-postbeskyttet]: ~ $ git --versjon

Hvis det ikke gir versjonen av git, er git ikke installert. Klon nå applikasjonen fra github, gitlab eller bitbucket. Her vil vi klone applikasjonskoden fra github.

[e-postbeskyttet]: ~ $ git clone ttps: // github.com / contentful / the-example-app.nodejs

Starter GraphQL-applikasjonen

Nå har vi vår grafQL-applikasjon på den eksterne serveren. Gå til rotkatalogen til graphQL-applikasjonen og installer de nødvendige npm-pakkene for å kjøre graphQL-applikasjonen.

[e-postbeskyttet]: ~ $ cd graphQL
[e-postbeskyttet]: ~ $ sudo npm install

Denne kommandoen vil analysere pakken.json-filen i prosjektet og installer alle nødvendige npm-pakker. Etter å ha installert de nødvendige pakkene, starter vi nå grafQL-applikasjonen.

[e-postbeskyttet]: ~ $ node-app.js

Kjører applikasjon som Daemon

Når vi kjører applikasjonen ved hjelp av standardmetoden som beskrevet ovenfor, kjører den i forgrunnen, og applikasjonen stopper når du lukker terminalvinduet. Vi kan kjøre applikasjonen som en bakgrunnsprosess ved å legge til tegnet ampersand (&) til kommandoen.

[e-postbeskyttet]: ~ $ node-app.js &

Problemet med denne metoden er at når vi endrer applikasjonskoden, gjenspeiles ikke de anvendte endringene automatisk. Vi må starte programmet på nytt hver gang vi endrer koden for å bruke endringene. For å kjøre applikasjonen i bakgrunnen og bruke endringer automatisk, bruker vi en npm-pakke som heter pm2. Installer pm2 på serveren.

[e-postbeskyttet]: ~ $ sudo npm install -g pm2

Start grafQL-applikasjonen ved hjelp av pm2.

[e-postbeskyttet]: ~ $ pm2 start-app.js --navn “graphQL” - klokke

Flagg '-name' vil gi bakgrunnsprosessen navn, og vi kan starte og stoppe applikasjonen ved å bruke navnet. Flagget '-watch' fortsetter å sjekke applikasjonskoden for å bruke endringene umiddelbart. Du kan lære mer om pm2 ved å gå til følgende lenke

https: // pm2.keymetrics.io /

Spørring om GraphQL API fra nettleseren

Vi kan konfigurere graphQL-applikasjonen vår for å lage graphQL-spørsmål fra nettleseren manuelt. For dette må vi lage et eget HTTP-endepunkt som vi skal montere graphQL API-serveren på. Og dette HTTP-sluttpunktet vil bli brukt til å lage manuelle spørsmål. Følgende er koden for å lage graphQL api server endepunkt.

const express = krever ('express');
const graphqlHTTP = krever ('express-graphql');
const buildSchema = krever ('graphql');
const graphQLSchema = buildSchema ('
skriv spørring
melding: String
'
);
const func =
melding: () =>

returner 'du bruker graphql api server';

;
const server = express ();
server.bruk ('/ graphql', graphqlHTTP (
skjema: graphQLSchema,
rootValue: func,
graphiql: sant
));
server.hør (3000);

Nå, etter å ha kjørt serveren, kan vi få tilgang til graphQL api-serveren på følgende rute.

http: // localhost: 3000 / graphql

Spørring av GraphQL API ved bruk av CLI

I forrige avsnitt laget vi graphQL-spørsmål fra nettleseren ved hjelp av graphiql. Nå skal vi lage graphQL-spørsmål ved å bruke kommandolinjegrensesnittet i ubuntu. Fra kommandolinjen, for å lage en HTTP POST-forespørsel, bruker vi krøllmodulen.

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

Spørring av GraphQL API Programmatisk

For å lage grafQL-spørsmål programmatisk, vil vi bruke 'node-fetch' modulen i node.js. Åpne node.js i terminalen.

[e-postbeskyttet]: ~ $ node

Gjør nå HTTP POST-forespørselen til serveren ved hjelp av noden-henting-modulen.

GraphQL er et effektivt spørrespråk, og det kan redusere responstiden til et spørsmål gjort til databasen. Standard API-anrop for å hente data fra databasen involverer mange ubrukelige data i svaret, og dermed øker responstiden, noe som reduserer effektiviteten. Spørringen til databasene ved hjelp av GraphQL returnerer bare nyttige data og reduserer dermed responstiden. I denne artikkelen har vi distribuert vår grafQL-applikasjon på en EC2-forekomst.

OpenTTD Tutorial
OpenTTD er et av de mest populære forretningssimuleringsspillene der ute. I dette spillet må du lage en fantastisk transportvirksomhet. Du begynner im...
SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...
Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...