Anda sedang melihat dokumentasi Apigee Edge.
Buka
Dokumentasi Apigee X. info
Versi Node.js yang didukung Apigee Edge?
Edge saat ini mendukung Node.js 0.10.32.
Modul Node.js standar manakah didukung di Edge?
Gunakan tabel berikut untuk menentukan modul Node.js standar mana yang disertakan di Edge. Dalam beberapa kasus, modul yang disertakan hanya didukung sebagian. Berikut adalah modul yang merupakan bawaan di Node.js.Modul | Status | Catatan |
---|---|---|
assert |
Didukung | |
buffer |
Didukung | |
child_process |
Dibatasi | Pengecualian akan ditampilkan jika ada upaya untuk memunculkan subproses. Namun, "garpu" didukung untuk memunculkan subskrip. |
cluster |
Nonaktif | Metode cluster.isMaster selalu menampilkan nilai benar, dan metode lainnya tidak diimplementasikan. 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 kita. |
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 goresan sementara, tetapi tidak ada jaminan untuk
berapa lama file
tersebut akan bertahan. |
http |
Didukung | Host virtual dan jalur untuk permintaan masuk ditetapkan di Proxy API, bukan berdasarkan modul HTTP. Lihat "Memahami dukungan untuk http dan https modul" untuk informasi selengkapnya. |
https |
Didukung | Membuat "https" server berperilaku identik dengan "http" server tertentu. Lihat "Memahami dukungan untuk modul http dan https" untuk selengkapnya tidak akurat atau tidak sesuai. |
module |
Didukung | |
net |
Dibatasi | Upaya untuk memproses 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 Apigee Edge infrastruktur IT. Anda dapat melihat log ini dengan mengklik Log Node.js dan UI pengelolaan Apigee Edge untuk proxy API Anda. Tidak ada input standar untuk skrip yang berjalan di Apigee Edge. Namun, Anda bisa meneruskan argumen menggunakan elemen ScriptTarget dari TargetEndpoint. Lihat Konfigurasi ScriptTarget lanjutan untuk informasi selengkapnya. |
stream |
Didukung | |
string_decoder |
Didukung | |
timers |
Disertakan | |
tls |
Didukung | Parameter Transport Layer Security (TLS) pada dasarnya berfungsi dengan cara yang sama Node.js reguler. 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. Layanan ini dirancang untuk menjalankan skrip Node.js di dalam Java Virtual Machine (JVM). Semua modul-modul ini tersedia di NPM.
Modul | Deskripsi |
---|---|
apigee-access | Memungkinkan aplikasi Node.js yang berjalan di platform Apigee Edge cara untuk mengakses Fungsi khusus Apigee. Anda dapat menggunakan modul ini untuk: mengakses dan mengubah alur variabel, mengambil data dari penyimpanan aman, dan menggunakan cache, kuota, dan OAuth Edge layanan IT perusahaan mereka. Lihat juga Menggunakan apigee-access modul. |
trireme-support | Memungkinkan aplikasi Node.js memanfaatkan fitur khusus untuk Trireme. Saat ini hanya ada satu fitur yang didukung -- memuat modul Node.js yang dibangun di Java. Catatan: loadJars tidak didukung di Edge Cloud. |
trireme-xslt | Menyajikan abstraksi pemrosesan XLST. Aplikasi ini didesain khusus untuk Trireme untuk memungkinkan pemrosesan XSLT yang efisien ketika aplikasi Node.js dijalankan di Java. |
trireme-jdbc | Memberikan akses ke JDBC dari Node.js. Catatan: Tidak didukung di Edge Cloud. Untuk Edge Pribadi Cloud, Anda dapat menempatkan file JAR JDPC di jalur class dan menggunakan modul ini. |
Dukungan untuk modul Node.js yang umum digunakan
Batasan pada skrip Node.js
Namun, perhatikan bahwa Edge memberlakukan batasan tertentu pada skrip Node.js, seperti berikut ini:
- 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: /resources/node. Skrip Node.js dapat membaca dan menulis file dalam direktori ini, misalnya sebagai area gosok sementara, tetapi tidak ada jaminan mengenai berapa lama file akan akan dipertahankan.
- Upaya untuk memproses koneksi TCP yang masuk akan menghasilkan pengecualian.
- Fungsi untuk memanipulasi ID pengguna, keanggotaan grup, dan direktori kerja tidak didukung.
- Untuk input standar, Anda dibatasi untuk meneruskan argumen menggunakan ScriptTarget
elemen TargetEndpoint. Lihat Lanjutan
Konfigurasi ScriptTarget untuk mengetahui informasi selengkapnya.
- Untuk output standar, Anda dibatasi untuk menggunakan tombol Log Node.js di Edge
untuk proxy Anda. Anda juga bisa menggunakan "apigeetool getlogs" perintah. Untuk selengkapnya
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.
- Flag runtime Node.js seperti "harmony-proxy" tidak didukung.
Menyetel pembatasan koneksi IP di Edge untuk Private Cloud
Edge untuk Private Cloud dapat membatasi kode Node.js agar tidak mengakses alamat IP di awal dengan “10". "192.168", dan {i>localhost<i}. Jika Anda mencoba mengakses alamat IP ini, Anda akan melihat {i>error<i} 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 di properti 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
. Jika file tidak ada, buat file tersebut:
> vi /<inst_root>/apigee/customer/application/message-processor.properties - Tetapkan properti sesuai keinginan. Misalnya, untuk menolak akses hanya ke localhost:
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - Simpan perubahan.
- Pastikan file properti dimiliki oleh 'apigee' pengguna:
> 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 mulai ulang
Memahami dukungan untuk modul http dan https
Semua aplikasi Node.js yang berjalan di Apigee Edge harus menggunakan http
atau
https
untuk memproses permintaan masuk. Jika Anda men-deploy skrip yang
tidak memproses permintaan masuk, ia hanya
akan mengeksekusi 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.'); });
"Port" ini diperlukan di Node.js, tetapi Apigee Edge mengabaikan parameter ini. Sebagai gantinya, proxy API tempat skrip Node.js berjalan menentukan "host virtual" yang didengarkan, dan aplikasi Node.js menggunakan host virtual yang sama, sama seperti Apigee Edge lainnya {i>proxy<i}.
Setiap lingkungan di Apigee memiliki minimal satu host virtual. {i>Host<i} virtual mendefinisikan alamat
setelan untuk terhubung dengan organisasi Apigee. Semua proxy API di suatu lingkungan berbagi
{i>host<i} virtual yang sama. Secara default, dua host virtual tersedia untuk setiap lingkungan:
default
dan secure
. Untuk informasi selengkapnya, lihat
Mendapatkan Virtual Host dan API
siklus proses pengembangan.
Perintah apigeetool deploynodeapp
membuat wrapper proxy Apigee Edge
seputar aplikasi Node.js. Saat di-deploy, aplikasi Node.js akan memantau
{i>host<i} virtual yang ditentukan
untuk lingkungan tersebut. URL untuk aplikasi Node.js akan selalu
http://{org_name}-{env_name}.apigee.net
.
Menangani panggilan masuk permintaan
Seperti aplikasi Apigee Edge lainnya, jika aplikasi proxy sudah disiapkan untuk mendengarkan
secure
, lalu akan menerima permintaan masuk menggunakan HTTPS.
Menangani panggilan keluar permintaan
Selain menerima traffic masuk, aplikasi Node.js di dalam Apigee Edge dapat menggunakan
Modul http
dan https
untuk membuat permintaan keluar seperti Node.js lainnya
aplikasi. Modul-modul ini berfungsi seperti biasa di dalam Node.js.
Memahami dukungan untuk modul tls
Apigee Edge mendukung modul tls Node.js.
Modul ini menggunakan OpenSSL untuk menyediakan Transport Layer Security (TLS) dan/atau Secure Socket Layer
(SSL) terenkripsi. Anda dapat menggunakan modul tls
untuk membuat
yang terhubung ke layanan backend dari aplikasi
Node.js yang berjalan di Edge.
Untuk memahami cara kerja modul tls
di Apigee Edge, penting untuk
memahami cara virtual hosts
digunakan di Apigee Edge. Setiap lingkungan di Apigee
memiliki setidaknya satu {i>host<i} virtual. {i>Host<i} virtual menentukan pengaturan HTTP untuk koneksi dengan
Organisasi Apigee. Semua proxy API di suatu lingkungan memiliki host virtual yang sama. Secara {i>default<i},
dua host virtual tersedia untuk setiap lingkungan: default
dan
secure
. Untuk informasi selengkapnya tentang host virtual, lihat
Mendapatkan Virtual Host dan API
siklus proses pengembangan.
Sekarang, mari kita lihat bagaimana Apigee Edge menangani komunikasi TLS (SSL) untuk permintaan masuk dan keluar permintaan pada aplikasi Node.js:
Menangani panggilan masuk permintaan
Bergantung pada cara host virtual dikonfigurasi untuk organisasi Anda, Edge menyediakan opsi:
- Jika proxy API dikonfigurasi untuk memproses di host virtual
default
, menerima permintaan melalui HTTP. - Jika proxy API dikonfigurasi untuk memproses di host virtual
secure
, menerima permintaan melalui HTTPS. URL akan berada di bawah domainapigee.net
, dan sertifikat SSL karakter pengganti untuk*.apigee.net
akan digunakan. Selama aplikasi membuat permintaan ke domainapigee.net
, sertifikat SSL akan memvalidasi seperti biasanya.
Menangani panggilan keluar permintaan
Anda dapat membuat permintaan keluar dengan modul tls
dengan cara yang sama seperti yang Anda lakukan
biasanya di Node.js. Pada dasarnya, Anda perlu menambahkan
kunci dan sertifikat sisi klien
(file .pem
) ke direktori resources/node
dan muat di dalam
{i>script<i}. Untuk informasi tentang cara menggunakan modul tls
dan metodenya, lihat
Dokumentasi modul tls Node.js.
Konfigurasi ScriptTarget Lanjutan
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>