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.pemNOT: Ö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 kodu kopyalayın
- Github, Gitlab veya Bitbucket'ten uygulama kodunu klonlayın
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ğiQLYukarı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.fermuarGithub, 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 gitKurulumu 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üğümlerGraphQL 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ı.jsUygulamayı 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 pm2pm2 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.