NodeJS

Cara Menyebarkan Aplikasi GraphQL Menggunakan Node.js di Server EC2

Cara Menyebarkan Aplikasi GraphQL Menggunakan Node.js di Server EC2
GraphQL, juga dikenal sebagai Graph Query Language, dibuat dan dikelola oleh Facebook, adalah bahasa query yang digunakan untuk API. Itu dibangun menggunakan bahasa pemrograman JavaScript, Scala, Java, dan Ruby. Tujuan dasarnya adalah untuk meminta data dari server ke klien.GraphQL mengumpulkan data dari berbagai sumber. Agregasi adalah proses penyaringan data di sisi server dan kemudian mengirimkan data yang disaring ke klien. Tanpa agregasi, kami mengirim semua data ke klien, dan kemudian data disaring di sisi klien. Ini membuat sistem menjadi lambat, dan kami dapat meningkatkan efisiensi API dengan menggunakan GraphQL. Di sini kita akan belajar men-deploy aplikasi GraphQL sederhana menggunakan node.js di server EC2.

Menginstal Paket yang Diperlukan

Langkah pertama untuk menerapkan aplikasi graphQL Anda adalah menyiapkan server Anda dengan menginstal paket yang diperlukan. Masuk ke server menggunakan SSH.

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

CATATAN: Pastikan grup keamanan instance dikonfigurasi untuk mengizinkan koneksi dari port 22 dan file kunci pribadi memiliki 400 izin.

Perbarui repositori Ubuntu.

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

Sekarang instal simpul.js dan npm di server ubuntu Anda.

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

Verifikasi instalasi dengan memeriksa versi node.js dan npm.

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

Pindahkan Aplikasi GraphQL ke EC2 Server

Instans EC2 siap untuk menerapkan aplikasi graphQL di node.js. Sekarang kita akan memindahkan kode kita ke instance EC2. Dua cara umum untuk menyalin kode ke server tercantum di bawah ini dan akan dibahas di sini.

Salin Aplikasi Menggunakan Perintah scp

Untuk menyalin aplikasi Anda ke server EC2 menggunakan perintah scp, Pertama-tama, hapus direktori 'node_modules' dari aplikasi graphQL Anda. Direktori ini memiliki semua paket npm yang diperlukan untuk menjalankan aplikasi. Kami akan menginstal paket-paket ini nanti sebelum memulai aplikasi graphQL. Sekarang kompres direktori proyek menjadi file zip. Setelah membuat file zip, kami akan memindahkan file zip proyek ke server. Linux dan windows memiliki metode berbeda untuk membuat file zip.

jendela

Di windows, klik kanan pada direktori root aplikasi dan buka opsi 'kirim ke'. Ini akan membuka submenu. Klik pada 'Folder terkompresi (zip)' untuk membuat file zip dari aplikasi graphQL.

Linux atau Mac

Di Linux atau Mac OS, kami akan menggunakan perintah 'zip' untuk membuat file zip proyek.

[dilindungi email]:~$ zip -r graphQL.zip grafikQL

Perintah di atas akan menghasilkan graphQL.zip dari direktori graphQL.

Unggah Aplikasi ke Server

Sekarang kami memiliki file zip dari aplikasi kami, dan kami dapat mengunggah file zip ke server dengan menggunakan perintah scp.

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

Perintah di atas akan memindahkan file zip proyek ke direktori home server jarak jauh melalui koneksi ssh. Sekarang di server jauh, unzip file zip proyek project.

[dilindungi email]:~$ unzip graphQL.zip

Aplikasi Klon Dari Github, Bitbucket atau Gitlab

Metode kedua untuk menyalin kode aplikasi ke server menggunakan git. Instal git dari baris perintah di server EC2.

[dilindungi email]:~$ Sudo apt install git

Periksa versi git untuk memverifikasi instalasi.

[dilindungi email]:~$ git --version

Jika tidak memberikan versi git, maka git tidak diinstal. Sekarang kloning aplikasi dari github, gitlab, atau bitbucket. Di sini kita akan mengkloning kode aplikasi dari github.

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

Memulai Aplikasi GraphQL

Sekarang kami memiliki aplikasi graphQL kami di server jauh. Buka direktori root aplikasi graphQL dan instal paket npm yang diperlukan untuk menjalankan aplikasi graphQL.

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

Perintah ini akan menganalisis paket.json dalam proyek dan instal semua paket npm yang diperlukan. Setelah menginstal paket yang diperlukan, sekarang kita akan memulai aplikasi graphQL.

[dilindungi email]:~$ aplikasi simpul.js

Menjalankan Aplikasi sebagai Daemon

Ketika kami menjalankan aplikasi menggunakan metode standar seperti dijelaskan di atas, itu berjalan di latar depan, dan aplikasi berhenti ketika Anda menutup jendela terminal. Kita dapat menjalankan aplikasi sebagai proses latar belakang dengan menambahkan tanda ampersand (&) ke perintah.

[dilindungi email]:~$ aplikasi simpul.js &

Masalah dengan metode ini adalah ketika kita memodifikasi kode aplikasi kita, perubahan yang diterapkan tidak akan tercermin secara otomatis. Kami harus memulai ulang aplikasi setiap kali kami memodifikasi kode untuk menerapkan perubahan. Untuk menjalankan aplikasi di latar belakang dan menerapkan perubahan secara otomatis, kami akan menggunakan paket npm bernama pm2. Instal pm2 di server.

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

Mulai aplikasi graphQL menggunakan pm2.

[dilindungi email]:~$ pm2 mulai aplikasi.js --nama "graphQL" --watch

Bendera '-name' akan memberi nama proses latar belakang, dan kita dapat memulai dan menghentikan aplikasi menggunakan nama tersebut. Bendera '-watch' akan terus memeriksa kode aplikasi untuk segera menerapkan perubahan. Anda dapat mempelajari lebih lanjut tentang pm2 dengan mengunjungi tautan berikut

https://pm2.metrik kunci.aku/

Meminta GraphQL API dari Browser

Kami dapat mengonfigurasi aplikasi graphQL kami untuk membuat kueri graphQL dari browser secara manual. Untuk ini, kita harus membuat titik akhir HTTP terpisah di mana kita akan memasang server API graphQL. Dan titik akhir HTTP ini akan digunakan untuk membuat kueri manual. Berikut adalah kode untuk membuat titik akhir server api graphQLL.

const ekspres = membutuhkan('ekspres');
const graphqlHTTP = membutuhkan('express-graphql');
const buildSchema = membutuhkan('graphql');
const graphQLSchema = buildSchema('
ketik Kueri
pesan: String
'
);
fungsi konstan =
pesan: () =>

kembali 'Anda menggunakan server api graphql';

;
const server = ekspres();
server.gunakan('/graphql', graphqlHTTP(
skema: graphQLSchema,
rootValue: func,
graphiql: benar
));
server.mendengarkan(3000);

Sekarang, setelah menjalankan server, kita dapat mengakses server api graphQL pada rute berikut:.

http://localhost:3000/graphql

Membuat Kueri GraphQL API Menggunakan CLI

Di bagian sebelumnya, kami membuat kueri graphQL dari browser menggunakan graphiql. Sekarang kita akan membuat kueri graphQL menggunakan antarmuka baris perintah di ubuntu. Dari baris perintah, untuk membuat permintaan HTTP POST, kami akan menggunakan modul curl.

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

Meminta GraphQL API Secara Terprogram

Untuk membuat query graphQL secara terprogram, kita akan menggunakan modul 'node-fetch' di node.js. Buka simpul.js di terminal.

[dilindungi email]:~$ node

Sekarang buat permintaan HTTP POST ke server menggunakan modul 'pengambilan simpul'.

GraphQL adalah bahasa kueri yang efisien, dan dapat mengurangi waktu respons kueri yang dibuat ke database. Panggilan api standar untuk mengambil data dari database melibatkan banyak data yang tidak berguna dalam respons, dan karenanya waktu respons meningkat, yang menurunkan efisiensi. Kueri yang dibuat ke database menggunakan GraphQL hanya mengembalikan data yang berguna dan karenanya mengurangi waktu respons. Dalam artikel ini, kami telah menerapkan aplikasi graphQL kami pada instance EC2.

Cara Menampilkan Overlay OSD di Aplikasi dan Game Linux Layar Penuh
Memainkan game layar penuh atau menggunakan aplikasi dalam mode layar penuh bebas gangguan dapat memutus Anda dari informasi sistem yang relevan yang ...
5 Kartu Tangkap Game Teratas
Kita semua telah melihat dan menyukai gameplay streaming di YouTube. PewDiePie, Jakesepticye, dan Markiplier hanyalah beberapa pemain top yang telah m...
Cara Mengembangkan Game di Linux
Satu dekade yang lalu, tidak banyak pengguna Linux yang memprediksi bahwa sistem operasi favorit mereka suatu hari nanti akan menjadi platform game po...