Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
Il est recommandé de vérifier que tout code Node.js que vous ajoutez à un proxy fonctionne avant de le déployer sur Edge. Cette rubrique explique comment déboguer et résoudre les problèmes liés aux proxys qui incluent des applications Node.js après leur déploiement.
Augmenter la taille du pool de connexions pour améliorer les performances
Si vous constatez des performances lentes, vous pouvez résoudre le problème en augmentant la taille du pool de connexions Node.js par défaut avec maxSockets ou en désactivant complètement le regroupement de sockets. Pour en savoir plus et obtenir des exemples de code, consultez Conseils sur les performances de Node.js : mise en pool des sockets dans la communauté Apigee.
Afficher les journaux Node.js
Pour afficher les informations de journaux concernant votre application Node.js :
- Sur la page principale des proxys d'API, cliquez sur le proxy que vous souhaitez afficher.
- Sur la page récapitulative du proxy sélectionné, cliquez sur Journaux Node.js sur le côté droit de la barre d'outils.
Sur la page "Journaux", vous pouvez sélectionner une période pour afficher les journaux, comme indiqué ci-dessous. Les journaux enregistrent les appels de méthodes HTTP, la réussite ou l'échec des appels, les messages console.log, etc. Saisissez une chaîne de recherche dans le champ de recherche pour afficher toutes les entrées de journal qui contiennent cette chaîne.

Utiliser l'outil de trace
L'outil de traçage est utile pour le débogage général des proxys. Pour en savoir plus sur l'utilisation de l'outil Trace, consultez Utiliser l'outil Trace.
Imprimer les résultats de la console
Vous pouvez intégrer des instructions console.log dans votre code Node.js et afficher le résultat dans l'outil de trace. Par exemple, l'instruction suivante affiche la valeur de la variable config.user :
console.log('Logging in as %s', config.username);

Pour afficher la sortie des messages console.log dans l'outil Trace, appelez votre API dans l'outil Trace, puis cliquez sur Sortie de toutes les transactions pour ouvrir le panneau de sortie :

En supposant que vous ayez exécuté le code suivant…
var http = require('http'); console.log('node.js application starting...'); var svr = http.createServer(function(req, resp) { resp.end('Hello, World!'); }); svr.listen(9000, function() { console.log('Node HTTP server is listening'); });
… les instructions de la console s'affichent dans le panneau :

Configurer les paramètres de délai avant expiration de la cible Nginx
Si vous utilisez Nginx comme proxy et que vous voyez des erreurs "Bad Gateway", essayez d'augmenter le délai avant expiration du proxy Nginx comme expliqué ici :
Exemple :
proxy_connect_timeout 60; proxy_read_timeout 120;
La durée de réponse du serveur peut déterminer les configurations de délai d'attente idéales. Par exemple, un délai de lecture de 45 à 60 secondes peut être idéal pour fournir une marge raisonnable.
Configurer les paramètres de délai avant expiration de la cible Apigee
Vous pouvez également configurer les valeurs de délai avant expiration par défaut d'Apigee dans l'élément HttpTargetConnection de TargetEndpoint. Les valeurs par défaut sont les suivantes :
connect.timeout.millis - 60 seconds io.timeout.millis - 120 seconds
<HTTPTargetConnection> <Properties> <Property name="connect.timeout.millis">5000</Property> <Property name="io.timeout.millis">5000</Property> </Properties> <URL>http://www.google.com</URL> </HTTPTargetConnection>
Consultez également la documentation de référence sur les propriétés des points de terminaison.
Pour en savoir plus
Pour en savoir plus sur le débogage, consultez les pages suivantes :
- Utiliser l'outil Trace
- Utiliser les métriques de performances
- Introduction au dépannage
- Audits : historique des API, des produits et de l'organisation
Étapes suivantes
Pour en savoir plus sur la compatibilité des modules Node.js dans Apigee Edge, y compris sur la compatibilité avec HTTP/HTTPS, TLS et d'autres sujets avancés, consultez Comprendre la compatibilité d'Edge avec les modules Node.js.