NodeJS

Kako rasporediti GraphQL aplikaciju pomoću čvora.js na EC2 poslužitelju

Kako rasporediti GraphQL aplikaciju pomoću čvora.js na EC2 poslužitelju
GraphQL, poznat i kao Graph Query Language, koji je uspostavio i održavao Facebook, jezik je upita koji se koristi za API-je. Gradi se pomoću programskih jezika JavaScript, Scala, Java i Ruby. Njegova je osnovna svrha traženje podataka od poslužitelja do klijenta.GraphQL agregira podatke iz različitih izvora. Agregacija je postupak filtriranja podataka na strani poslužitelja, a zatim slanje filtriranih podataka klijentu. Bez agregiranja, sve podatke šaljemo klijentu, a zatim se podaci filtriraju na strani klijenta. To sustav usporava, a učinkovitost API-ja možemo poboljšati pomoću GraphQL-a. Ovdje ćemo naučiti implementirati jednostavnu GraphQL aplikaciju pomoću čvora.js na EC2 poslužitelju.

Instaliranje potrebnih paketa

Prvi korak za postavljanje vaše graphQL aplikacije je priprema vašeg poslužitelja instaliranjem potrebnih paketa. Prijavite se na poslužitelj pomoću SSH-a.

[e-pošta zaštićena]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

BILJEŠKA: Provjerite je li sigurnosna grupa instance konfigurirana da dopušta povezivanje s porta 22 i da datoteka privatnog ključa ima 400 dopuštenja.

Ažurirajte Ubuntu spremišta.

[zaštićena e-poštom]: ~ $ sudo apt-get update -y

Sada instalirajte čvor.js i npm na vašem ubuntu poslužitelju.

[zaštićen e-poštom]: ~ $ sudo apt-get install nodejs -y
[zaštićen e-poštom]: ~ $ sudo apt-get install npm -y

Provjerite instalaciju provjerom verzije čvora.js i npm.

[zaštićen e-poštom]: ~ $ čvor -v
[e-pošta zaštićena]: ~ $ npm -v

Premjestite GraphQL aplikaciju na EC2 poslužitelj

Instanca EC2 spremna je za raspoređivanje GraphQL aplikacija u čvor.js. Sada ćemo premjestiti naš kôd na instancu EC2. U nastavku su navedena dva uobičajena načina kopiranja koda na poslužitelj, a ovdje će biti riječi.

Kopiranje aplikacije pomoću naredbe scp

Da biste kopirali svoju aplikaciju na EC2 poslužitelj pomoću naredbe scp, prije svega uklonite direktorij 'node_modules' iz vaše graphQL aplikacije. Ovaj direktorij sadrži sve npm pakete potrebne za pokretanje aplikacije. Te ćemo pakete instalirati kasnije prije pokretanja aplikacije graphQL. Sada komprimirajte direktorij projekta u zip datoteku. Nakon stvaranja zip datoteke, premjestit ćemo zip datoteku projekta na poslužitelj. Linux i Windows imaju različite metode za stvaranje zip datoteke.

Windows

U sustavu Windows desnom tipkom miša kliknite korijenski direktorij aplikacije i idite na opciju 'pošalji u'. Otvorit će se podizbornik. Kliknite na 'Stisnuta (zip) mapa' da biste stvorili zip datoteku aplikacije graphQL.

Linux ili Mac

U Linuxu ili Mac OS-u koristit ćemo naredbu 'zip' za stvaranje zip datoteke projekta.

[zaštićena e-poštom]: ~ $ zip -r graphQL.zip grafQL

Gornja naredba generirat će graphQL.zip datoteka direktorija graphQL.

Prenesite aplikaciju na poslužitelj

Sada imamo zip datoteku naše aplikacije, a zip datoteku možemo prenijeti na poslužitelj pomoću naredbe scp.

[e-pošta zaštićena]: ~ $ scp -i KeyPair.pem graphQL.zip ubuntu @ IPAddress: ~ /

Gornja naredba premjestit će zip datoteku projekta u kućni direktorij udaljenog poslužitelja preko ssh veze. Sada na udaljenom poslužitelju raspakirajte zip datoteku projekta.

[zaštićena e-poštom]: ~ $ unzip graphQL.zip

Klonirajte aplikaciju iz Githuba, Bitbuketa ili Gitlaba

Druga metoda kopiranja aplikacijskog koda na poslužitelj je upotreba git-a. Instalirajte git iz naredbenog retka na EC2 poslužitelju.

[zaštićen e-poštom]: ~ $ sudo apt install git

Provjerite verziju gita da biste provjerili instalaciju.

[zaštićena e-poštom]: ~ $ git --version

Ako ne daje verziju gita, tada git nije instaliran. Sada klonirajte aplikaciju iz githuba, gitlaba ili bitbuketa. Ovdje ćemo klonirati aplikacijski kod iz githuba.

[e-pošta zaštićena]: ~ $ git clone ttps: // github.com / sadržajno / the-example-app.nodejs

Pokretanje aplikacije GraphQL

Sada imamo našu grafičku aplikacijuQLQL na udaljenom poslužitelju. Idite u korijenski direktorij grafičke aplikacije i instalirajte potrebne npm pakete za pokretanje grafičke aplikacije.

[zaštićena e-poštom]: ~ $ cd graphQL
[zaštićena e-poštom]: ~ $ sudo npm install

Ova naredba će analizirati paket.json datoteku u projektu i instalirajte sve potrebne npm pakete. Nakon instalacije potrebnih paketa, sada ćemo pokrenuti aplikaciju graphQL.

[zaštićena e-poštom]: ~ $ node app.js

Pokretanje aplikacije kao Daemon

Kada aplikaciju pokrenemo standardnom metodom kako je gore opisano, ona se pokreće u prvom planu, a aplikacija se zaustavlja kad zatvorite prozor terminala. Aplikaciju možemo pokrenuti kao pozadinski postupak dodavanjem znaka ampersand (&) naredbi.

[zaštićena e-poštom]: ~ $ node app.js &

Problem s ovom metodom je taj što se, kada izmijenimo kod aplikacije, primijenjene promjene neće automatski odražavati. Morat ćemo ponovno pokrenuti aplikaciju svaki put kada izmijenimo kôd kako bismo primijenili promjene. Kako bismo pokrenuli aplikaciju u pozadini i automatski primijenili promjene, koristit ćemo npm paket nazvan pm2. Instalirajte pm2 na poslužitelj.

[e-pošta zaštićena]: ~ $ sudo npm install -g pm2

Pokrenite program graphQL pomoću pm2.

[zaštićena e-poštom]: ~ $ pm2 start app.js --name “graphQL” --watch

Oznaka '-name' imenovat će pozadinski postupak, a aplikaciju možemo pokrenuti i zaustaviti pomoću imena. Oznaka '-watch' nastavit će provjeravati kod aplikacije kako bi odmah primijenio promjene. Više o pm2 možete saznati posjetom sljedećem linku

https: // pm2.keymetrics.io /

Upit za GraphQL API iz preglednika

Možemo konfigurirati našu aplikaciju graphQL za ručno izrađivanje upita GraphQL iz preglednika. Za to moramo stvoriti zasebnu HTTP krajnju točku na koju ćemo montirati GraphQL API poslužitelj. A ova će se HTTP krajnja točka koristiti za ručno postavljanje upita. Slijedi kod za stvaranje krajnje točke api poslužitelja graphQL.

const express = require ('express');
const graphqlHTTP = zahtijeva ('express-graphql');
const buildSchema = zahtijeva ('graphql');
const graphQLSchema = buildSchema ('
upišite upit
poruka: Niz
'
);
const func =
poruka: () =>

return 'koristite API poslužitelj graphql';

;
const poslužitelj = express ();
poslužitelju.use ('/ graphql', graphqlHTTP (
shema: graphQLSchema,
rootValue: func,
graphiql: istina
));
poslužitelju.slušati (3000);

Sada, nakon pokretanja poslužitelja, možemo pristupiti graphQL api poslužitelju na sljedećoj ruti.

http: // localhost: 3000 / graphql

Upit za GraphQL API pomoću CLI-ja

U prethodnom smo odjeljku iz preglednika izrađivali GraphQL upite koristeći graphiql. Sada ćemo napraviti GraphQL upite koristeći sučelje naredbenog retka u ubuntuu. Iz naredbenog retka za izradu HTTP POST zahtjeva koristit ćemo modul curl.

[zaštićena e-poštom]: ~ $ curl -X POST -H "Content-Type: application / json" -d '"query": "message"' http: // localhost: 3000 / graphql

Programsko postavljanje upita za GraphQL API

Da bismo programski izvršili GraphQL upit, koristit ćemo modul 'node-fetch' u čvoru.js. Otvoreni čvor.js u terminalu.

[e-pošta zaštićena]: ~ $ čvor

Sada uputite HTTP POST zahtjev poslužitelju pomoću modula 'dohvaćanje čvora'.

GraphQL je učinkovit jezik upita i može smanjiti vrijeme odziva na upit upućen bazi podataka. Standardni api pozivi za dohvaćanje podataka iz baze podataka uključuju mnoštvo nekorisnih podataka u odgovoru, a time se i vrijeme odziva povećava, što smanjuje učinkovitost. Upit upućen bazama podataka pomoću GraphQL-a vraća samo korisne podatke i time smanjuje vrijeme odziva. U ovom smo članku rasporedili našu aplikaciju graphQL na instancu EC2.

Kako prikazati OSD prekrivač u aplikacijama i igrama na cijelom zaslonu za Linux
Igranje igara preko cijelog zaslona ili upotreba aplikacija u režimu preko cijelog zaslona bez ometanja može vas odsjeći od relevantnih informacija o ...
Top 5 karata za hvatanje igara
Svi smo vidjeli i voljeli streaming reprodukcije na YouTubeu. PewDiePie, Jakesepticye i Markiplier samo su neki od najboljih igrača koji su zaradili m...
Kako razviti igru ​​na Linuxu
Prije deset godina malo je Linux korisnika predviđalo da će njihov omiljeni operativni sustav jednog dana biti popularna platforma za igranje komercij...