Déployer une application Node.js autonome

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Cette rubrique explique comment déployer une application Node.js à partir de votre système local vers Apigee Edge. Dans cet article, nous verrons comment déployer des applications Node.js sur Apigee Edge à l'aide d'un outil de ligne de commande appelé apigeetool.

À propos du déploiement de code Node.js dans Apigee Edge

Vous pouvez déployer une application API Node.js existante, y compris tous les modules Node.js dépendants, de votre système local vers Apigee Edge à l'aide d'un utilitaire de ligne de commande appelé apigeetool. L'utilitaire regroupe automatiquement l'application et ses dépendances dans un proxy d'API et la déploie sur Edge.

Par exemple, imaginons que vous avez utilisé Express pour créer une application Web dans Node.js. L'application s'exécute en tant que serveur HTTP qui écoute les requêtes HTTP, les traite, renvoie des données, etc. Lorsque vous utilisez apigeetool pour déployer une application Node.js sur Edge, celle-ci est encapsulée dans un proxy et s'exécute dans le contexte de la plate-forme Edge. Vous pouvez ensuite appeler votre application via sa nouvelle URL de proxy et lui ajouter de la valeur en l'habillant avec des fonctionnalités de périphérie standards telles que la sécurité OAuth, les règles de quotas, les règles de protection contre les menaces, les flux conditionnels, la mise en cache, etc.

Que fait apigeetool ?

Lorsque vous exécutez l'utilitaire apigeetool avec l'option deploynodeapp:

  • Génère un groupe de configuration de proxy d'API pour héberger l'application Node.js.
  • Crée un package de l'application Node.js avec n'importe quel package Node.js installé avec NPM (Node Packaged Modules).
  • Importe le groupe de configuration du proxy d'API dans l'organisation spécifiée sur Apigee Edge à l'aide de l'API de gestion Edge.
  • Déploie le proxy d'API dans un environnement.
  • Exécute l'application Node.js sur Apigee Edge et la rend disponible sur le réseau.

Préparer l'utilisation d'apigeetool

Avant de commencer, vous devez installer l'utilitaire apigeetool.

Vous pouvez installer apigeetool via npm ou en clonant et en associant le code depuis GitHub.

Installation depuis npm

Le module apigeetool et ses dépendances sont conçus pour Node.js et sont disponibles via npm à l'aide de la commande suivante:

$ sudo npm install -g apigeetool

En règle générale, l'option -g place les modules dans : /usr/local/lib/node_modules/apigeetool sur les machines basées sur *nix.

Installation depuis GitHub

Téléchargez ou clonez les outils de plate-forme d'API depuis GitHub. Consultez le fichier README dans le répertoire racine du dépôt pour obtenir les instructions d'installation.

$ git clone https://github.com/apigee/apigeetool-node.git

Une fois l'installation terminée, assurez-vous que l'exécutable apigeetool se trouve dans votre chemin d'accès. Vous pouvez le tester en saisissant ce qui suit:

$ apigeetool -h

Déployer une application Node.js sur Edge avec apigeetool

Remarque:Avant de procéder au déploiement, vous devez connaître le nom de votre organisation, le nom d'utilisateur et le mot de passe de votre compte Apigee Edge dans Apigee Edge. Vous avez besoin de ces informations pour former correctement la commande apigeetool.

Pour déployer une application Node.js à l'aide de apigeetool, procédez comme suit:

  1. Dans une fenêtre de terminal, saisissez cd pour le répertoire racine de votre application Node.js.
  2. Exécutez l'utilitaire apigeetool avec la commande deploynodeapp:

    $ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
    
    Exemple:

    $ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
    
  3. Vérifiez le résultat dans la fenêtre de votre terminal. L'URL doit ressembler à ceci:

    Importing new application myNodeApp
    Imported new app revision 1
    Deploying revision 1
      Deployed.
    Proxy: "myNodeApp" Revision 1
      Environment: test BasePath: /myNodeApp
      Status: deployed
    

    Si le message "Status:deploy" (État : déployé) s'affiche, c'est tout. Tout s'est bien passé. Votre application Node.js est encapsulée dans un proxy d'API, déployée sur Edge, et elle est en cours d'exécution et en attente de traitement des requêtes. Il est prêt à être testé.

  4. Testez votre proxy. Exemple:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. Si vous le souhaitez, connectez-vous à votre compte Apigee Edge et accédez à la page Proxies d'API de l'interface utilisateur de gestion. Votre nouveau proxy est répertorié ici.

Comment apigeetool gère les fichiers et les modules dépendants

Si votre application Node.js dépend de modules installés, apigeetool les gère en compressant le dossier node_modules et en l'ajoutant au groupe de proxys. Aucune autre action n'est requise. Il en va de même pour tous les répertoires contenant du code source supplémentaire. L'utilitaire apigeetool les compresse et les déploie avec le bundle.

Vous ne pouvez pas modifier les fichiers de ces répertoires compressés dans l'éditeur de l'interface utilisateur de gestion Edge. Si vous devez les modifier, vous pouvez exporter votre projet, modifier les fichiers localement, puis les redéployer à l'aide de apigeetool ou en important le projet exporté à l'aide de l'interface utilisateur de gestion. Consultez également la page Exporter et importer un proxy avec le code Node.js.

Informations d'utilisation de base pour apigeetool

Pour obtenir des informations de base sur l'utilisation des paramètres d'entrée de l'utilitaire apigeetool, saisissez:

$ apigeetool deploynodeapp -h

  Usage: deploynodeapp -n [name] -o [organization] -e [environment]
  -d [directory name] -m [main script file]
  -u [username] -p [password]
  -b [base path] -l [apigee API url] -z [zip file] -i -h
  -o Apigee organization name
  -e Apigee environment name
  -n Apigee proxy name
  -d Apigee proxy directory
  -m Main script name: Should be at the top level of the directory
  -u Apigee user name
  -p Apigee password
  -b Base path (optional, defaults to /)
  -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com)
  -z ZIP file to save (optional for debugging)
  -i import only, do not deploy
  -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. 
  -U Uploads Node.js modules to Apigee Edge. 
  -h Print this message

Créer un proxy avec des fichiers Node.js existants

Une autre façon d'intégrer une application Node.js existante dans un proxy d'API consiste à ajouter l'application lorsque vous créez le proxy. Vous pouvez le faire via l'interface utilisateur de gestion et la boîte de dialogue "Nouveau proxy d'API".

  1. Sur la page de résumé du proxy d'API, cliquez sur + Proxy d'API.
  2. Dans la boîte de dialogue "Nouveau proxy d'API", sélectionnez Node.js existant.
  3. Utilisez le bouton Choose Files (Sélectionner des fichiers) pour sélectionner un ou plusieurs fichiers Node.js à importer.
  4. Attribuez un nom au proxy. Dans cet exemple, nous l'appellerons hellonode.
  5. Ajoutez la version /v1 au chemin d'accès de base du projet. La gestion des versions de votre API est une bonne pratique.
  6. Cliquez sur Build (Compiler).
  7. Cliquez sur Develop (Développer) pour accéder à la vue Develop.
  8. Ouvrez le fichier TargetEndpoint dans l'éditeur de code.
  9. Assurez-vous que l'élément <ScriptTarget> spécifie le fichier Node.js principal, comme suit:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
    
  10. Cliquez sur Enregistrer.

Ajouter et appeler de nouveaux fichiers de ressources Node.js

Une autre façon d'ajouter du code Node.js à un proxy consiste à l'ajouter directement, via l'interface utilisateur ou en l'important à partir de votre système de fichiers local. Vous pouvez également spécifier le fichier Node.js qui est le fichier principal, qui est le fichier invoqué par Edge lors du déploiement du proxy.

Ajouter des fichiers Node.js via l'interface utilisateur

L'interface utilisateur de gestion vous permet d'ajouter des fichiers sources Node.js supplémentaires à un proxy situé sur la plate-forme Edge. Vous pouvez les créer directement dans l'interface utilisateur ou les importer depuis votre système de fichiers. Voyons d'abord comment procéder dans l'interface utilisateur.

Pour créer un fichier de ressources Node.js:

  1. Dans la vue Développement, sélectionnez Nouveau script dans le menu "Nouveau".
  2. Dans la boîte de dialogue "Ajouter un script", sélectionnez le type de fichier Node (Nœud) et nommez le script.
  3. Cliquez sur Add (Ajouter).

Le nouveau fichier Node.js vide s'ouvre dans l'éditeur. Vous pouvez couper et coller votre code dans le fichier. Le fichier apparaît également dans la section Scripts du Navigateur.

[[{"type":"media","view_mode":"media_large","fid":"2431","attributes {9}alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]

Importer des fichiers Node.js depuis votre système de fichiers

Pour import un fichier Node.js de votre système de fichiers vers le proxy:

  1. Dans la vue Développement, sélectionnez Nouveau script dans le menu "Nouveau".
  2. Dans la boîte de dialogue "Ajouter un script", cliquez sur Importer le script.
  3. Utilisez l'outil de création de fichier pour sélectionner votre fichier Node.js.
  4. Le nom du fichier est ajouté à la boîte de dialogue, mais vous pouvez le modifier si vous le souhaitez.
  5. Cliquez sur Add (Ajouter). Le fichier apparaît dans la section "Scripts" du navigateur et s'ouvre dans l'éditeur.
  6. Cliquez sur Enregistrer.

Si vous souhaitez appeler le fichier importé, une étape supplémentaire est nécessaire, comme expliqué dans la section suivante.

Appeler un fichier Node.js importé

Vous ne pouvez pas simplement appeler un fichier Node.js nouvellement importé ou créé. La raison est que Edge exige qu'un fichier Node.js soit le fichier main. Le fichier principal est spécifié dans l'élément <ScriptTarget> de la définition du point de terminaison cible. Pour spécifier le fichier correspondant au fichier Node.js principal, procédez comme suit:

  1. Sous "Points de terminaison cibles" dans le navigateur, cliquez sur le nom du point de terminaison cible (généralement appelé par défaut).
  2. Dans l'éditeur de code, modifiez l'élément <ScriptTarget> en remplaçant <ResourceURL> par le nom du fichier souhaité en tant que fichier Node.js principal. Par exemple, si vous souhaitez utiliser un fichier nommé hello-world.js en tant que fichier principal, saisissez node://hello-world.js dans l'élément "ResourceURL".
  3. Cliquez sur Enregistrer.

À ce stade, vous pouvez appeler le fichier avec le chemin d'accès proxy que vous avez utilisé précédemment. Par exemple, nous avons examiné l'exemple "Hello World!", où le chemin de base v1/hello est spécifié. Toutefois, vous pouvez changer le chemin de base en modifiant le point de terminaison du proxy.

  1. Sous "Points de terminaison du proxy dans le navigateur", cliquez sur le nom du point de terminaison du proxy (généralement appelé par défaut).
  2. Dans l'éditeur de code, modifiez l'élément <HttpProxyConnection> en remplaçant <BasePath> par le nom de votre choix. Par exemple, si l'élément <BasePath> actuel est v1/hello et que vous souhaitiez qu'il soit v1/my-node-file, modifiez l'élément <BasePath> comme suit:

    <BasePath>/v1/my-node-file</BasePath>
  3. Cliquez sur Enregistrer.
  4. Appelez le proxy à l'aide du nouveau chemin d'accès de base, comme suit:

    $ curl http://myorg-test.apigee.net/v1/my-node-file
    Hello, World!
    

Exporter et importer un proxy avec du code Node.js

Après avoir déployé un proxy contenant du code Node.js dans Edge, vous pouvez toujours réexporter le proxy vers votre système, y travailler, puis le réimporter dans Edge à l'aide de l'interface utilisateur de gestion. Ce type de technique de développement aller-retour est couramment utilisé.

  1. Sur la page de résumé du proxy d'API, cliquez sur Develop (Développer).
  2. Sur la page "Développement", sélectionnez Télécharger la révision actuelle.
  3. Décompressez le fichier téléchargé sur votre système.

Vous pouvez réimporter le groupe de proxys dans Edge en sélectionnant Importer dans une nouvelle révision dans le même menu.

Vous pouvez également utiliser l'API pour déployer des proxys. Pour en savoir plus, consultez la section Déployer des proxys à partir de la ligne de commande.

Étapes suivantes

Dans la rubrique suivante, Ajouter Node.js à un proxy d'API existant, nous expliquons comment ajouter une application Node.js à un proxy existant de votre système de fichiers et la déployer sur Edge.