<ph type="x-smartling-placeholder"></ph>
Vous consultez la documentation Apigee Edge.
Accédez à la page
Documentation sur Apigee X. En savoir plus
Version de Node.js compatible Apigee Edge?
Edge est actuellement compatible avec Node.js 0.10.32.
Quels modules Node.js standards sont compatible avec Edge ?
Utilisez le tableau suivant pour déterminer quels modules Node.js standards sont incluses sur Edge. Dans certains cas, les modules inclus ne sont que partiellement pris en charge. Il s'agit de modules intégrés à Node.js.Module | État | Remarques |
---|---|---|
assert |
Compatible | |
buffer |
Compatible | |
child_process |
Limité | Une exception sera levée si vous tentez de générer un sous-processus. Toutefois, "fourchette" est pris en charge pour générer des indices. |
cluster |
Désactivé | La méthode cluster.isMaster renvoie toujours la valeur "true" et les autres méthodes ne sont pas implémentées. Une copie de chaque script Node.js est déployée sur chaque processeur de messages Edge. |
crypto |
Compatible | |
dns |
Compatible | |
domain |
Compatible | |
dgram |
Limité | Les applications Node.js de l'environnement Apigee ne pourront pas accéder aux services de Internet via UDP en raison de notre architecture réseau. |
events |
Compatible | |
fs |
Limité | L'accès au système de fichiers est limité au répertoire dans lequel le script a été lancé :
Répertoire /resources/node . Les scripts Node.js peuvent lire et écrire des fichiers dans
ce répertoire, par exemple comme zone de travail temporaire, mais il n'y a aucune garantie quant à
combien de temps
les fichiers seront conservés. |
http |
Compatible | L'hôte virtuel et le chemin d'accès des requêtes entrantes sont spécifiés dans le proxy d'API, et non par le module HTTP. Consultez la section Comprendre la prise en charge des protocoles http et https modules" pour en savoir plus. |
https |
Compatible | Créer une page "https" se comporte de la même manière que Google Cloud. Consultez l'article Comprendre la prise en charge des modules HTTP et HTTPS. pour en savoir plus des informations. |
module |
Compatible | |
net |
Limité | Les tentatives d'écoute des connexions TCP entrantes génèrent une exception. |
path |
Compatible | |
module |
Compatible | |
process |
Assistance partielle | La fonctionnalité permettant de manipuler l'identifiant utilisateur, l'appartenance à un groupe et l'annuaire de travail n'est pas compatibles. |
punycode |
Compatible | |
querystring |
Compatible | |
readline |
Désactivé | Il n'existe pas d'entrée standard pour les scripts exécutés sur Apigee Edge. |
repl |
Désactivé | Il n'existe pas d'entrée standard pour les scripts exécutés sur Apigee Edge. |
module |
Inclus | |
STDIO |
Compatible |
La sortie standard et l'erreur sont acheminées vers un fichier journal dans Apigee Edge de l'infrastructure. Vous pouvez afficher ces journaux en cliquant sur le bouton Journaux Node.js et l'interface utilisateur de gestion Apigee Edge pour votre proxy d'API. Il n'existe pas d'entrée standard pour les scripts exécutés sur Apigee Edge. Toutefois, vous pouvez transmettre à l'aide de l'élément ScriptTarget de TargetEndpoint. Consultez Configuration avancée de ScriptTarget pour plus d'informations. |
stream |
Compatible | |
string_decoder |
Compatible | |
timers |
Inclus | |
tls |
Compatible | Les paramètres TLS (Transport Layer Security) fonctionnent essentiellement de la même manière qu’ils Node.js standard. Voir Utilisation du module Node.js TLS (SSL) sur Apigee Edge pour en savoir plus. |
tty |
Désactivé | Il n'existe pas d'entrée standard pour les scripts exécutés sur Apigee Edge. |
url |
Compatible | |
util |
Compatible | |
vm |
Compatible | |
zlib |
Compatible |
Autres modules compatibles
Cette section répertorie les modules supplémentaires qui ne sont pas compatibles avec Node.js standard, mais qui sont compatible avec Trireme et Trireme qui s'exécutent sur Apigee Edge. Trireme est le conteneur Node.js Open Source qui s'exécute sur Apigee Edge. Il est conçu pour exécuter des scripts Node.js dans une machine virtuelle Java (JVM). Tous ces modules sont disponibles sur NPM.
Module | Description |
---|---|
apigee-access | Permet aux applications Node.js exécutées sur la plate-forme Apigee Edge d'accéder à Fonctionnalité spécifique à Apigee. Vous pouvez utiliser ce module pour: accéder au flux et le modifier des variables, récupérer les données du magasin sécurisé et utiliser la mise en cache périphérique, les quotas services. Consultez également la section Utiliser le apigee-access. |
trireme-support | Permet aux applications Node.js de tirer parti des fonctionnalités propres à Trireme. Actuellement une seule fonctionnalité est prise en charge : le chargement des modules Node.js intégrés en Java. Remarques: loadJars n'est pas compatible avec Edge Cloud. |
trireme-xslt | Présente une abstraction du traitement XLST. Spécialement conçu pour la console Trireme, pour permettre un traitement efficace du format XSLT lorsque des applications Node.js sont exécutées sur Java. |
trireme-jdbc | Fournit un accès à JDBC à partir de Node.js. Remarque: Non compatible avec Edge Cloud. Pour Edge Private Cloud, vous pouvez placer des fichiers JAR JDPC dans le chemin de classe et utiliser ce module. |
Compatibilité avec les modules Node.js couramment utilisés
Restrictions concernant les scripts Node.js
Notez, cependant, qu'Edge impose certaines restrictions aux scripts Node.js, telles que le suivantes:
- Les applications Node.js de l'environnement Apigee Edge ne peuvent pas accéder aux services sur Internet via UDP en raison de l'architecture de réseau périphérique.
- L'accès au système de fichiers est limité au répertoire dans lequel le script Node.js a été lancé : /resources/node. Les scripts Node.js peuvent lire et écrire des fichiers dans ce répertoire, par comme zone de travail temporaire, mais il n'y a aucune garantie quant à la durée persister.
- Les tentatives d'écoute des connexions TCP entrantes génèrent une exception.
- La fonctionnalité permettant de manipuler l'identifiant utilisateur, l'appartenance à un groupe et l'annuaire de travail n'est pas compatibles.
- Pour une entrée standard, vous êtes limité à la transmission d'arguments à l'aide de la commande ScriptTarget.
de TargetEndpoint. Reportez-vous à la section Paramètres avancés
Configuration de ScriptTarget.
- Pour la sortie standard, vous êtes limité à l'utilisation du bouton Journaux Node.js dans l'interface Edge
de gestion de votre proxy. Vous pouvez également utiliser les "getlogs" apigeetool . Pour plus
consultez la section Déployer
Une application Node.js autonome
- Les modules qui dépendent du code natif ne sont pas compatibles.
- Les modules qui dépendent des fonctionnalités EcmaScript 6, telles que les promesses et les générateurs, ne sont pas
compatibles.
- Les indicateurs d'exécution Node.js tels que "harmony-proxies" ne sont pas acceptés.
Définir des restrictions de connexion IP sur Edge pour Private Cloud
Edge for Private Cloud peut empêcher le code Node.js d'accéder aux adresses IP par "10.", "192.168" et "localhost". Si vous tentez d'accéder à ces adresses IP, vous une erreur s'affiche au format suivant:
{ [Error: connect EINVAL] message: 'connect EINVAL', code: 'EINVAL', errno: 'EINVAL', syscall: 'connect' }
Vous pouvez modifier ces restrictions en définissant la propriété conf_nodejs_connect.ranges.denied dans message-processors.properties pour chaque processeur de messages. Par défaut, cette propriété a la valeur:
- Edge 4.17.05 et versions antérieures: conf_nodejs_connect.ranges.denied=10.0.0.0/8,192.168.0.0/16,127.0.0.1/32
- Edge 4.17.09 et versions ultérieures: conf_nodejs_connect.ranges.denied= (signifiant aucune restriction)
Pour définir cette propriété:
- Ouvrez le fichier message-processor.properties dans une
éditeur. Si le fichier n'existe pas, créez-le:
> vi /<inst_root>/apigee/customer/application/message-processor.properties - Définissez la propriété comme vous le souhaitez. Par exemple, pour refuser l'accès à "localhost uniquement" :
conf_nodejs_connect.ranges.denied=127.0.0.1/32 - Enregistrez les modifications.
- Assurez-vous que le fichier de propriétés appartient à "apigee" utilisateur:
> chown apigee:apigee /<inst_root>/apigee/customer/application/message-processor.properties - Redémarrez le processeur de messages:
> /<racine_inst_root>/apigee/apigee-service/bin/apigee-service Edge-message-processor redémarrer
Comprendre la prise en charge des modules HTTP et HTTPS
Toutes les applications Node.js exécutées dans Apigee Edge doivent utiliser l'API http
ou
https
pour écouter les requêtes entrantes. Si vous deviez déployer un script
n'écoute pas les requêtes entrantes, il s'exécuterait et se fermerait.
La méthode listen
des modules http
et https
dans
Node.js utilise un numéro de port comme paramètre. Exemple :
svr.listen(process.env.PORT || 9000, function() { console.log('The server is running.'); });
Ce "port" est requis dans Node.js, mais Apigee Edge ignore ce paramètre. À la place, le proxy d'API dans lequel le script Node.js s'exécute spécifie "l'hôte virtuel" qu'il écoute, L'application Node.js utilise ces mêmes hôtes virtuels, comme n'importe quelle autre solution Apigee Edge. proxy.
Chaque environnement dans Apigee a au moins un hôte virtuel. L'hôte virtuel définit le trafic
pour la connexion à l'organisation Apigee. Tous les proxys d'API d'un environnement partagent le
les mêmes hôtes virtuels. Par défaut, deux hôtes virtuels sont disponibles pour chaque environnement:
default
et secure
. Pour plus d'informations, voir
Obtenir l'hôte virtuel et l'API
cycle de développement.
La commande apigeetool deploynodeapp
génère un wrapper de proxy Apigee Edge
concernant l'application Node.js. Une fois déployée, l'application Node.js écoute le code
l'hôte virtuel défini pour l'environnement. L'URL d'une application Node.js sera toujours
http://{org_name}-{env_name}.apigee.net
Gérer les appels entrants requêtes
Comme les autres applications Apigee Edge, si l'application de proxy est configurée pour écouter le
secure
, il acceptera les requêtes entrantes via HTTPS.
Gérer les appels sortants requêtes
En plus de recevoir le trafic entrant, les applications Node.js dans Apigee Edge peuvent utiliser le
Modules http
et https
pour envoyer des requêtes sortantes comme n'importe quel autre module Node.js
application. Ces modules fonctionnent comme d'habitude dans Node.js.
Comprendre l'assistance pour le module tls
Apigee Edge est compatible avec le module tls Node.js.
Ce module utilise OpenSSL pour fournir les protocoles TLS (Transport Layer Security) et/ou Secure Socket Layer.
(SSL) sur les communications en flux continu. Vous pouvez utiliser le module tls
pour créer
aux services de backend à partir d'applications Node.js exécutées sur Edge.
Pour comprendre le fonctionnement du module tls
sur Apigee Edge, il est important de
comprendre comment les virtual hosts
sont utilisés sur Apigee Edge. Chaque environnement d'Apigee
comporte au moins un hôte virtuel. L'hôte virtuel définit les paramètres HTTP de connexion avec
organisation Apigee. Tous les proxys d'API d'un environnement partagent les mêmes hôtes virtuels. Par défaut,
deux hôtes virtuels sont disponibles pour chaque environnement: default
et
secure
Pour plus d'informations sur les hôtes virtuels, voir
Obtenir l'hôte virtuel et l'API
cycle de développement.
Voyons maintenant comment Apigee Edge gère les communications TLS (SSL) entrantes et sortantes. sur les applications Node.js:
Gérer les appels entrants requêtes
Selon la configuration des hôtes virtuels pour votre organisation, Edge fournit ces options:
- Si le proxy d'API est configuré pour écouter sur l'hôte virtuel
default
, il accepte les requêtes via HTTP. - Si le proxy d'API est configuré pour écouter sur l'hôte virtuel
secure
, il accepte les requêtes via HTTPS. L'URL doit faire partie du domaineapigee.net
et un un certificat SSL générique sera utilisé pour*.apigee.net
. Tant que les applications au domaineapigee.net
, le certificat SSL sera validé normalement.
Gérer les appels sortants requêtes
Vous pouvez effectuer des requêtes sortantes avec le module tls
comme vous le feriez
normalement dans Node.js. En gros, vous devez ajouter des clés et des certificats côté client
(.pem
fichiers) dans le répertoire resources/node
, puis chargez-les dans votre
script. Pour en savoir plus sur l'utilisation du module tls
et de ses méthodes, consultez la
Documentation du module tls Node.js.
Configuration avancée de ScriptTarget
<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">