Node.js modülleri için Edge desteğini anlama

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

Node.js'nin hangi sürümü desteklenir? Apigee Edge?

Edge, şu anda Node.js 0.10.32'yi desteklemektedir.

Standart Node.js modülleri destekleniyor mu?

Aşağıdaki tablodan, hangi standart Node.js modüllerinin dahil edildi. Bazı durumlarda, dahil edilen modüller yalnızca kısmen desteklenir. Modüller .

Modül Durum Notlar
assert Destekleniyor
buffer Destekleniyor
child_process Kısıtlanmış Bir alt işlem oluşturmak için herhangi bir girişimde bulunulursa istisna olarak kabul edilir. Ancak, "çatal" alt simge oluşturmak için desteklenir.
cluster Devre dışı kümeniz.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ı tüm Edge mesaj işlemcilerine dağıtılır.
crypto Destekleniyor
dns Destekleniyor
domain Destekleniyor
dgram Kısıtlanmış Apigee ortamındaki Node.js uygulamaları ağ mimarimizden dolayı UDP üzerinden İnternet'e erişemez.
events Destekleniyor
fs Kısıtlanmış Dosya sistemine erişim, komut dosyasının başlatıldığı dizinle sınırlıdır: /resources/node dizini. Node.js komut dosyaları, geçici bir çalışma alanı olarak gösterilebilir, ancak ne kadar süreyle tutulacağını gösterir.
http Destekleniyor Gelen isteklerin sanal ana makinesi ve yolu API Proxy'sinde belirtilir, e-posta yazacaksınız. "http ve https için desteği anlama modüllerini konulu videomuzu izleyin.
https Destekleniyor "https" oluşturma sunucu "http" ile aynı şekilde davranır sunucu. Bkz. "http ve https modülleri için desteği anlama" daha fazlası ekleyebilirsiniz.
module Destekleniyor
net Kısıtlanmış Gelen TCP bağlantılarını dinleme denemeleri bir istisna oluşturur.
path Destekleniyor
module Destekleniyor
process Kısmi destek User-ID'yi, grup üyeliğini ve çalışma dizinini değiştirme işlevi şu şekilde değil: desteklenir.
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'de bir günlük dosyasına yönlendirilir geliştirmenin harika bir yoludur. Node.js Günlükleri'ni tıklayarak bu günlükleri görüntüleyebilirsiniz. düğmesini ve Apigee Edge yönetim kullanıcı arayüzünü kullanmanız gerekir.

Apigee Edge'de çalışan komut dosyaları için standart bir giriş yoktur. Ancak, . Gelişmiş ScriptTarget yapılandırması bölümünü inceleyin ve daha fazla bilgi edinin.

stream Destekleniyor
string_decoder Destekleniyor
timers Dahil
tls Destekleniyor Taşıma Katmanı Güvenliği (TLS) parametreleri genel olarak normal Node.js'dir. Apigee Edge'de TLS (SSL) Node.js modülünü kullanma bölümüne bakın. inceleyebilirsiniz.
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 üzerinde çalışan Trireme ve Trireme tarafından desteklenir. Trireme, şurada çalışan açık kaynaklı Node.js kapsayıcısıdır: Apigee Edge. Node.js komut dosyalarını Java Sanal Makinesi'nde (JVM) çalıştırmak üzere tasarlanmıştır. Tümü NPM'de bu modüller kullanılabilir.

Modül Açıklama
apigee-access Apigee Edge platformunda çalışan Node.js uygulamalarına erişim izni verir Apigee'ye özel işlevler. Bu modülü şu işlemler için kullanabilirsiniz: akışa erişmek ve akışı değiştirmek değişkenleri, güvenli depodan verileri alma ve Edge önbelleği, kota ve OAuth kullanma kullanıma sunuyoruz. Ayrıca bkz. Apigee-access modülünü kullanabilirsiniz.
trireme-support Node.js uygulamalarının Trireme'e özgü özelliklerden yararlanmasını sağlar. Şu anda desteklenen yalnızca bir özellik vardır: Java'da yerleşik Node.js modüllerinin yüklenmesi. Not: loadJars, Edge Cloud'da desteklenmez.
trireme-xlsx XLST işlemenin bir özeti sunar. Trireme için özel olarak tasarlandı Node.js uygulamaları çalışırken XSLT'nin verimli bir şekilde işlenmesini sağlayan bir platform Java.
trireme-jdbc Node.js'den JDBC'ye erişim sağlar. Not: Edge Cloud'da desteklenmez. Edge Gizli İçin Cloud'da JDPC JAR dosyalarını sınıf yoluna yerleştirip bu modülü kullanabilirsiniz.

Sık 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 belirli kısıtlamalar uyguladığını unutmayın: takip etmek için:

  • Apigee Edge ortamındaki Node.js uygulamaları internetteki hizmetlere erişemez UDP üzerinden iletişim kurulamaz.
  • Dosya sistemine erişim, Node.js komut dosyasının başlatıldığı dizinle sınırlıdır: /resources/node dizininde bulabilirsiniz. Node.js komut dosyaları, geçici bir çizik alanı olarak görebilir, ancak dosyaların ne kadar süre boyunca ısrarcı olabilir.
  • Gelen TCP bağlantılarını dinleme denemeleri bir istisna oluşturur.
  • User-ID'yi, grup üyeliğini ve çalışma dizinini değiştirme işlevi şu şekilde değil: desteklenir.
  • Standart giriş için yalnızca ScriptTarget komutunu kullanarak bağımsız değişkenleri iletmeniz gerekir öğesidir. Bkz. Gelişmiş ScriptTarget yapılandırmasına göz atın.
  • Standart çıkış için yalnızca Edge'deki Node.js Günlükleri düğmesini kullanabilirsiniz. proxy'niz için yönetim arayüzü. Ayrıca, "Apigeetool getlogs" öğesini de kullanabilirsiniz. komutuna ekleyin. Daha fazla daha fazla bilgi için bağımsız bir Node.js uygulaması.
  • Yerel koda bağlı modüller desteklenmez.
  • Vaatler ve Oluşturucular gibi EcmaScript 6 özelliklerine bağlı modüller, desteklenir.
  • "harmony-proxies" gibi Node.js çalışma zamanı işaretleri desteklenmez.

IP bağlantısı kısıtlamalarını ayarlama Private Cloud için Edge'de

Edge for Private Cloud, başlangıçtan itibaren Node.js kodunun IP adreslerine erişimini kısıtlayabilir "10.", "192.168" ve localhost. Bu IP adreslerine erişmeye çalışırsanız, şu formda bir hata görürseniz:

{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }

conf_nodejs_connect.ranges.denied özelliğini ayarlayarak bu kısıtlamaları değiştirebilirsiniz. message-processors.properties dosyası oluşturabilirsiniz. Varsayılan olarak bu özellik şu değere sahiptir:

  • Uç 4.17.05 ve öncesi: 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= (Anlamlı kısıtlama yok)

Bu özelliği ayarlamak için:

  1. message-processor.properties dosyasını yardımcı olur. Dosya mevcut değilse dosyayı oluşturun:
    > vi /<inst_root>/apigee/customer/application/message-processor.properties
  2. Tesisi 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
  3. Değişikliklerinizi kaydedin.
  4. Özellikler dosyasının sahibi olarak 'Apigee' olduğundan emin olun kullanıcı:
    &gt; chown Apigee:Apigee /<inst_root>/ ekip/customer/application/message-processor.properties
  5. Mesaj İşleyici'yi yeniden başlatın:
    &gt; /<inst_root>/ ekip/Apigee-service/bin/gelir-hizmeti 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ı http veya gelen istekleri dinlemek için https modülü. Projenin gidişatı boyunca gelen istekleri dinlemez, yalnızca yürütülür ve çıkar.

Şuradaki http ve https modüllerinin listen yöntemi: Node.js 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 gerekli olsa da Apigee Edge bu parametreyi yok sayar. Bunun yerine Node.js komut dosyasının çalıştığı API proxy'si "sanal ana makineyi" belirtir YouTube'da Node.js uygulaması da diğer Apigee Edge'de olduğu gibi aynı sanal ana makineleri kullanır temsil eder.

Apigee'deki her ortamda en az bir sanal ana makine bulunur. Sanal ana makine, HTTP ayarlarını kontrol edin. Bir ortamdaki tüm API proxy'leri aynı sanal ana makineleri kullanın. Varsayılan olarak, her ortam için iki sanal ana makine mevcuttur: default ve secure. Daha fazla bilgi için bkz. Sanal Ana Makine ve API Alma gözden geçirin.

apigeetool deploynodeapp komutu, Apigee Edge proxy sarmalayıcı oluşturur kolayca kullanabilirsiniz. Node.js uygulaması dağıtıldığında varsayılan olarak dinleme yapar ortam için tanımlanmış sanal ana makinedir. Node.js uygulamasının URL'si her zaman http://{org_name}-{env_name}.apigee.net

Gelen iletiler işleniyor istekler

Diğer Apigee Edge uygulamalarında olduğu gibi, proxy uygulaması secure sanal ana makinesinde çalışırsa HTTPS kullanarak gelen istekleri kabul eder.

Giden işlemleri işleme istekler

Apigee Edge'deki Node.js uygulamaları, gelen trafiği almanın yanı sıra Diğer Node.js'ler gibi giden istekler yapmak için http ve https modülleri bir uygulamadır. Bu modüller, Node.js içinde olduğu gibi çalışır.

Şunun için desteği anlama: tls modülü

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ı sağlamak için OpenSSL kullanmaktadır (SSL) şifreli akış iletişimi. Güvenli ve güvenilir uygulamalar oluşturmak için tls modülünü kullanabilirsiniz. Edge'de çalışan Node.js uygulamalarından arka uç hizmetlerine bağlantılar.

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ı anlıyoruz. Apigee'deki her ortam en az bir sanal ana makineye sahip olmalıdır. Sanal ana makine, Apigee kuruluşu. Bir ortamdaki tüm API proxy'leri aynı sanal ana makineleri paylaşır. Varsayılan olarak Her ortamda iki sanal ana makine kullanılabilir: default ve secure. Sanal ana makineler hakkında daha fazla bilgi için bkz. Sanal Ana Makine ve API Alma gözden geçirin.

Şimdi Apigee Edge'in gelen ve giden posta iletileri için TLS (SSL) iletişimini nasıl işlediğine bakalım. Node.js uygulamalarında istekler:

Gelen iletiler işleniyor istekler

Sanal ana makinelerin kuruluşunuz için nasıl yapılandırıldığına bağlı olarak Edge şunları sağlar: seçenekler:

  • API proxy'si, default sanal ana makinesini dinleyecek şekilde yapılandırıldıysa HTTP üzerinden istekleri kabul eder.
  • API proxy'si, secure sanal ana makinesini dinleyecek şekilde yapılandırıldıysa HTTPS üzerinden istekleri kabul eder. URL, apigee.net alanı ve bir *.apigee.net için joker karakter SSL sertifikası kullanılacak. Uygulamalar her zaman apigee.net alanına istek gönderirse SSL sertifikası doğrulanır gerekir.
ziyaret edin.

Giden işlemleri işleme istekler

tls modülüyle giden isteklerinizi olduğu gibi gönderebilirsiniz normalde Node.js'de olur. Temel olarak istemci taraflı anahtarlar ve sertifikalar eklemeniz (.pem dosya) bağlayıp resources/node dizinine yükleyin ve bu dosyaları şuraya yükleyin: komut dosyası. tls modülünü ve yöntemlerini kullanma hakkında bilgi edinmek için Node.js tls modülü dokümanları.

Gelişmiş ScriptTarget Yapılandırması

<TargetEndpoint> <ScriptTarget> öğesi için ek isteğe bağlı parametrelere (<ResourceURL>) gidin. Ayrıca, komut satırı bağımsız değişkenlerini iletebilir ve kullanarak bir Node.js komut dosyasına <EnvironmentVariables> ve &lt;Arguments&gt; parametre:

<TargetEndpoint name="default">
  <ScriptTarget>
     <ResourceURL>node://hello.js</ResourceURL>
     <EnvironmentVariables>
         <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> 
     </EnvironmentVariables>
     <Arguments>
         <Argument>ARG</Argument>
     </Arguments>
  </ScriptTarget>
</TargetEndpoint>