Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Apigee Edge'de hangi Node.js 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 bulunduğunu belirlemek için aşağıdaki tabloyu kullanın. Bazı durumlarda, dahil edilen modüller yalnızca kısmen desteklenir. Bunlar, Node.js'ye yerleşik olarak bulunan modüllerdir.| Modül | Durum | Notlar |
|---|---|---|
assert |
Destekleniyor | |
buffer |
Destekleniyor | |
child_process |
Kısıtlanmış | Alt işlem oluşturulmaya çalışılırsa istisna oluşturulur. Ancak, alt komut dosyaları oluşturmak için "fork" desteklenir. |
cluster |
Devre dışı | cluster.isMaster yöntemi her zaman doğru değerini döndürür ve diğer yöntemler uygulanmaz. Her Node.js komut dosyasının bir kopyası her Edge mesaj işleyicisine dağıtılır. |
crypto |
Destekleniyor | |
dns |
Destekleniyor | |
domain |
Destekleniyor | |
dgram |
Kısıtlanmış | Apigee ortamındaki Node.js uygulamaları, ağ mimarimiz nedeniyle UDP üzerinden internetteki hizmetlere erişemez. |
events |
Destekleniyor | |
fs |
Kısıtlanmış | Dosya sistemi erişimi, komut dosyasının başlatıldığı dizinle (/resources/node dizini) sınırlıdır. Node.js komut dosyaları, bu dizindeki dosyaları okuyup yazabilir (örneğin, geçici bir çizim alanı olarak). Ancak dosyaların ne kadar süreyle kalacağı garanti edilmez. |
http |
Destekleniyor | Gelen isteklerin sanal ana makinesi ve yolu, HTTP modülü tarafından değil, API proxy'si tarafından belirtilir. Daha fazla bilgi için "http ve https modülleri için destek hakkında" başlıklı makaleye bakın. |
https |
Destekleniyor | "https" sunucusu oluşturmak, "http" sunucusu oluşturmakla aynı şekilde çalışır. Daha fazla bilgi için "http ve https modülleri için destek hakkında" başlıklı makaleye bakın. |
module |
Destekleniyor | |
net |
Kısıtlanmış | Gelen TCP bağlantılarını dinleme girişimleri 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 hata, Apigee Edge altyapısındaki bir günlük dosyasına yönlendirilir. Bu günlükleri, API proxy'niz için Apigee Edge yönetim arayüzünde Node.js Günlükleri düğmesini tıklayarak 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 iletebilirsiniz. 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'deki gibi çalışır. Ayrıntılar için Apigee Edge'de TLS (SSL) Node.js modülünü kullanma başlıklı makaleyi inceleyin. |
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 Trireme ve Apigee Edge'de çalışan Trireme tarafından desteklenen ek modüller listelenmektedir. Trireme, Apigee Edge'de çalışan açık kaynaklı Node.js kapsayıcısıdır. Java sanal makinesinde (JVM) Node.js komut dosyalarını çalıştırmak için tasarlanmıştır. Bu modüllerin tümü 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 olanak tanır. Bu modülü kullanarak akış değişkenlerine erişebilir ve bunları değiştirebilir, güvenli depodan veri alabilir, Edge önbelleğini, kotayı ve OAuth hizmetlerini kullanabilirsiniz. Ayrıca apigee-access modülünü kullanma başlıklı makaleyi de inceleyin. |
| trireme-support | Node.js uygulamalarının Trireme'e özgü özelliklerden yararlanmasını sağlar. Şu anda yalnızca bir özellik desteklenmektedir: Java'da oluşturulan Node.js modüllerini yükleme. Not: loadJars, Edge Cloud'da desteklenmez. |
| trireme-xslt | XLST işleme sürecinin soyut bir görünümünü sunar. Node.js uygulamaları Java'da çalıştırıldığında XSLT'nin verimli bir şekilde işlenmesine olanak tanımak için özellikle Trireme platformu için 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. |
Sık kullanılan Node.js modülleri için destek
Node.js komut dosyalarıyla ilgili kısıtlamalar
Ancak Edge'in Node.js komut dosyalarıyla ilgili aşağıdaki 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 (yani /resources/node diziniyle) sınırlıdır. Node.js komut dosyaları, bu dizindeki dosyaları okuyup yazabilir (örneğin, geçici bir çalışma alanı olarak). Ancak dosyaların ne kadar süreyle kalacağı garanti edilmez.
- Gelen TCP bağlantılarını dinleme girişimleri istisna oluşturur.
- Kullanıcı kimliği, grup üyeliği ve çalışma diziniyle ilgili işlevler desteklenmez.
- Standart giriş için, TargetEndpoint'in ScriptTarget öğesini kullanarak bağımsız değişkenler iletmekle sınırlısınız. Daha fazla bilgi için Gelişmiş
ScriptTarget yapılandırması bölümüne bakın.
- Standart çıkış için, Edge yönetim kullanıcı arayüzünde proxy'niz için Node.js günlükleri düğmesini kullanmakla sınırlısınız. "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ı modüller desteklenmez.
- Promises ve Generators gibi EcmaScript 6 özelliklerine bağlı 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ı ayarlama
Edge for Private Cloud, Node.js kodunun "10." ile başlayan IP adreslerine erişmesini kısıtlayabilir. "192.168" ve localhost. Bu IP adreslerine erişmeye çalışırsanız aşağıdaki biçimde 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. Bu özelliğin varsayılan değeri şudur:
- 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 sonraki sürümler: conf_nodejs_connect.ranges.denied= (yani kısıtlama yok)
Bu özelliği ayarlamak için:
- message-processor.properties dosyasını bir düzenleyicide açın. Dosya yoksa oluşturun:
> vi /<inst_root>/apigee/customer/application/message-processor.properties - Özelliği 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 İşleyici'yi yeniden başlatın:
> /<inst_root>/apigee/apigee-service/bin/apigee-service edge-message-processor restart
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 bu komut dosyası yalnızca yürütülür ve çıkar.
Node.js'deki http ve https modüllerinin listen yöntemi, bağlantı noktası numarasını parametre olarak 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 zorunludur ancak Apigee Edge bu parametreyi yoksayar. Bunun yerine, Node.js komut dosyasının çalıştığı API proxy'si, dinlediği "sanal ana makineyi" belirtir ve Node.js uygulaması, diğer tüm Apigee Edge proxy'leri 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 kullanılabilir:
default ve secure. Daha fazla bilgi için
Sanal Ana Makine Alma ve API
geliştirme yaşam döngüsü başlıklı makaleleri inceleyin.
apigeetool deploynodeapp komutu, Node.js uygulaması etrafında bir Apigee Edge proxy sarmalayıcısı oluşturur. Dağıtıldığında Node.js uygulaması, 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 makinesinde dinleyecek şekilde ayarlanırsa HTTPS kullanan gelen istekleri kabul eder.
Giden istekleri işleme
Apigee Edge'deki Node.js uygulamaları, gelen trafiği almanın yanı sıra diğer Node.js uygulamaları gibi giden istekler göndermek için http ve https modüllerini kullanabilir. Bu modüller, Node.js'de her zaman olduğu gibi çalışır.
TLS modülü desteğini 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şimi sağlamak için OpenSSL'yi 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'lerin 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 kullanılabilir: 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ü başlıklı makalelere bakın.
Şimdi de Apigee Edge'in Node.js uygulamalarındaki gelen ve giden istekler için TLS (SSL) iletişimini nasıl işlediğine bakalım:
Gelen istekleri işleme
Kuruluşunuz için sanal ana makinelerin nasıl yapılandırıldığına bağlı olarak Edge aşağıdaki seçenekleri sunar:
- API proxy'si
defaultsanal ana makinesinde dinleyecek şekilde yapılandırılmışsa HTTP üzerinden istekleri kabul eder. - API proxy'si
securesanal ana makinesinde dinleyecek şekilde yapılandırılmışsa HTTPS üzerinden istekleri kabul eder. URL,apigee.netalanında olacak ve*.apigee.netiçin joker karakterli bir SSL sertifikası kullanılacaktır. Uygulamalarapigee.netalanına istek gönderdiği sürece SSL sertifikası normal şekilde doğrulanır.
Giden istekleri işleme
tls modülüyle giden istekleri, Node.js'de normalde yaptığınız gibi gönderebilirsiniz. Temel olarak, istemci tarafı anahtarlarını ve sertifikalarını (.pem dosyaları) resources/node dizinine eklemeniz ve bunları komut dosyanızda yüklemeniz gerekir. tls modülünü ve yöntemlerini kullanma hakkında bilgi edinmek için Node.js tls modülü belgelerine 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>