Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Apigee Edge'de Node.js'nin hangi sürümü desteklenir?
Edge şu anda Node.js 0.10.32'yi desteklemektedir.
Edge'de hangi standart Node.js modülleri desteklenir?
Edge'de hangi standart Node.js modüllerinin yer aldığını belirlemek için aşağıdaki tabloyu kullanın. Bazı durumlarda, dahil edilen modüller yalnızca kısmen desteklenir. Bunlar Node.js'de yerleşik olarak bulunan modüllerdir.Modül | Durum | Notlar |
---|---|---|
assert |
Destekleniyor | |
buffer |
Destekleniyor | |
child_process |
Kısıtlı | Bir alt işlem oluşturma girişiminde bulunulduğunda bir istisna oluşur. Bununla birlikte, alt simgeleri üretmek için "çatal" desteklenir. |
cluster |
Devre dışı | küme.isMaster yöntemi her zaman doğru değerini döndürür ve diğer yöntemler uygulanmaz. Her bir Edge mesaj işlemcisine, her Node.js komut dosyasının bir kopyası dağıtılır. |
crypto |
Destekleniyor | |
dns |
Destekleniyor | |
domain |
Destekleniyor | |
dgram |
Kısıtlı | Apigee ortamındaki Node.js uygulamaları, ağ mimarimiz nedeniyle UDP üzerinden internetteki hizmetlere erişemeyecek. |
events |
Destekleniyor | |
fs |
Kısıtlı | Dosya sistemi erişimi, komut dosyasının başlatıldığı dizinle sınırlıdır: /resources/node dizini. Node.js komut dosyaları, bu dizindeki dosyaları, örneğin geçici bir çalışma alanı olarak okuyup yazabilir ancak dosyaların ne kadar süre boyunca silineceğine dair herhangi bir garanti verilmez. |
http |
Destekleniyor | Gelen isteklerin sanal ana makinesi ve yolu, HTTP modülünde değil API Proxy'sinde belirtilir. Daha fazla bilgi için "http ve https modülleri için desteği anlama" bölümüne bakın. |
https |
Destekleniyor | "https" sunucusu oluşturulduğunda, "http" sunucusuyla aynı şekilde davranır. Daha fazla bilgi için "http ve https modülleri için desteği anlama" bölümüne bakın. |
module |
Destekleniyor | |
net |
Kısıtlı | Gelen TCP bağlantılarını dinleme denemeleri istisna oluşturur. |
path |
Destekleniyor | |
module |
Destekleniyor | |
process |
Kısmi destek | Kullanıcı kimliğini, grup üyeliğini ve çalışma dizinini değiştirme işlevi desteklenmez. |
punycode |
Destekleniyor | |
querystring |
Destekleniyor | |
readline |
Devre dışı | Apigee Edge'de çalışan komut dosyaları için standart bir giriş yoktur. |
repl |
Devre dışı | Apigee Edge'de çalışan komut dosyaları için standart bir giriş yoktur. |
module |
Dahil | |
STDIO |
Destekleniyor |
Standart çıkış ve hatalar, Apigee Edge altyapısındaki bir günlük dosyasına yönlendirilir. API proxy'niz için Apigee Edge yönetim kullanıcı arayüzündeki Node.js Günlükleri düğmesini ve tıklayarak bu günlükleri görüntüleyebilirsiniz. Apigee Edge'de çalışan komut dosyaları için standart bir giriş yoktur. Ancak, TargetEndpoint'in ScriptTarget öğesini kullanarak bağımsız değişkenleri aktarabilirsiniz. Daha fazla bilgi için Gelişmiş ScriptTarget yapılandırması bölümüne bakın. |
stream |
Destekleniyor | |
string_decoder |
Destekleniyor | |
timers |
Dahil | |
tls |
Destekleniyor | Taşıma Katmanı Güvenliği (TLS) parametreleri, temel olarak normal Node.js'de olduğu gibi çalışır. Ayrıntılar için Apigee Edge'de TLS (SSL) Node.js modülünü kullanma bölümüne bakın. |
tty |
Devre dışı | Apigee Edge'de çalışan komut dosyaları için standart bir giriş yoktur. |
url |
Destekleniyor | |
util |
Destekleniyor | |
vm |
Destekleniyor | |
zlib |
Destekleniyor |
Desteklenen diğer modüller
Bu bölümde, standart Node.js'de desteklenmeyen ancak Apigee Edge'de çalışan Trireme ve Trireme tarafından desteklenen ek modüller listelenmektedir. Trireme, Apigee Edge'de çalışan açık kaynaklı Node.js kapsayıcısıdır. Node.js komut dosyalarını bir Java Sanal Makinesi (JVM) içinde çalıştırmak üzere tasarlanmıştır. Bu modüllerin tamamı NPM'de kullanılabilir.
Modül | Açıklama |
---|---|
Apigee-access | Apigee Edge platformunda çalışan Node.js uygulamalarının Apigee'ye özgü işlevlere erişmesine izin verir. Akış değişkenlerine erişmek ve bunları değiştirmek, güvenli depodan veri almak ve Edge önbelleği, kota ve OAuth hizmetlerini kullanmak için bu modülü kullanabilirsiniz. Ayrıca bkz. Apigee-access modülünü kullanma. |
trireme-destek | Node.js uygulamalarının, Trireme'e özgü özelliklerden yararlanabilmesini sağlar. Şu anda desteklenen tek bir özellik vardır: Java'da yerleşik olarak bulunan Node.js modüllerini yükleme. Not: loadJars, Edge Cloud'da desteklenmez. |
trireme-xlsx | XLST işlemeyi soyutlar. Node.js uygulamaları Java'da çalıştırıldığında XSLT'nin verimli bir şekilde işlenmesini sağlamak amacıyla Trireme platformu için özel olarak tasarlanmıştır. |
trireme-jdbc | Node.js'den JDBC'ye erişim sağlar. Not: Edge Cloud'da desteklenmez. Edge Private Cloud için JDPC JAR dosyalarını sınıf yoluna yerleştirebilir ve bu modülü kullanabilirsiniz. |
Yaygın olarak kullanılan Node.js modülleri için destek
Node.js komut dosyalarındaki kısıtlamalar
Bununla birlikte, Edge'in Node.js komut dosyalarına aşağıdakiler gibi belirli kısıtlamalar uyguladığını unutmayın:
- Apigee Edge ortamındaki Node.js uygulamaları, Edge ağ mimarisi nedeniyle UDP üzerinden internetteki hizmetlere erişemez.
- Dosya sistemi erişimi, Node.js komut dosyasının başlatıldığı dizinle sınırlıdır: /resources/node dizini. Node.js komut dosyaları, bu dizindeki dosyaları, örneğin geçici bir çalışma alanı olarak okuyabilir ve yazabilir. Ancak dosyaların ne kadar süre boyunca korunacağına dair bir garanti yoktur.
- Gelen TCP bağlantılarını dinleme denemeleri istisna oluşturur.
- Kullanıcı kimliğini, grup üyeliğini ve çalışma dizinini değiştirme işlevi desteklenmez.
- Standart girişler için TargetEndpoint'in ScriptTarget öğesini kullanarak bağımsız değişkenleri iletebilirsiniz. Daha fazla bilgi için Gelişmiş ScriptTarget yapılandırması bölümüne bakın.
- Standart çıkışta, proxy'niz için Edge yönetim kullanıcı arayüzündeki Node.js Günlükleri düğmesini kullanabilirsiniz. "Apigeetool getlogs" komutunu da kullanabilirsiniz. Daha fazla bilgi için Bağımsız bir Node.js uygulamasını dağıtma başlıklı makaleyi inceleyin.
- Yerel koda bağlı olan modüller desteklenmez.
- Vaatler ve Oluşturucular gibi EcmaScript 6 özelliklerini temel alan modüller
desteklenmez.
- "harmony-proxies" gibi Node.js çalışma zamanı işaretleri desteklenmez.
Private Cloud için Edge'de IP bağlantısı kısıtlamaları belirleme
Private Cloud için Edge, Node.js kodunun "10" ile başlayan IP adreslerine erişimini kısıtlayabilir. "192.168" ve localhost'u içerir. Bu IP adreslerine erişmeye çalışırsanız şu şekilde bir hata görürsünüz:
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
Bu kısıtlamaları, her bir Mesaj İşleyici için message-processors.properties dosyasında conf_nodejs_connect.ranges.denied özelliğini ayarlayarak değiştirebilirsiniz. Varsayılan olarak bu özellik şu değere sahiptir:
- Edge 4.17.05 ve önceki sürümler: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 ve üzeri: conf_nodejs_connect.ranges.denied= (kısıtlama yok)
Bu özelliği ayarlamak için:
- Bir düzenleyicide message-processor.properties dosyasını açın. Dosya mevcut değilse oluşturun:
> vi /<inst_root>/Apigee/customer/application/message-processor.properties - Mülkü istediğiniz gibi ayarlayın. Örneğin, yalnızca localhost'a erişimi reddetmek için:
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - Değişikliklerinizi kaydedin.
- Özellikler dosyasının 'Apigee' kullanıcısına ait olduğundan emin olun:
> chown Apigee:Apigee /<inst_root>/Apigee/customer/application/message-processor.properties - Mesaj İşleyiciyi yeniden başlatın:
> /<inst_root>/Apigee/Apigee-service/bin/Maalesef-service Edge-message-processor yeniden başlat
http ve https modülleri için desteği anlama
Apigee Edge'de çalışan tüm Node.js uygulamaları, gelen istekleri dinlemek için http
veya https
modülünü kullanmalıdır. Gelen istekleri dinlemeyen bir komut dosyası dağıtırsanız yalnızca yürütülür ve çıkış yapılır.
Node.js'deki http
ve https
modüllerinin listen
yöntemi, parametre olarak bir bağlantı noktası numarası alır. Örneğin:
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
Bu "bağlantı noktası" bağımsız değişkeni Node.js'de gereklidir, ancak Apigee Edge bu parametreyi yoksayar. Bunun yerine, Node.js komut dosyasının çalıştığı API proxy'si, dinleme yaptığı "sanal ana makineyi" belirtir ve Node.js uygulaması, diğer herhangi bir Apigee Edge proxy'sinde olduğu gibi aynı sanal ana makineleri kullanır.
Apigee'deki her ortamda en az bir sanal ana makine bulunur. Sanal ana makine, Apigee kuruluşuyla bağlantı için HTTP ayarlarını tanımlar. Bir ortamdaki tüm API proxy'leri aynı sanal ana makineleri paylaşır. Varsayılan olarak her ortam için iki sanal ana makine mevcuttur: default
ve secure
. Daha fazla bilgi için
Sanal Ana Makine Alma ve API geliştirme yaşam döngüsü bölümlerine bakın.
apigeetool deploynodeapp
komutu, Node.js uygulaması çevresinde bir Apigee Edge proxy sarmalayıcı oluşturur. Node.js uygulaması dağıtıldığında ortam için tanımlanan varsayılan sanal ana makineyi dinler. Node.js uygulamasının URL'si her zaman http://{org_name}-{env_name}.apigee.net
olur.
Gelen istekleri işleme
Diğer Apigee Edge uygulamalarında olduğu gibi proxy uygulaması secure
sanal ana makinesini dinleyecek şekilde ayarlandıysa HTTPS kullanarak gelen istekleri kabul eder.
Giden istekleri işleme
Apigee Edge içindeki Node.js uygulamaları, gelen trafiği almanın yanı sıra http
ve https
modüllerini kullanarak diğer Node.js uygulamaları gibi giden isteklerde de bulunabilir. Bu modüller, Node.js'de her zaman olduğu gibi çalışır.
tls modülü için desteği anlama
Apigee Edge, Node.js tls modülünü destekler.
Bu modül, Taşıma Katmanı Güvenliği (TLS) ve/veya Güvenli Yuva Katmanı (SSL) şifreli akış iletişimini sağlamak için OpenSSL kullanır. Edge'de çalışan Node.js uygulamalarından arka uç hizmetlerine güvenli bağlantılar oluşturmak için tls
modülünü kullanabilirsiniz.
tls
modülünün Apigee Edge'de nasıl çalıştığını anlamak için virtual hosts
ürününün Apigee Edge'de nasıl kullanıldığını anlamak önemlidir. Apigee'deki her ortamda en az bir sanal ana makine bulunur. Sanal ana makine, Apigee kuruluşuyla bağlantı için HTTP ayarlarını tanımlar. Bir ortamdaki tüm API proxy'leri aynı sanal ana makineleri paylaşır. Varsayılan olarak her ortam için iki sanal ana makine mevcuttur: default
ve secure
. Sanal ana makineler hakkında daha fazla bilgi için
Sanal Ana Makine Alma ve API geliştirme yaşam döngüsü bölümlerine bakın.
Şimdi, Apigee Edge'in Node.js uygulamalarında gelen ve giden istekler için TLS (SSL) iletişimini nasıl işlediğine göz atalım:
Gelen istekleri işleme
Edge, kuruluşunuz için sanal ana makinelerin nasıl yapılandırıldığına bağlı olarak şu seçenekleri sunar:
- API proxy'si,
default
sanal ana makinesini dinleyecek şekilde yapılandırılmışsa HTTP üzerinden istekleri kabul eder. - API proxy'si,
secure
sanal ana makinesini dinleyecek şekilde yapılandırılmışsa HTTPS üzerinden istekleri kabul eder. URL,apigee.net
alanı altında olur ve*.apigee.net
için joker karakter SSL sertifikası kullanılır. Uygulamalarapigee.net
alanına istekte bulunduğu sürece SSL sertifikası normal şekilde doğrulanır.
Giden istekleri işleme
tls
modülü ile giden istekleri, normalde Node.js'de yaptığınız gibi yapabilirsiniz. Temel olarak, resources/node
dizinine istemci tarafı anahtarları ve sertifikaları (.pem
dosyaları) eklemeniz ve bunları komut dosyanızın içine yüklemeniz gerekir. tls
modülünü ve yöntemlerini kullanma hakkında bilgi edinmek için Node.js tls modülü dokümanlarına bakın.
Gelişmiş ScriptTarget Yapılandırması
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>