Déployer une application Node.js autonome

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.
info

Cet article explique comment déployer une application Node.js de votre système local vers Apigee Edge. Nous allons voir comment utiliser un outil de ligne de commande appelé apigeetool pour déployer des applications Node.js sur Apigee Edge.

À propos du déploiement de code Node.js sur 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, puis le déploie sur Edge.

Supposons, par exemple, que vous ayez 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, elle 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'enrichissant avec des fonctionnalités Edge standards telles que la sécurité OAuth, les règles de quota, les règles de protection contre les menaces, les flux conditionnels, la mise en cache et bien d'autres.

Que fait apigeetool ?

Lorsque vous exécutez l'utilitaire apigeetool avec l'option deploynodeapp, il effectue les opérations suivantes :

  • Génère un groupe de configuration de proxy d'API pour héberger l'application Node.js.
  • Empaquète l'application Node.js avec tous les packages Node.js installés avec NPM (Node Packaged Modules).
  • Importe le groupe de configuration de 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éparation à l'utilisation d'apigeetool

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

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

Installation à partir de 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 à partir de GitHub

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

$ 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 :

$ apigeetool -h

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

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

Pour déployer une application Node.js à l'aide de apigeetool :

  1. Dans une fenêtre de terminal, accédez au répertoire racine de votre application Node.js à l'aide de la commande cd.
  2. Exécutez l'utilitaire apigeetool avec la deploynodeapp commande :

    $ 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}
    
    Par 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. Il se présentera comme suit :

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

    Si vous voyez "Status: deployed" (État : déployé), c'est tout bon. Tout s'est bien passé. Votre application Node.js est encapsulée dans un proxy d'API, déployée sur Edge, et elle s'exécute et attend de traiter les requêtes. Elle est prête à être testée.

  4. Testez votre proxy. Par 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 "Proxys d'API" de l'interface utilisateur de gestion. Votre nouveau proxy y sera listé.

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

Si votre application Node.js dépend de modules installés, apigeetool les gère en compressant le node_modules dossier et en l'ajoutant au groupe de proxys. Aucune autre action n'est nécessaire. 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 groupe.

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 d' apigeetool ou en important le projet exporté à l'aide de l'interface utilisateur de gestion. Consultez également la section "Exporter et importer un proxy avec du code Node.js".

Informations de base sur l'utilisation d'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 entièrement 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 Choisir des fichiers pour sélectionner un ou plusieurs fichiers Node.js à importer.
  4. Attribuez un nom au proxy. Dans cet exemple, nous l'appelons hellonode.
  5. Ajoutez la version /v1 au chemin de base du projet. Il est recommandé de gérer les versions de votre API est une bonne pratique.
  6. Cliquez sur Créer.
  7. Cliquez sur Développer pour accéder à la vue "Développer".
  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, soit via l'interface utilisateur, soit en l'important depuis votre système de fichiers local. Vous pouvez également spécifier quel fichier Node.js est le fichier principal, c'est-à-dire celui qu'Edge appelle lorsque le proxy est déployé.

Ajouter de nouveaux 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 qui se trouve sur la plate-forme Edge. Vous pouvez les créer directement dans l'interface utilisateur ou les importer depuis votre système de fichiers. Commençons par voir comment procéder à partir de l'interface utilisateur.

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

  1. Dans la vue "Développer", 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 et nommez le script.
  3. Cliquez sur "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":{"alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]

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

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

  1. Dans la vue "Développer", sélectionnez Nouveau script dans le menu "Nouveau".
  2. Dans la boîte de dialogue "Ajouter un script", cliquez sur Importer Script.
  3. Utilisez l'outil 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 "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 requise, 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éé. En effet, Edge exige qu'un fichier Node.js soit le fichier principal. Le fichier principal est spécifié dans l' <ScriptTarget> élément de la définition du point de terminaison cible. Pour spécifier quel fichier est le 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é default).
  2. Dans l'éditeur de code, modifiez l'élément <ScriptTarget> en remplaçant le <ResourceURL> par le nom du fichier que vous souhaitez définir comme fichier Node.js principal. Par exemple, si vous souhaitez que le fichier appelé hello-world.js soit le 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 de proxy que vous avez utilisé auparavant. Par exemple, nous avons examiné l'exemple Hello World!, dans lequel le chemin de base v1/hello est spécifié. Toutefois, vous pouvez modifier 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é default).
  2. Dans l'éditeur de code, modifiez l'élément <HttpProxyConnection> en remplaçant <BasePath> par le nom de votre choix. Par exemple, si le <BasePath> actuel est v1/hello et que vous souhaitez 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 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

Une fois que vous avez déployé un proxy contenant du code Node.js sur Edge, vous pouvez toujours l'exporter 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 Développer.
  2. Sur la page "Développer", 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 Déployer des proxys à partir de la ligne de commande.

Étapes suivantes

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