NodeJS

Como implantar um aplicativo GraphQL usando o Node.js no servidor EC2

Como implantar um aplicativo GraphQL usando o Node.js no servidor EC2
GraphQL, também conhecido como Graph Query Language, estabelecido e mantido pelo Facebook, é uma linguagem de consulta usada para APIs. Ele é construído usando as linguagens de programação JavaScript, Scala, Java e Ruby. Seu objetivo básico é solicitar os dados do servidor para o cliente.GraphQL agrega os dados de diferentes fontes. Agregação é o processo de filtrar dados no lado do servidor e, em seguida, enviar os dados filtrados para o cliente. Sem agregação, enviamos todos os dados para o cliente e, em seguida, os dados são filtrados no lado do cliente. Isso torna o sistema lento e podemos melhorar a eficiência de uma API usando GraphQL. Aqui, aprenderemos a implantar um aplicativo GraphQL simples usando o nó.js em um servidor EC2.

Instalando Pacotes Requeridos

A primeira etapa para implantar seu aplicativo GraphQL é preparar seu servidor instalando os pacotes necessários. Faça login no servidor usando SSH.

[email protegido]: ~ $ ssh ubuntu @ IPAdress -i KeyPair.pem

NOTA: Certifique-se de que o grupo de segurança da instância está configurado para permitir a conexão da porta 22 e o arquivo de chave privada tem 400 permissões.

Atualizar repositórios do Ubuntu.

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

Agora instale o nó.js e npm no seu servidor ubuntu.

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

Verifique a instalação verificando a versão do nó.js e npm.

[email protegido]: ~ $ node -v
[email protegido]: ~ $ npm -v

Mova o aplicativo GraphQL para o servidor EC2

A instância EC2 está pronta para implantar aplicativos GraphQL no nó.js. Agora vamos mover nosso código para a instância EC2. Duas maneiras comuns de copiar o código para o servidor estão listadas abaixo e serão discutidas aqui.

Copiar aplicativo usando o comando scp

Para copiar seu aplicativo para o servidor EC2 usando o comando scp, em primeiro lugar, remova o diretório 'node_modules' de seu aplicativo graphQL. Este diretório tem todos os pacotes npm necessários para executar o aplicativo. Vamos instalar esses pacotes mais tarde, antes de iniciar o aplicativo GraphQL. Agora compacte o diretório do projeto em um arquivo zip. Depois de criar o arquivo zip, vamos mover o arquivo zip do projeto para o servidor. Linux e Windows têm métodos diferentes para criar um arquivo zip.

janelas

No Windows, clique com o botão direito do mouse no diretório raiz do aplicativo e vá para a opção 'enviar para'. Irá abrir um submenu. Clique na 'pasta compactada (zipada)' para criar um arquivo zip do aplicativo graphQL.

Linux ou Mac

No Linux ou Mac OS, usaremos o comando 'zip' para criar um arquivo zip do projeto.

[email protegido]: ~ $ zip -r graphQL.zip graphQL

O comando acima irá gerar o graphQL.arquivo zip do diretório graphQL.

Carregar aplicativo para o servidor

Agora temos um arquivo zip de nosso aplicativo e podemos fazer o upload do arquivo zip para o servidor usando o comando scp.

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

O comando acima irá mover o arquivo zip do projeto para o diretório home do servidor remoto através da conexão ssh. Agora, no servidor remoto, descompacte o arquivo zip do projeto.

[email protegido]: ~ $ unzip graphQL.fecho eclair

Clonar aplicativo do Github, Bitbucket ou Gitlab

O segundo método para copiar o código do aplicativo para o servidor é usando git. Instale o git a partir da linha de comando no servidor EC2.

[email protegido]: ~ $ sudo apt install git

Verifique a versão git para verificar a instalação.

[email protegido]: ~ $ git --version

Se não fornecer a versão do git, então o git não está instalado. Agora clone o aplicativo do github, gitlab ou bitbucket. Aqui vamos clonar o código do aplicativo do github.

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

Iniciando o aplicativo GraphQL

Agora temos nosso aplicativo GraphQL no servidor remoto. Vá para o diretório raiz do aplicativo graphQL e instale os pacotes npm necessários para executar o aplicativo graphQL.

[email protegido]: ~ $ cd graphQL
[email protegido]: ~ $ sudo npm install

Este comando irá analisar o pacote.arquivo json no projeto e instale todos os pacotes npm necessários. Depois de instalar os pacotes necessários, agora vamos iniciar o aplicativo graphQL.

[email protegido]: ~ $ node app.js

Executando o aplicativo como Daemon

Quando executamos o aplicativo usando o método padrão conforme descrito acima, ele é executado em primeiro plano e para quando você fecha a janela do terminal. Podemos executar o aplicativo como um processo em segundo plano, acrescentando o sinal de "e" comercial (&) ao comando.

[email protegido]: ~ $ node app.js &

O problema com este método é que quando modificamos o código do nosso aplicativo, as alterações aplicadas não refletem automaticamente. Teremos que reiniciar o aplicativo toda vez que modificarmos o código para aplicar as mudanças. Para executar o aplicativo em segundo plano e aplicar as alterações automaticamente, usaremos um pacote npm chamado pm2. Instale pm2 no servidor.

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

Inicie o aplicativo GraphQL usando pm2.

[email protegido]: ~ $ pm2 iniciar aplicativo.js --name “graphQL” --watch

O sinalizador '-name' nomeará o processo de segundo plano, e podemos iniciar e parar o aplicativo usando o nome. O sinalizador '-watch' continuará verificando o código do aplicativo para aplicar as alterações imediatamente. Você pode aprender mais sobre pm2 visitando o seguinte link

https: // pm2.keymetrics.io /

Consultando a API GraphQL do navegador

Podemos configurar nosso aplicativo GraphQL para fazer consultas GraphQL a partir do navegador manualmente. Para isso, temos que criar um ponto de extremidade HTTP separado no qual montaremos o servidor da API GraphQL. E este endpoint HTTP será usado para fazer consultas manuais. A seguir está o código para criar o ponto de extremidade do servidor API GraphQL.

const express = require ('express');
const graphqlHTTP = require ('express-graphql');
const buildSchema = require ('graphql');
const graphQLSchema = buildSchema ('
tipo Query
mensagem: String
'
);
const func =
mensagem: () =>

return 'você está usando o servidor API Graphql';

;
servidor const = express ();
servidor.use ('/ graphql', graphqlHTTP (
esquema: graphQLSchema,
rootValue: func,
graphiql: true
));
servidor.ouvir (3000);

Agora, depois de executar o servidor, podemos acessar o servidor API GraphQL na seguinte rota.

http: // localhost: 3000 / graphql

Consultando a API GraphQL usando CLI

Na seção anterior, fizemos consultas GraphQL a partir do navegador usando o Graphiql. Agora vamos fazer consultas GraphQL usando a interface de linha de comando no ubuntu. Na linha de comando, para fazer uma solicitação HTTP POST, usaremos o módulo curl.

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

Consultando a API GraphQL de maneira programática

Para fazer a consulta GraphQL de forma programática, usaremos o módulo 'node-fetch' no node.js. Nó aberto.js no terminal.

[email protegido]: ~ $ node

Agora faça a solicitação HTTP POST para o servidor usando o módulo 'node-fetch'.

GraphQL é uma linguagem de consulta eficiente e pode diminuir o tempo de resposta de uma consulta feita ao banco de dados. As chamadas de API padrão para buscar dados do banco de dados envolvem muitos dados inúteis na resposta e, portanto, o tempo de resposta aumenta, o que diminui a eficiência. A consulta feita aos bancos de dados usando GraphQL retorna apenas os dados úteis e, portanto, diminui o tempo de resposta. Neste artigo, implantamos nosso aplicativo GraphQL em uma instância EC2.

Como mostrar o contador de FPS em jogos Linux
Os jogos Linux tiveram um grande impulso quando a Valve anunciou o suporte Linux para o cliente Steam e seus jogos em 2012. Desde então, muitos jogos ...
Como baixar e jogar Sid Meier's Civilization VI no Linux
Introdução ao jogo Civilization 6 é uma versão moderna do conceito clássico introduzido na série de jogos Age of Empires. A ideia era bastante simples...
Como instalar e jogar Doom no Linux
Introdução ao Doom A série Doom teve origem nos anos 90 após o lançamento do Doom original. Foi um sucesso instantâneo e, a partir desse momento, a sé...