<ph type="x-smartling-placeholder"></ph>
Sie sehen die Dokumentation zu Apigee Edge.
Gehen Sie zur
Apigee X-Dokumentation. Weitere Informationen
Welche Version von Node.js wird unterstützt? Apigee Edge?
Edge unterstützt derzeit Node.js 0.10.32.
Welche Node.js-Standardmodule unterstützt?
Ermitteln Sie anhand der folgenden Tabelle, welche Node.js-Standardmodule die in Edge enthalten sind. In einigen Fällen werden enthaltene Module nur teilweise unterstützt. Dies sind Module, die in Node.js integriert sind.Modul | Status | Hinweise |
---|---|---|
assert |
Unterstützt | |
buffer |
Unterstützt | |
child_process |
Eingeschränkt | Bei dem Versuch, einen Unterprozess zu erzeugen, wird eine Ausnahme ausgelöst. Sie können jedoch "Gabel" wird für das Erzeugen von Subskripten unterstützt. |
cluster |
Deaktiviert | Die Methode cluster.isMaster gibt immer "true" zurück. Andere Methoden sind nicht implementiert. Eine Kopie jedes Node.js-Skripts wird auf jedem Edge-Nachrichtenprozessor bereitgestellt. |
crypto |
Unterstützt | |
dns |
Unterstützt | |
domain |
Unterstützt | |
dgram |
Eingeschränkt | Node.js-Anwendungen in der Apigee-Umgebung können dann nicht auf Dienste zugreifen auf dank unserer Netzwerkarchitektur über UDP mit dem Internet. |
events |
Unterstützt | |
fs |
Eingeschränkt | Der Zugriff auf das Dateisystem ist auf das Verzeichnis beschränkt, in dem das Skript gestartet wurde:
/resources/node -Verzeichnis. Node.js-Skripts können Dateien in
z. B. als temporären Speicherbereich. Es gibt jedoch keine Garantie dafür,
wie lange die Dateien gespeichert werden. |
http |
Unterstützt | Der virtuelle Host und der virtuelle Pfad für eingehende Anfragen werden im API-Proxy und nicht durch das HTTP-Modul. Weitere Informationen hierzu finden Sie unter Unterstützung von HTTP und HTTPS Module“ . |
https |
Unterstützt | "https" erstellen verhält sich ähnlich wie "http" Server. Siehe Unterstützung der HTTP- und HTTPS-Module für weitere Informationen Informationen. |
module |
Unterstützt | |
net |
Eingeschränkt | Bei Versuchen, auf eingehende TCP-Verbindungen zu warten, wird eine Ausnahme generiert. |
path |
Unterstützt | |
module |
Unterstützt | |
process |
Teilweise Unterstützung | Funktionen zur Bearbeitung von Nutzer-IDs, Gruppenmitgliedschaften und Arbeitsverzeichnissen unterstützt. |
punycode |
Unterstützt | |
querystring |
Unterstützt | |
readline |
Deaktiviert | Es gibt keine Standardeingabe für Skripts, die auf Apigee Edge ausgeführt werden. |
repl |
Deaktiviert | Es gibt keine Standardeingabe für Skripts, die auf Apigee Edge ausgeführt werden. |
module |
Enthalten | |
STDIO |
Unterstützt |
Standardausgabe und Fehler werden an eine Logdatei in Apigee Edge weitergeleitet und Infrastruktur. Sie können diese Logs aufrufen, indem Sie auf die Node.js-Logs klicken. und die Apigee Edge-Verwaltungs-UI für Ihren API-Proxy. Es gibt keine Standardeingabe für Skripts, die auf Apigee Edge ausgeführt werden. Sie können jedoch mit dem ScriptTarget-Element von TargetEndpoint. Siehe Erweiterte ScriptTarget-Konfiguration für erhalten Sie weitere Informationen. |
stream |
Unterstützt | |
string_decoder |
Unterstützt | |
timers |
Enthalten | |
tls |
Unterstützt | TLS-Parameter (Transport Layer Security) funktionieren im Grunde genauso wie in reguläres Node.js. Siehe Verwenden des TLS/SSL-Node.js-Moduls in Apigee Edge . |
tty |
Deaktiviert | Es gibt keine Standardeingabe für Skripts, die auf Apigee Edge ausgeführt werden. |
url |
Unterstützt | |
util |
Unterstützt | |
vm |
Unterstützt | |
zlib |
Unterstützt |
Zusätzliche unterstützte Module
In diesem Abschnitt werden zusätzliche Module aufgeführt, die in Standard-Node.js nicht unterstützt werden, unterstützt von Trireme und Trireme auf Apigee Edge. Trireme ist der Open-Source-Node.js-Container, der auf Apigee Edge Sie wurde entwickelt, um Node.js-Skripts in einer Java Virtual Machine (JVM) auszuführen. Alle von sind diese Module bei NPM verfügbar.
Modul | Beschreibung |
---|---|
apigee-access | Ermöglicht Node.js-Anwendungen, die auf der Apigee Edge-Plattform ausgeführt werden, die Möglichkeit, auf Apigee-spezifische Funktionalität Mit diesem Modul können Sie den Ablauf aufrufen und ändern. Variablen, Daten aus dem sicheren Speicher abrufen und Edge-Cache, Kontingente und OAuth verwenden . Weitere Informationen finden Sie unter Verwendung des apigee-access-Modul. |
trireme-support | Hiermit können Node.js-Anwendungen die für Trireme spezifischen Funktionen nutzen. Aktuell wird nur eine Funktion unterstützt: das Laden der in Java erstellten Node.js-Module. Hinweis: "loadJars" wird in Edge Cloud nicht unterstützt. |
trireme-xslt | Stellt eine Abstraktion der XLST-Verarbeitung dar. Es wurde speziell für die Trireme-Mission um eine effiziente Verarbeitung von XSLT zu ermöglichen, wenn Node.js-Anwendungen auf Java |
trireme-jdbc | Bietet Zugriff auf JDBC über Node.js Hinweis: Nicht unterstützt in Edge Cloud. Für Edge Private Cloud verwenden, können Sie JDPC-JAR-Dateien in den Klassenpfad einfügen und dieses Modul verwenden. |
Unterstützung häufig verwendeter Node.js-Module
Einschränkungen für Node.js-Skripts
Beachten Sie jedoch, dass Edge bestimmte Einschränkungen für Node.js-Skripts auferlegt, z. B. die Folgendes:
- Node.js-Anwendungen in der Apigee Edge-Umgebung können nicht auf Dienste im Internet zugreifen. der Edge-Netzwerkarchitektur über UDP gesendet wird.
- Der Zugriff auf das Dateisystem ist auf das Verzeichnis beschränkt, in dem das Node.js-Skript gestartet wurde: /resources/node befinden. Node.js-Skripts können Dateien in diesem Verzeichnis lesen und schreiben, für als temporären Speicherbereich verwenden. Es gibt jedoch keine Garantie dafür, wie lange die Dateien dauerhaft.
- Bei Versuchen, auf eingehende TCP-Verbindungen zu warten, wird eine Ausnahme generiert.
- Funktionen zur Bearbeitung von Nutzer-IDs, Gruppenmitgliedschaften und Arbeitsverzeichnissen unterstützt.
- Bei der Standardeingabe können Sie nur Argumente mit der
-Element von TargetEndpoint. Weitere Informationen finden Sie unter Erweitert
ScriptTarget-Konfiguration.
- Bei der Standardausgabe können Sie nur die Schaltfläche für Node.js-Protokolle in Edge verwenden.
Verwaltungsoberfläche für Ihren Proxy. Sie können auch die „apigeetool getlogs“ . Weitere Informationen
erhalten Sie unter Bereitstellen von
eine eigenständige Node.js-Anwendung.
- Module, die von nativem Code abhängen, werden nicht unterstützt.
- Module, die von EcmaScript 6-Funktionen abhängig sind, wie Promise-Objekte und Generatoren, werden nicht
unterstützt.
- Die Node.js-Laufzeit-Flags wie "harmony-proxies" werden nicht unterstützt.
Einschränkungen für IP-Verbindungen festlegen on Edge für Private Cloud
Edge für Private Cloud kann Node.js-Code daran hindern, auf IP-Adressen zuzugreifen, durch „10.“, „192.168“ und localhost. Wenn Sie versuchen, auf diese IP-Adressen zuzugreifen, im Formular wird ein Fehler angezeigt:
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
Sie können diese Einschränkungen ändern, indem Sie das Attribut conf_nodejs_connect.ranges.denied in message-processors.properties für jeden Message Processor. Standardmäßig hat diese Eigenschaft folgenden Wert:
- Edge 4.17.05 und frühere Versionen: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 und höher: conf_nodejs_connect.ranges.denied= (Bedeutung keine Einschränkungen)
So legen Sie diese Eigenschaft fest:
- Öffnen Sie die Datei message-processor.properties in einem
Editor. Wenn die Datei nicht vorhanden ist, erstellen Sie sie:
> Vi /<inst_root>/apigee/customer/application/message-processor.properties - Legen Sie die Eigenschaft wie gewünscht fest. So verweigern Sie beispielsweise nur den Zugriff auf localhost:
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - Speichern Sie die Änderungen.
- Achten Sie darauf, dass die Eigenschaftendatei dem Apigee gehört Nutzer:
> chown apigee:apigee /<inst_root> /apigee/customer/application/message-processor.properties - Starten Sie den Message Processor neu:
> /<inst_root>/apigee/apigee-service/bin/apigee-service Edge-message-processor neu starten
Unterstützung der HTTP- und HTTPS-Module
Alle Node.js-Anwendungen, die in Apigee Edge ausgeführt werden, müssen die http
oder
Modul https
zum Warten auf eingehende Anfragen. Wenn Sie ein Skript bereitstellen,
nicht auf eingehende Anfragen wartet, er würde einfach ausführen und beenden.
Die Methode listen
der Module http
und https
in
In Node.js wird eine Portnummer als Parameter verwendet. Beispiel:
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
Dieser „Port“ Argument ist in Node.js erforderlich, aber Apigee Edge ignoriert diesen Parameter. Stattdessen Der API-Proxy, in dem das Node.js-Skript ausgeführt wird, gibt den "virtuellen Host" an. die zuhört, Die Node.js-Anwendung verwendet dieselben virtuellen Hosts, wie jeder andere Apigee Edge-PC. Proxy.
Jede Apigee-Umgebung hat mindestens einen virtuellen Host. Der virtuelle Host definiert die HTTP-
Einstellungen für die Verbindung mit der Apigee-Organisation. Alle API-Proxys in einer Umgebung teilen den
virtuelle Hosts genutzt werden. Standardmäßig sind für jede Umgebung zwei virtuelle Hosts verfügbar:
default
und secure
. Weitere Informationen finden Sie unter
Virtuellen Host und API abrufen
Entwicklungslebenszyklus.
Der Befehl apigeetool deploynodeapp
generiert einen Apigee Edge-Proxy-Wrapper
um die Node.js-Anwendung. Nach der Bereitstellung überwacht die Node.js-Anwendung die Standardeinstellung
virtueller Host für die Umgebung definiert. Die URL für eine Node.js-Anwendung lautet immer
http://{org_name}-{env_name}.apigee.net
Eingehende Nachrichten verarbeiten Anfragen
Wie bei anderen Apigee Edge-Anwendungen, wenn die Proxy-Anwendung so eingerichtet ist, dass sie den
secure
, dann akzeptiert er eingehende Anfragen über HTTPS.
Ausgehende Nachrichten bearbeiten Anfragen
Node.js-Anwendungen in Apigee Edge können nicht nur eingehenden Traffic empfangen, sondern auch die Methode
Die Module http
und https
können wie jedes andere Node.js-Script ausgehende Anfragen senden.
. Diese Module funktionieren wie gewohnt in Node.js.
Unterstützung von das TLS-Modul
Apigee Edge unterstützt das Node.js-tls-Modul.
In diesem Modul wird OpenSSL verwendet, um Transport Layer Security (TLS) und/oder Secure Socket Layer bereitzustellen
(SSL) verschlüsselte Streamkommunikation Mit dem Modul tls
können Sie sichere
Verbindungen zu Back-End-Diensten von Node.js-Anwendungen, die auf Edge ausgeführt werden.
Um zu verstehen, wie das Modul tls
in Apigee Edge funktioniert, ist es wichtig,
Informationen zur Verwendung von virtual hosts
in Apigee Edge. Jede Umgebung in Apigee
hat mindestens einen virtuellen Host. Der virtuelle Host definiert die HTTP-Einstellungen für die Verbindung mit dem
Apigee-Organisation. Alle API-Proxys in einer Umgebung nutzen dieselben virtuellen Hosts. Standardmäßig
Für jede Umgebung sind zwei virtuelle Hosts verfügbar: default
und
secure
. Weitere Informationen zu virtuellen Hosts finden Sie unter
Virtuellen Host und API abrufen
Entwicklungslebenszyklus.
Sehen wir uns nun an, wie Apigee Edge die TLS (SSL)-Kommunikation für ein- und ausgehende Kommunikation -Anfragen für Node.js-Anwendungen:
Eingehende Nachrichten verarbeiten Anfragen
Je nachdem, wie virtuelle Hosts für Ihre Organisation konfiguriert sind, bietet Edge diese Optionen:
- Wenn der API-Proxy so konfiguriert ist, dass er den virtuellen Host
default
überwacht, akzeptiert Anfragen über HTTP. - Wenn der API-Proxy so konfiguriert ist, dass er den virtuellen Host
secure
überwacht, akzeptiert Anfragen über HTTPS. Die URL befindet sich unter der Domainapigee.net
und ein Es wird das Platzhalter-SSL-Zertifikat für*.apigee.net
verwendet. Solange Apps an die Domainapigee.net
stellen, wird das SSL-Zertifikat validiert .
Ausgehende Nachrichten bearbeiten Anfragen
Ausgehende Anfragen können Sie mit dem Modul tls
auf dieselbe Weise stellen
normalerweise in Node.js. Grundsätzlich müssen Sie clientseitige Schlüssel und Zertifikate
(.pem
Dateien) in das Verzeichnis resources/node
und laden Sie sie in Ihr
. Informationen zum Verwenden des Moduls tls
und seiner Methoden finden Sie in der
Dokumentation zum Node.js-TLS-Modul.
Erweiterte ScriptTarget-Konfiguration
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://hello.js</ResourceURL> <EnvironmentVariables> <EnvironmentVariable name="NAME">VALUE</EnvironmentVariable> </EnvironmentVariables> <Arguments> <Argument>ARG</Argument> </Arguments> </ScriptTarget> </TargetEndpoint>
<ph type="x-smartling-placeholder">