DüğümJS

Düğüm Kullanarak GraphQL Uygulaması Nasıl Dağıtılır.EC2 Sunucusunda js

Düğüm Kullanarak GraphQL Uygulaması Nasıl Dağıtılır.EC2 Sunucusunda js
Facebook tarafından kurulan ve sürdürülen Graph Query Language olarak da bilinen GraphQL, API'ler için kullanılan bir sorgu dilidir. JavaScript, Scala, Java ve Ruby programlama dilleri kullanılarak oluşturulmuştur. Temel amacı, sunucudan istemciye veri istemektir.GraphQL, farklı kaynaklardan gelen verileri toplar. Toplama, sunucu tarafında verilerin filtrelenmesi ve ardından filtrelenen verilerin istemciye gönderilmesi işlemidir. Toplama olmadan, tüm verileri istemciye göndeririz ve ardından veriler istemci tarafında filtrelenir. Bu, sistemi yavaşlatır ve GraphQL kullanarak bir API'nin verimliliğini artırabiliriz. Burada düğümü kullanarak basit bir GraphQL uygulamasını dağıtmayı öğreneceğiz.EC2 sunucusunda js.

Gerekli Paketlerin Kurulması

GraphQL uygulamanızı dağıtmanın ilk adımı, gerekli paketleri yükleyerek sunucunuzu hazırlamaktır. SSH kullanarak sunucuya giriş yapın.

[e-posta korumalı]:~$ ssh ubuntu@IPAdress -i Anahtar Çifti.pem

NOT: Örneğin güvenlik grubunun 22 numaralı bağlantı noktasından bağlantıya izin verecek şekilde yapılandırıldığından ve özel anahtar dosyasının 400 izne sahip olduğundan emin olun.

Ubuntu depolarını güncelleyin.

[e-posta korumalı]:~$ sudo apt-get update -y

Şimdi düğümü yükle.ubuntu sunucunuzda js ve npm.

[e-posta korumalı]:~$ sudo apt-get install nodejs -y
[e-posta korumalı]:~$ sudo apt-get install npm -y

Düğümün sürümünü kontrol ederek kurulumu doğrulayın.js ve npm.

[e-posta korumalı]:~$ düğümü -v
[e-posta korumalı]:~$ npm -v

GraphQL Uygulamasını EC2 Sunucusuna Taşıyın

EC2 bulut sunucusu, düğümde graphQL uygulamalarını dağıtmaya hazır.js. Şimdi kodumuzu EC2 örneğine taşıyacağız. Kodu sunucuya kopyalamanın iki yaygın yolu aşağıda listelenmiştir ve burada tartışılacaktır.

scp Komutunu Kullanarak Uygulamayı Kopyalayın

scp komutunu kullanarak uygulamanızı EC2 sunucusuna kopyalamak için, öncelikle 'node_modules' dizinini graphQL uygulamanızdan kaldırın. Bu dizin, uygulamayı çalıştırmak için gereken tüm npm paketlerine sahiptir. Bu paketleri daha sonra graphQL uygulamasını başlatmadan önce kuracağız. Şimdi proje dizinini bir zip dosyasına sıkıştırın. Zip dosyasını oluşturduktan sonra proje zip dosyasını sunucuya taşıyacağız. Linux ve Windows'un bir zip dosyası oluşturmak için farklı yöntemleri vardır.

pencereler

Windows'ta, uygulama kök dizinine sağ tıklayın ve 'gönder' seçeneğine gidin. Bir alt menü açacak. GraphQL uygulamasının bir zip dosyasını oluşturmak için 'Sıkıştırılmış (sıkıştırılmış) klasöre' tıklayın.

Linux veya Mac

Linux veya Mac OS'de, projenin bir zip dosyasını oluşturmak için 'zip' komutunu kullanacağız.

[e-posta korumalı]:~$ zip -r graphQL.zip grafiğiQL

Yukarıdaki komut, graphQL'yi oluşturacaktır.graphQL dizininin zip dosyası.

Uygulamayı Sunucuya Yükleyin

Artık uygulamamızın bir zip dosyasına sahibiz ve scp komutunu kullanarak zip dosyasını sunucuya yükleyebiliriz.

[e-posta korumalı]:~$ scp -i Anahtar Çifti.pem grafiğiQL.zip ubuntu@IPAdresi:~/

Yukarıdaki komut, proje zip dosyasını ssh bağlantısı üzerinden uzak sunucunun ana dizinine taşıyacaktır. Şimdi uzak sunucuda, proje zip dosyasını açın.

[e-posta korumalı]:~$ grafiği açQL.fermuar

Github, Bitbucket veya Gitlab'dan Klon Uygulaması

Uygulama kodunu sunucuya kopyalamanın ikinci yöntemi git kullanmaktır. EC2 sunucusundaki komut satırından git'i yükleyin.

[e-posta korumalı]:~$ sudo apt install git

Kurulumu doğrulamak için git sürümünü kontrol edin.

[e-posta korumalı]:~$ git --version

Git sürümünü vermezse, git kurulu değildir. Şimdi uygulamayı github, gitlab veya bitbucket'ten klonlayın. Burada uygulama kodunu github'dan klonlayacağız.

[e-posta korumalı]:~$ git klonu ttps://github.com/contentful/the-example-app.düğümler

GraphQL Uygulamasını Başlatma

Artık uzak sunucuda graphQL uygulamamız var. graphQL uygulamasının kök dizinine gidin ve graphQL uygulamasını çalıştırmak için gerekli npm paketlerini kurun.

[e-posta korumalı]:~$ cd grafiğiQL
[e-posta korumalı]:~$ sudo npm kurulumu

Bu komut paketi analiz edecek.json dosyasını projeye ekleyin ve gerekli tüm npm paketlerini kurun. Gerekli paketleri kurduktan sonra şimdi graphQL uygulamasını başlatacağız.

[e-posta korumalı]:~$ düğüm uygulaması.js

Uygulamayı Daemon Olarak Çalıştırmak

Uygulamayı yukarıda anlatıldığı gibi standart yöntemi kullanarak çalıştırdığımızda ön planda çalışıyor ve terminal penceresini kapattığınızda uygulama duruyor. Komuta ve işareti (&) ekleyerek uygulamayı arka plan işlemi olarak çalıştırabiliriz.

[e-posta korumalı]:~$ düğüm uygulaması.js &

Bu yöntemle ilgili sorun, uygulama kodumuzu değiştirdiğimizde uygulanan değişikliklerin otomatik olarak yansıtılmamasıdır. Değişiklikleri uygulamak için kodu her değiştirdiğimizde uygulamayı yeniden başlatmamız gerekecek. Uygulamayı arka planda çalıştırmak ve değişiklikleri otomatik olarak uygulamak için pm2 adlı bir npm paketi kullanacağız. pm2'yi sunucuya kurun.

[e-posta korumalı]:~$ sudo npm install -g pm2

pm2 kullanarak graphQL uygulamasını başlatın.

[e-posta korumalı]:~$ pm2 başlangıç ​​uygulaması.js --name “graphQL” --watch

'-name' bayrağı arka plan sürecini adlandıracak ve uygulamayı bu adı kullanarak başlatabilir ve durdurabiliriz. '-watch' bayrağı, değişiklikleri hemen uygulamak için uygulama kodunu kontrol etmeye devam edecektir. Aşağıdaki bağlantıyı ziyaret ederek pm2 hakkında daha fazla bilgi edinebilirsiniz

https://pm2.anahtar ölçütler.io/

Tarayıcıdan GraphQL API Sorgulama

GraphQL uygulamamızı tarayıcıdan manuel olarak graphQL sorguları yapacak şekilde yapılandırabiliriz. Bunun için, graphQL API sunucusunu monte edeceğimiz ayrı bir HTTP uç noktası oluşturmamız gerekiyor. Ve bu HTTP uç noktası, manuel sorgular yapmak için kullanılacaktır. Aşağıda, graphQL api sunucu bitiş noktası oluşturma kodu verilmiştir.

const ifade = zorunlu('ifade');
const graphqlHTTP = require('express-graphql');
const buildSchema = require('graphql');
const graphQLSchema = buildSchema('
sorgu yazın
mesaj: dize
'
);
const işlev =
mesaj: () =>

'graphql api sunucusu kullanıyorsunuz' döndür;

;
const sunucu = ekspres();
sunucu.use('/graphql', graphqlHTTP(
şema: grafikQLSchema,
kök Değeri: func,
grafik: doğru
));
sunucu.dinle(3000);

Artık sunucuyu çalıştırdıktan sonra aşağıdaki rota üzerinden graphQL api sunucusuna erişebiliriz.

http://localhost:3000/graphql

CLI Kullanarak GraphQL API'sini Sorgulama

Bir önceki bölümde, graphiql kullanarak tarayıcıdan graphQL sorguları yaptık. Şimdi ubuntu'daki komut satırı arayüzünü kullanarak graphQL sorguları yapacağız. Komut satırından HTTP POST isteği yapmak için curl modülünü kullanacağız.

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

GraphQL API'sini Programlı Olarak Sorgulama

GrafQL sorgusunu programlı olarak yapmak için, düğümde 'node-fetch' modülünü kullanacağız.js. Açık düğüm.terminaldeki js.

[e-posta korumalı]:~$ düğümü

Şimdi 'node-fetch' modülünü kullanarak sunucuya HTTP POST isteğinde bulunun.

GraphQL verimli bir sorgu dilidir ve veritabanına yapılan bir sorgunun yanıt süresini azaltabilir. Veritabanından veri almak için yapılan standart API çağrıları, yanıtta birçok yararsız veri içerir ve bu nedenle yanıt süresi artar, bu da verimliliği düşürür. Veritabanlarına GraphQL kullanılarak yapılan sorgu, yalnızca yararlı verileri döndürür ve dolayısıyla yanıt süresini azaltır. Bu makalede, graphQL uygulamamızı bir EC2 bulut sunucusuna yerleştirdik.

Linux için En İyi Gamepad Eşleme Uygulamaları
Tipik bir klavye ve fare giriş sistemi yerine bir gamepad ile Linux'ta oyun oynamayı seviyorsanız, sizin için bazı faydalı uygulamalar var. Çoğu PC oy...
Linux Oyuncuları için Faydalı Araçlar
Linux'ta oyun oynamayı seviyorsanız, oyun deneyimini geliştirmek için Wine, Lutris ve OBS Studio gibi uygulamaları ve yardımcı programları kullanmış o...
Daha Önce Bir Linux Sürümü Olmayan Linux için HD Remastered Oyunlar
Birçok oyun geliştiricisi ve yayıncısı, franchise'ın ömrünü uzatmak için eski oyunların HD remaster'ı ile geliyor, lütfen modern donanımla uyumluluk i...