Déployer une application Node.js autonome

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

Cet article explique comment déployer une application Node.js à partir de votre système local vers Apigee Edge. Dans cette rubrique, 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 les modules Node.js dépendants, depuis 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 le déploie sur Edge.

Par exemple, supposons que vous ayez utilisé Express pour créer une application Web en 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 exécutée 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 de 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:

  • Génère un groupe de configuration de proxy d'API pour héberger l'application Node.js.
  • Empaquete l'application Node.js avec tous les packages Node.js installés 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 à 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 depuis GitHub

Téléchargez ou clonez l'API Platform Tools à partir de 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 figure 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 procéder au déploiement, 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 commande apigeetool.

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

  1. Dans une fenêtre de terminal, cd 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}
    
    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 du terminal. Voici un exemple:

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

    Si l'état indique "Status: deployed" (État : déployé), 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 attend de traiter les 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, puis accédez à la page "Proxies d'API" de l'UI de gestion. Votre nouveau proxy y apparaît.

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

Si votre application Node.js dépend des modules installés, apigeetool les gère en compresseant le dossier node_modules 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 bundle.

Vous ne pouvez pas modifier les fichiers de ces répertoires compressés dans l'éditeur de l'interface utilisateur de gestion d'Edge. Si vous devez les modifier, vous pouvez exporter votre projet, modifier les fichiers localement, puis redéployer à l'aide d'apigeetool ou en important le projet exporté à l'aide de l'UI 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 d'utilisation de base sur les 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. Pour ce faire, vous pouvez utiliser entièrement l'UI de gestion et la boîte de dialogue "Nouveau proxy d'API".

  1. Sur la page récapitulative des proxys d'API, cliquez sur + Proxy d'API.
  2. Dans la boîte de dialogue "New API Proxy" (Nouveau proxy d'API), sélectionnez Existing Node.js (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.
  6. Cliquez sur Compiler.
  7. Cliquez sur Develop (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

Vous pouvez également ajouter du code Node.js à un proxy en l'ajoutant directement, soit via l'UI, soit en l'important depuis votre système de fichiers local. Vous pouvez également spécifier quel fichier Node.js est le fichier principal, qui est le fichier qu'Edge appelle lorsque le proxy est déployé.

Ajouter des fichiers Node.js via l'UI

L'UI de gestion vous permet d'ajouter des fichiers source 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 à partir de votre système de fichiers. Voyons d'abord comment effectuer cette opération à partir de l'interface utilisateur.

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

  1. Dans la vue "Développer", sélectionnez New Script (Nouveau script) dans le menu "New" (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 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 import un fichier Node.js depuis votre système de fichiers vers le proxy:

  1. Dans la vue "Développer", sélectionnez New Script (Nouveau script) dans le menu "New" (Nouveau).
  2. Dans la boîte de dialogue "Ajouter un script", cliquez sur Importer un script.
  3. Utilisez l'outil de fichiers 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éé. La raison est qu'Edge nécessite 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 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é par défaut).
  2. Dans l'éditeur de code, modifiez l'élément <ScriptTarget> en remplaçant <ResourceURL> par le nom du fichier que vous souhaitez utiliser comme fichier Node.js principal. Par exemple, si vous souhaitez qu'un 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 d'accès au proxy que vous utilisiez auparavant. Nous avons examiné l'exemple "Hello World!", dans lequel le chemin d'accès de base v1/hello est spécifié. Vous pouvez toutefois modifier le chemin d'accès de base en modifiant le point de terminaison du proxy.

  1. Sous "Proxy Endpoints" (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 l'élément <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 ceci:

    $ 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 sur Edge, vous pouvez toujours 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 récapitulative du proxy d'API, cliquez sur 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 Import Into New Revision (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 la section suivante, 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.