Anda sedang melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Versi Node.js apa saja yang didukung di Apigee Edge?
Edge saat ini mendukung Node.js 0.10.32.
Modul Node.js standar mana saja yang didukung di Edge?
Gunakan tabel berikut untuk menentukan modul Node.js standar yang disertakan di Edge. Dalam beberapa kasus, modul yang disertakan hanya didukung sebagian. Ini adalah modul yang merupakan bawaan di Node.js.Modul | Status | Catatan |
---|---|---|
assert |
Didukung | |
buffer |
Didukung | |
child_process |
Dibatasi | Pengecualian akan diberikan jika upaya dilakukan untuk melahirkan sub-proses. Namun, "fork" didukung untuk subskrip spawning. |
cluster |
Nonaktif | Metode cluster.isMaster selalu menampilkan nilai benar, dan metode lainnya tidak diterapkan. Satu salinan dari setiap skrip Node.js di-deploy ke setiap pemroses pesan Edge. |
crypto |
Didukung | |
dns |
Didukung | |
domain |
Didukung | |
dgram |
Dibatasi | Aplikasi Node.js di lingkungan Apigee tidak akan dapat mengakses layanan di Internet melalui UDP karena arsitektur jaringan kami. |
events |
Didukung | |
fs |
Dibatasi | Akses sistem file dibatasi pada direktori tempat skrip diluncurkan: direktori /resources/node . Skrip Node.js dapat membaca dan menulis file dalam direktori ini, misalnya sebagai area scratch sementara, tetapi tidak ada jaminan berapa lama file tersebut akan bertahan. |
http |
Didukung | Host virtual dan jalur untuk permintaan masuk ditetapkan dalam Proxy API, bukan oleh modul HTTP. Lihat "Memahami dukungan untuk modul http dan https" untuk informasi selengkapnya. |
https |
Didukung | Membuat server "https" berperilaku identik dengan server "http". Lihat "Memahami dukungan untuk modul http dan https" untuk informasi selengkapnya. |
module |
Didukung | |
net |
Dibatasi | Upaya untuk mendengarkan koneksi TCP yang masuk akan menghasilkan pengecualian. |
path |
Didukung | |
module |
Didukung | |
process |
Dukungan sebagian | Fungsi untuk memanipulasi ID pengguna, keanggotaan grup, dan direktori kerja tidak didukung. |
punycode |
Didukung | |
querystring |
Didukung | |
readline |
Nonaktif | Tidak ada input standar untuk skrip yang berjalan di Apigee Edge. |
repl |
Nonaktif | Tidak ada input standar untuk skrip yang berjalan di Apigee Edge. |
module |
Disertakan | |
STDIO |
Didukung |
Output dan error standar dirutekan ke file log dalam infrastruktur Apigee Edge. Anda dapat melihat log ini dengan mengklik tombol Node.js Logs di dan UI pengelolaan Apigee Edge untuk proxy API Anda. Tidak ada input standar untuk skrip yang berjalan di Apigee Edge. Namun, Anda dapat meneruskan argumen menggunakan elemen ScriptTarget dari TargetEndpoint. Lihat Konfigurasi ScriptTarget Lanjutan untuk informasi lebih lanjut. |
stream |
Didukung | |
string_decoder |
Didukung | |
timers |
Disertakan | |
tls |
Didukung | Parameter Transport Layer Security (TLS) pada dasarnya berfungsi dengan cara yang sama seperti di Node.js biasa. Lihat Menggunakan modul Node.js TLS (SSL) di Apigee Edge untuk mengetahui detailnya. |
tty |
Nonaktif | Tidak ada input standar untuk skrip yang berjalan di Apigee Edge. |
url |
Didukung | |
util |
Didukung | |
vm |
Didukung | |
zlib |
Didukung |
Modul tambahan yang didukung
Bagian ini mencantumkan modul tambahan yang tidak didukung di Node.js standar, tetapi didukung oleh Trireme dan Trireme yang berjalan di Apigee Edge. Trireme adalah container Node.js open source yang berjalan di Apigee Edge. Emulator ini dirancang untuk menjalankan skrip Node.js di dalam Java Virtual Machine (JVM). Semua modul ini tersedia di NPM.
Modul | Deskripsi |
---|---|
akses apigee | Mengizinkan aplikasi Node.js yang berjalan di platform Apigee Edge untuk mengakses fungsionalitas khusus Apigee. Anda dapat menggunakan modul ini untuk: mengakses dan mengubah variabel alur, mengambil data dari penyimpanan yang aman, serta menggunakan layanan cache Edge, kuota, dan OAuth. Lihat juga Menggunakan modul akses apigee. |
dukungan trireme | Memungkinkan aplikasi Node.js memanfaatkan fitur khusus untuk Trireme. Saat ini hanya ada satu fitur yang didukung, yaitu memuat modul Node.js yang di-build di Java. Catatan: loadJars tidak didukung di Edge Cloud. |
trireme-xslt | Menyajikan abstraksi pemrosesan XLST. Library ini dirancang khusus untuk platform Trireme agar memungkinkan pemrosesan XSLT yang efisien saat aplikasi Node.js dijalankan di Java. |
trireme-jdbc | Menyediakan akses ke JDBC dari Node.js. Catatan: Tidak didukung di Edge Cloud. Untuk Edge Private Cloud, Anda dapat menempatkan file JDPC JAR di jalur class dan menggunakan modul ini. |
Dukungan untuk modul Node.js yang umum digunakan
Batasan pada skrip Node.js
Namun, perhatikan bahwa Edge menerapkan pembatasan tertentu pada skrip Node.js, seperti berikut:
- Aplikasi Node.js di lingkungan Apigee Edge tidak dapat mengakses layanan di Internet melalui UDP karena arsitektur jaringan Edge.
- Akses sistem file dibatasi pada direktori tempat skrip Node.js diluncurkan: direktori /resources/node. Skrip Node.js dapat membaca dan menulis file dalam direktori ini, misalnya sebagai area scratch sementara, tetapi tidak ada jaminan berapa lama file tersebut akan bertahan.
- Upaya untuk mendengarkan koneksi TCP yang masuk menghasilkan pengecualian.
- Fungsi untuk memanipulasi ID pengguna, keanggotaan grup, dan direktori kerja tidak didukung.
- Untuk input standar, Anda hanya dapat meneruskan argumen menggunakan elemen ScriptTarget dari TargetEndpoint. Lihat Konfigurasi ScriptTarget Lanjutan untuk informasi lebih lanjut.
- Untuk output standar, Anda hanya dapat menggunakan tombol Node.js Logs di UI pengelolaan Edge untuk proxy Anda. Anda juga dapat menggunakan perintah "apigeetool getlogs". Untuk informasi selengkapnya, lihat Men-deploy aplikasi Node.js mandiri.
- Modul yang bergantung pada kode native tidak didukung.
- Modul yang bergantung pada fitur EcmaScript 6, seperti Promise dan Generator, tidak didukung.
- Tanda runtime Node.js seperti "harmony-proxy" tidak didukung.
Menetapkan pembatasan koneksi IP di Edge untuk Private Cloud
Edge untuk Private Cloud dapat membatasi kode Node.js agar tidak mengakses alamat IP yang dimulai dengan “10.", "192.168", dan {i>localhost<i}. Jika Anda mencoba mengakses alamat IP ini, Anda akan melihat error dalam formulir:
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
Anda dapat mengubah batasan ini dengan menetapkan properti conf_nodejs_connect.ranges.denied dalam file message-processors.properties untuk setiap Pemroses Pesan. Secara default, properti ini memiliki nilai:
- Edge 4.17.05 dan yang lebih lama: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 dan yang lebih baru: conf_nodejs_connect.ranges.denied= (artinya tanpa batasan)
Untuk menetapkan properti ini:
- Buka file message-processor.properties di editor. Jika file tersebut tidak ada, buat file tersebut:
> vi /<inst_root>/apigee/customer/application/message-processor.properties - Tetapkan properti sesuai keinginan. Misalnya, untuk menolak akses ke localhost saja:
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - Simpan perubahan.
- Pastikan file properti dimiliki oleh pengguna 'apigee':
> chown apigee:apigee /<inst_root>/apigee/customer/application/message-processor.properties - Mulai ulang Pemroses Pesan:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Memahami dukungan untuk modul http dan https
Semua aplikasi Node.js yang berjalan di Apigee Edge harus menggunakan modul http
atau https
untuk memproses permintaan masuk. Jika Anda men-deploy skrip yang tidak memproses permintaan masuk, skrip akan dijalankan dan keluar.
Metode listen
dari modul http
dan https
di Node.js menggunakan nomor port sebagai parameter. Contoh:
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
Argumen "port" ini diperlukan dalam Node.js, tetapi Apigee Edge mengabaikan parameter ini. Sebagai gantinya, proxy API tempat skrip Node.js dijalankan menentukan "host virtual" yang mendengarkannya, dan aplikasi Node.js menggunakan host virtual yang sama tersebut, sama seperti proxy Apigee Edge lainnya.
Setiap lingkungan di Apigee memiliki setidaknya satu host virtual. Host virtual menentukan setelan HTTP untuk koneksi dengan organisasi Apigee. Semua proxy API dalam lingkungan memiliki host virtual yang sama. Secara default, dua host virtual tersedia untuk setiap lingkungan:
default
dan secure
. Untuk mengetahui informasi selengkapnya, lihat
Mendapatkan Host Virtual dan Siklus proses pengembangan API.
Perintah apigeetool deploynodeapp
menghasilkan wrapper proxy Apigee Edge
di sekitar aplikasi Node.js. Saat di-deploy, aplikasi Node.js akan memproses di host virtual default yang ditentukan untuk lingkungan. URL untuk aplikasi Node.js akan selalu http://{org_name}-{env_name}.apigee.net
.
Menangani permintaan masuk
Seperti aplikasi Apigee Edge lainnya, jika aplikasi proxy disiapkan untuk memproses di host virtual secure
, aplikasi tersebut akan menerima permintaan masuk menggunakan HTTPS.
Menangani permintaan keluar
Selain menerima traffic masuk, aplikasi Node.js di dalam Apigee Edge dapat menggunakan modul http
dan https
untuk membuat permintaan keluar seperti aplikasi Node.js lainnya. Modul-modul ini berfungsi seperti biasa di dalam Node.js.
Memahami dukungan untuk modul tls
Apigee Edge mendukung modul Node.js tls.
Modul ini menggunakan OpenSSL untuk menyediakan komunikasi streaming terenkripsi Transport Layer Security (TLS) dan/atau Secure Socket Layer (SSL). Anda dapat menggunakan modul tls
untuk membuat koneksi yang aman ke layanan backend dari aplikasi Node.js yang berjalan di Edge.
Untuk memahami cara kerja modul tls
di Apigee Edge, penting untuk memahami cara penggunaan virtual hosts
di Apigee Edge. Setiap lingkungan di Apigee memiliki setidaknya satu host virtual. Host virtual menentukan setelan HTTP untuk koneksi dengan organisasi Apigee. Semua proxy API dalam lingkungan memiliki host virtual yang sama. Secara default,
dua host virtual tersedia untuk setiap lingkungan: default
dan
secure
. Untuk informasi selengkapnya tentang host virtual, lihat
Mendapatkan Host Virtual dan siklus proses
pengembangan API.
Sekarang, mari kita lihat bagaimana Apigee Edge menangani komunikasi TLS (SSL) untuk permintaan masuk dan keluar pada aplikasi Node.js:
Menangani permintaan masuk
Bergantung pada cara host virtual dikonfigurasi untuk organisasi Anda, Edge menyediakan opsi berikut:
- Jika proxy API dikonfigurasi untuk melakukan pemrosesan pada host virtual
default
, proxy tersebut akan menerima permintaan melalui HTTP. - Jika proxy API dikonfigurasi untuk memproses host virtual
secure
, proxy akan menerima permintaan melalui HTTPS. URL akan berada di domainapigee.net
, dan sertifikat SSL karakter pengganti untuk*.apigee.net
akan digunakan. Selama aplikasi membuat permintaan ke domainapigee.net
, sertifikat SSL akan memvalidasi secara normal.
Menangani permintaan keluar
Anda dapat membuat permintaan keluar dengan modul tls
dengan cara yang sama seperti
biasa di Node.js. Pada dasarnya, Anda perlu menambahkan kunci dan sertifikat sisi klien
(file .pem
) ke direktori resources/node
dan memuatnya di dalam skrip
Anda. Untuk informasi tentang penggunaan modul tls
dan metodenya, lihat dokumentasi modul tls Node.js.
Konfigurasi Target Script Lanjutan
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>