NodeJS

Hur man distribuerar GraphQL-applikation med hjälp av nod.js på EC2-server

Hur man distribuerar GraphQL-applikation med hjälp av nod.js på EC2-server
GraphQL, även känt som Graph Query Language, etablerat och underhållet av Facebook, är ett frågespråk som används för API: er. Den är byggd med JavaScript, Scala, Java och Ruby programmeringsspråk. Dess grundläggande syfte är att be om data från server till klient.GraphQL sammanställer data från olika källor. Aggregering är processen att filtrera data på serversidan och sedan skicka de filtrerade data till klienten. Utan aggregering skickar vi all information till klienten och sedan filtreras data på klientsidan. Detta gör systemet långsamt och vi kan förbättra effektiviteten hos ett API med hjälp av GraphQL. Här lär vi oss att distribuera en enkel GraphQL-applikation med hjälp av nod.js på en EC2-server.

Installera nödvändiga paket

Det första steget för att distribuera din grafQL-applikation är att förbereda din server genom att installera de nödvändiga paketen. Logga in på servern med SSH.

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

NOTERA: Se till att instansens säkerhetsgrupp är konfigurerad för att tillåta anslutning från port 22 och att den privata nyckelfilen har 400 behörighet.

Uppdatera Ubuntu-arkiv.

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

Installera nu nod.js och npm på din ubuntu-server.

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

Verifiera installationen genom att kontrollera versionen av noden.js och npm.

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

Flytta GraphQL-applikationen till EC2-servern

EC2-instansen är redo att distribuera grafQL-applikationer i noden.js. Nu flyttar vi vår kod till EC2-instansen. Två vanliga sätt att kopiera koden till servern listas nedan och kommer att diskuteras här.

Kopiera applikationen med scp Command

För att kopiera din applikation till EC2-servern med scp-kommandot, först och främst, ta bort katalogen 'node_modules' från din grafQL-applikation. Den här katalogen har alla npm-paket som krävs för att köra programmet. Vi installerar dessa paket senare innan vi startar grafQL-applikationen. Komprimera nu projektkatalogen till en zip-fil. Efter att ha skapat zip-filen flyttar vi projektets zip-fil till servern. Linux och windows har olika metoder för att skapa en zip-fil.

Windows

I Windows högerklickar du på programmets rotkatalog och går till alternativet 'skicka till'. Den öppnar en undermeny. Klicka på "Komprimerad (zippad) mapp" för att skapa en zip-fil för grafQL-applikationen.

Linux eller Mac

I Linux eller Mac OS använder vi kommandot 'zip' för att skapa en zip-fil av projektet.

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

Ovanstående kommando genererar graphQL.zip-fil i grafQL-katalogen.

Ladda upp applikation till servern

Nu har vi en zip-fil av vår applikation, och vi kan ladda upp zip-filen till servern med hjälp av scp-kommandot.

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

Ovanstående kommando flyttar projektets zip-fil till fjärrservern hemkatalog över ssh-anslutningen. Packa nu upp zip-filen på fjärrservern.

[e-postskyddad]: ~ $ packa upp grafQL.blixtlås

Klonapplikation från Github, Bitbucket eller Gitlab

Den andra metoden för att kopiera applikationskod till servern använder git. Installera git från kommandoraden på EC2-servern.

[e-postskyddad]: ~ $ sudo apt install git

Kontrollera git-versionen för att verifiera installationen.

[e-postskyddad]: ~ $ git --version

Om det inte ger versionen av git är git inte installerat. Klon nu applikationen från github, gitlab eller bitbucket. Här kommer vi att klona applikationskoden från github.

[e-postskyddad]: ~ $ git klon ttps: // github.com / contentful / the-example-app.nodjs

Starta GraphQL-applikationen

Nu har vi vår grafQL-applikation på fjärrservern. Gå till rotkatalogen för graphQL-applikationen och installera de nödvändiga npm-paketen för att köra graphQL-applikationen.

[e-postskyddad]: ~ $ cd graphQL
[e-postskyddad]: ~ $ sudo npm installation

Detta kommando analyserar paketet.json-filen i projektet och installera alla nödvändiga npm-paket. Efter installation av nödvändiga paket startar vi nu grafQL-applikationen.

[e-postskyddad]: ~ $ nod-app.js

Kör applikation som Daemon

När vi kör applikationen med standardmetoden som beskrivs ovan, körs den i förgrunden och applikationen slutar när du stänger terminalfönstret. Vi kan köra applikationen som en bakgrundsprocess genom att lägga till tecknet ampersand (&) till kommandot.

[e-postskyddad]: ~ $ nod-app.js &

Problemet med den här metoden är att när vi ändrar vår applikationskod kommer de tillämpade ändringarna inte att återspeglas automatiskt. Vi måste starta om applikationen varje gång vi ändrar koden för att tillämpa ändringarna. För att köra applikationen i bakgrunden och tillämpa ändringar automatiskt använder vi ett npm-paket med namnet pm2. Installera pm2 på servern.

[e-postskyddad]: ~ $ sudo npm installera -g pm2

Starta grafQL-applikationen med hjälp av pm2.

[e-postskyddad]: ~ $ pm2 startapp.js --namn “graphQL” --watch

Flaggan '-namn' kommer att namnge bakgrundsprocessen, och vi kan starta och stoppa applikationen med namnet. Flaggan "-watch" fortsätter att kontrollera applikationskoden för att tillämpa ändringar direkt. Du kan lära dig mer om pm2 genom att besöka följande länk

https: // pm2.keymetrics.io /

Fråga om GraphQL API från webbläsaren

Vi kan konfigurera vår grafQL-applikation så att den gör grafikfrågor från webbläsaren manuellt. För detta måste vi skapa en separat HTTP-slutpunkt som vi monterar graphQL API-servern på. Och den här HTTP-slutpunkten kommer att användas för att göra manuella frågor. Följande är koden för att skapa GraphQL api-serverns slutpunkt.

const express = kräver ('express');
const graphqlHTTP = kräver ('express-graphql');
const buildSchema = kräver ('graphql');
const graphQLSchema = buildSchema ('
skriv fråga
meddelande: Sträng
'
);
const func =
meddelande: () =>

returnera 'du använder graphql api-server';

;
const server = express ();
server.använd ('/ graphql', graphqlHTTP (
schema: graphQLSchema,
rootValue: func,
graphiql: sant
));
server.lyssna (3000);

Nu, efter att ha kört servern, kan vi komma åt grafQL api-servern på följande rutt.

http: // localhost: 3000 / graphql

Fråga om GraphQL API med CLI

I föregående avsnitt gjorde vi graphQL-frågor från webbläsaren med hjälp av graphiql. Nu ska vi göra graphQL-frågor med kommandoradsgränssnittet i ubuntu. Från kommandoraden, för att göra en HTTP POST-begäran, använder vi curl-modulen.

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

Fråga om GraphQL API Programmatiskt

För att göra grafQL-frågor programmatiskt använder vi modulen 'nod-hämta' i nod.js. Öppna nod.js i terminalen.

[e-postskyddad]: ~ $ nod

Gör nu HTTP POST-begäran till servern med hjälp av modulen '' nod-fetch ''.

GraphQL är ett effektivt frågespråk och det kan minska svarstiden för en fråga som görs i databasen. Standard-api-samtalen för att hämta data från databasen involverar många oanvändbara data i svaret, och följaktligen ökar svarstiden, vilket minskar effektiviteten. Frågan som görs till databaserna med hjälp av GraphQL returnerar endast användbara data och minskar därmed svarstiden. I den här artikeln har vi implementerat vår grafQL-applikation på en EC2-instans.

Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...
HD Remastered Games för Linux som aldrig tidigare hade en Linux-version
Många spelutvecklare och utgivare kommer med HD-remaster av gamla spel för att förlänga livstiden för franchisen, snälla fans som begär kompatibilitet...
Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...