Como implantar o aplicativo grafql usando o nó.JS no servidor EC2

Como implantar o aplicativo grafql usando o nó.JS no servidor EC2
GraphQL, também conhecido como linguagem de consulta gráfica, estabelecida e mantida pelo Facebook, é uma linguagem de consulta usada para APIs. Ele é construído usando 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 filtragem de dados no lado do servidor e depois 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 grafql. Aqui vamos aprender a implantar um aplicativo GraphQL simples usando o nó.JS em um servidor EC2.

Instalando os pacotes necessários

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

ubuntu@ubuntu: ~ ssh ubuntu@ipadress -i Keypair.PEM

OBSERVAÇÃO: Verifique se o grupo de segurança da instância está configurado para permitir a conexão da porta 22 e o arquivo de chave privado tem 400 permissão.

Atualize os repositórios do Ubuntu.

ubuntu@ubuntu: ~ $ sudo apt -get update -y

Agora instale o nó.JS e NPM em seu servidor Ubuntu.

ubuntu@ubuntu: ~ $ sudo apt -get install nodejs -y
ubuntu@ubuntu: ~ $ sudo apt -get install npm -y

Verifique a instalação verificando a versão do nó.JS e NPM.

ubuntu@ubuntu: ~ $ node -v
ubuntu@ubuntu: ~ $ npm -v

Mova o aplicativo GraphQL para o servidor EC2

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

  • Copie o código usando o comando scp
  • Código de aplicação de clone do github, gitlab ou bitbucket

Copie o aplicativo usando o comando scp

Para copiar seu aplicativo para o servidor EC2 usando o comando SCP, primeiro, remova o diretório 'Node_modules' do seu aplicativo GraphQL. Este diretório possui todos os pacotes NPM necessários para executar o aplicativo. Instalaremos 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, moveremos 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'. Ele abrirá um submenu. Clique na pasta 'compactada (com zíper)' 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.

ubuntu@ubuntu: ~ $ zip -r graphql.ZIP GraphQL

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

Carregue o aplicativo para o servidor

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

ubuntu@ubuntu: ~ $ scp -i teclado.PEM grafql.zip ubuntu@ipaddress: ~///

O comando acima moverá o arquivo zip do projeto para o diretório inicial do servidor remoto sobre a conexão SSH. Agora no servidor remoto, descompacte o arquivo zip do projeto.

ubuntu@ubuntu: ~ $ UNZIP graphql.fecho eclair

CLONE APLICAÇÃO DE GITHUB, BITBUCKET ou GITLAB

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

ubuntu@ubuntu: ~ $ sudo apt install git

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

ubuntu@ubuntu: ~ $ git --version

Se não der a versão do git, o git não será instalado. Agora clone a aplicação do Github, Gitlab ou Bitbucket. Aqui vamos clonar o código do aplicativo do github.

ubuntu@ubuntu: ~ clone git ttps: // github.com/contentful/the-Exemplo-App.nodejs

Iniciando o aplicativo GraphQL

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

ubuntu@ubuntu: ~ $ cd graphql
ubuntu@ubuntu: ~ $ sudo npm install

Este comando analisará o pacote.Arquivo JSON no projeto e instale todos os pacotes NPM necessários. Depois de instalar os pacotes necessários, agora iniciaremos o aplicativo GraphQL.

ubuntu@ubuntu: ~ aplicativo node.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 o aplicativo para quando você fecha a janela do terminal. Podemos executar o aplicativo como um processo em segundo plano, anexando o sinalização de amperas e (&) ao comando.

ubuntu@ubuntu: ~ aplicativo node.JS &

O problema com esse método é que, quando modificamos nosso código de aplicativo, as alterações aplicadas não refletirão automaticamente. Teremos que reiniciar o aplicativo toda vez que modificamos o código para aplicar as alterações. Para executar o aplicativo em segundo plano e aplicar alterações automaticamente, usaremos um pacote NPM chamado PM2. Instale o PM2 no servidor.

ubuntu@ubuntu: ~ $ sudo npm install -g pm2

Inicie o aplicativo GraphQL usando PM2.

ubuntu@ubuntu: ~ $ pm2 Start App.JS -Nome "GraphQL" -Watch

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

https: // pm2.Keymetrics.io/

Consultando a API GraphQL do navegador

Podemos configurar nosso aplicativo GraphQL para fazer consultas grafql do navegador manualmente. Para isso, temos que criar um terminal HTTP separado no qual montaremos o servidor API GraphQL. E este endpoint http será usado para fazer consultas manuais. A seguir, o código para criar o terminal do servidor APHQL API.

const express = requer ('express');
const graphqlHttp = requer ('express-graphql');
const BuildSchema = requer ('graphql');
const graphqlschema = BuildSchema ('
Consulta de tipos
Mensagem: String
'
);
const func =
mensagem: () =>

retornar 'você está usando o servidor API GraphQL';

;
const server = express ();
servidor.use ('/graphql', grafqlhttp (
Esquema: grafqlschema,
rootValue: func,
GraphIQL: true
));
servidor.Ouça (3000);

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

http: // localhost: 3000/graphql

Consultando a API GraphQL usando CLI

Na seção anterior, fizemos consultas grafql do navegador usando graphiql. Agora vamos fazer consultas grafql usando a interface da linha de comando no Ubuntu. Na linha de comando, para fazer uma solicitação de postagem HTTP, usaremos o módulo Curl.

ubuntu@ubuntu: ~ $ curl -x post -h "content -type: Application/json" -d '"query": "message"' http: // lochost: 3000/graphql

Consultando a API grafql programaticamente

Para fazer a consulta grafql programaticamente, usaremos o módulo 'nó-fetch' no nó.JS. Nó aberto.JS no terminal.

ubuntu@ubuntu: ~ $ node

Agora faça a solicitação de postagem http ao servidor usando o módulo 'nó-fetch'.

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