Tutoriels sur les cibles hébergées

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

Les tutoriels suivants expliquent comment déployer des applications Node.js sur Edge à l'aide de Hosted Cibles, un environnement d'exécution Node.js natif hébergé par Apigee.

Les tutoriels traitent des tâches suivantes:

  • Déployer une application Node.js sur des cibles hébergées à l'aide de l'interface utilisateur Edge
  • Déployer une application Node.js sur des cibles hébergées à partir de votre ordinateur de développement local
  • Migration d'un proxy existant vers des cibles hébergées via une implémentation traditionnelle de la cible Node.js Edge.

Déployer une application Node.js sur des cibles hébergées à l'aide de l'interface utilisateur Edge

Dans ce tutoriel, vous allez déployer une application Node.js simple sur des cibles hébergées à l'aide de l'interface utilisateur Edge. Une fois le tutoriel terminé, vous comprendrez la structure de base et le contenu d'un proxy de cibles hébergées, ainsi que la façon d'accéder aux fichiers journaux de déploiement et de compilation.

Se connecter

  1. Accédez à: apigee.com/edge
  2. Saisissez vos identifiants de connexion Apigee pour vous connecter.

Créer un proxy

  1. Dans le menu de navigation latéral, sélectionnez Develop > API Proxies (Développer > Proxys d'API).
  2. Cliquez sur + Proxy.
  3. Sur la page "Créer un proxy", sélectionnez Cible hébergée.
  4. Cliquez sur Suivant.
  5. Dans le champ "Nom du proxy", saisissez hello-hosted-targets.
  6. Assurez-vous que l'exemple "Hello World" est sélectionné.
  7. Cliquez sur Suivant.
  8. Sur la page "Sécurité", sélectionnez Passthrough (none) pour l'autorisation.
  9. Cliquez sur Suivant.
  10. Cliquez sur Suivant.
  11. Sur la page "Créer", assurez-vous que l'environnement de test est sélectionné. Notez que le type de proxy est Hosted Cibles.
  12. Cliquez sur Build and Deploy (Compiler et déployer). Le déploiement du proxy peut prendre quelques instants.
  13. Une fois le proxy déployé, cliquez sur Afficher le proxy hello-Hosted-targets en bas de la page.
  14. Appelez le proxy d'API. Pour ce faire, le plus simple est d'accéder à l'onglet Trace, de démarrer une session Trace, puis de cliquer sur Send (Envoyer). Vous devriez obtenir l'état 200 avec la réponse suivante :
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Examiner le proxy

  1. Dans l'interface utilisateur Edge, cliquez sur l'onglet Develop (Développer).
  2. Dans le navigateur, sélectionnez default sous "Points de terminaison cibles".
  3. Dans l'éditeur de code, notez qu'il y a un élément enfant <HostedTarget/> vide sous l'élément <TargetEndpoint>. Cette balise vide est obligatoire. Il indique à Edge que la cible du proxy est une application déployée dans l'environnement de cibles hébergées.

  4. Dans le navigateur, observez le contenu de la section Scripts. Les fichiers de l'application Node.js sont répertoriés sous le libellé hébergé.

  5. Dans l'interface utilisateur Edge, examinez les fichiers répertoriés sous hébergés dans les scripts:
    • Le fichier app.yaml contient des informations de configuration. Par exemple, vous pouvez ajouter des variables d'environnement qui seront disponibles pour l'application Node.js au moment de l'exécution. Vous n'avez pas besoin de modifier ce fichier pour cet exemple.
    • Le fichier index.js est le fichier principal de l'application Node.js.
    • Si votre application possède des dépendances de module, celles-ci doivent être listées dans le fichier package.json.

Afficher les fichiers journaux

Les fichiers journaux d'application peuvent être utiles pour déboguer les problèmes survenant pendant la phase de compilation, ainsi que lors de l'exécution.

  1. Dans l'interface utilisateur Edge, cliquez sur l'onglet Develop.
  2. Pour afficher le journal des builds, cliquez sur Journaux de compilation.
  3. Pour afficher le journal de déploiement, cliquez sur Journaux d'exécution.

    Consultez également la section Accéder aux fichiers journaux.

Résumé

  • Vous avez déployé une application Node.js simple dans l'environnement de cibles hébergées et l'avez testée dans l'interface utilisateur Edge.
  • Vous avez appris qu'un proxy de cibles hébergées nécessite un tag vide spécial dans le point de terminaison cible appelé <HostedTarget/>.
  • Vous avez appris qu'Edge charge automatiquement les dépendances de module et que ces dépendances doivent être répertoriées dans le fichier package.json.
  • Vous avez également appris à vérifier les fichiers journaux de compilation et d'exécution.

Déployez Node.js depuis votre système sur Edge

Cette section explique comment déployer une application Node.js autonome depuis votre système local vers des cibles hébergées à l'aide de apigeetool. L'utilitaire apigeetool regroupe l'application Node.js dans un nouveau proxy de cibles hébergées et la déploie sur Edge.

Installer apigeetool

L'utilisation de apigeetool est la méthode recommandée pour les développeurs pour déployer le code de proxy sur Edge. Pour installer apigeetool, exécutez la commande NPM suivante:

npm install -g apigeetool

Créer l'application Node.js

Pour vous faciliter la tâche, nous vous fournissons le code d'une application Node.js simple.

  1. Créez un répertoire pour l'application Node.js. Appelez-le node-Hosted-express.
  2. cd pour accéder au nouveau répertoire.
  3. Créez un fichier appelé index.js et copiez-y ce code.
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
    
  5. Créez un fichier appelé package.json et copiez-y ce code. Notez que le module express est répertorié en tant que dépendance.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
    
  7. Créez un fichier appelé app.yaml et copiez-y le code suivant:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. Assurez-vous que votre répertoire se présente comme suit :
    ls
    app.yaml index.js package.json
    

Examiner la structure de répertoires requise pour le code de l'application

Votre application Node.js doit avoir la même structure qu'une application Node.js standard. Veillez toutefois à respecter ces exigences avant de la déployer sur Edge avec apigeetool:

  • Le fichier manifeste app.yaml est obligatoire et doit se trouver dans le répertoire racine de votre application. Pour en savoir plus sur ce fichier, consultez Fichier manifeste.
  • Un fichier package.json est requis. Il doit répertorier toutes les dépendances requises par votre application.
  • Un dossier node_modules n'est pas obligatoire. Edge exécute la commande npm install pour vous lorsque l'application Node.js est déployée. Il récupère les dépendances à partir du fichier package.json. Vous n'avez besoin de fournir explicitement node_modules que si vous disposez de modules personnalisés qui ne sont pas disponibles via npm.

Déployer le proxy

  1. Dans un terminal, utilisez la commande cd pour accéder au répertoire racine de votre application Node.js.
  2. Exécutez apigeetool avec la commande deployHostedtarget:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    -n est le nom que vous souhaitez donner au nouveau proxy. Il doit être unique au sein de l'organisation. Les caractères que vous êtes autorisé à utiliser dans le nom sont limités aux éléments suivants: a-z0-9._\-$%

    Exemple :

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    Pour en savoir plus sur l'utilisation de apigeetool, consultez la page https://github.com/apigee/apigeetool-node.

Tester le proxy

Vous pouvez tester le proxy à l'aide d'une commande cURL, avec un client REST tel que Postman ou dans l'interface utilisateur Edge de l'outil Trace. Voici un exemple de commande cURL.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

Obtenir les journaux de compilation

Les journaux de compilation fournissent des résultats liés au déploiement et à la création de l'application Node.js. Consultez également l'article Fichiers journaux.

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

Exemple :

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

Obtenir les journaux d'exécution

Les journaux d'exécution affichent une sortie liée à l'application en cours d'exécution. Ils sont limités à l'environnement et renvoient les journaux de la révision de proxy actuellement déployée. Consultez également l'article Fichiers journaux.

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

Exemple :

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

Affichage du proxy dans l'interface utilisateur Edge

Après un déploiement réussi, vous pouvez afficher et modifier votre proxy dans la partie Proxys d'API de l'interface utilisateur Edge.

Migrer un proxy Node.js existant vers un proxy de cibles hébergées

Cette section explique comment migrer manuellement un proxy d'API Edge existant qui utilise la mise en œuvre traditionnelle des cibles Node.js vers des cibles hébergées. Elle explique également comment déployer le proxy une fois la migration effectuée.

Les étapes de migration conservent la structure du proxy d'API, les règles, les flux et d'autres éléments de configuration. Vous pouvez effectuer la migration en quatre étapes, comme indiqué ci-dessous, puis déployer le proxy migré à l'aide de apigeetool.

Étape 1: Ajustez la structure du fichier proxy

Pour ajuster la structure des fichiers, le proxy d'API doit se trouver sur votre système de fichiers local. Si le proxy est déployé sur Edge, vous devez le télécharger avant de continuer. Dans la configuration traditionnelle, le "bundle" du proxy Edge qui inclut le code Node.js suit cette structure de fichiers. Le code d'application Node.js est placé dans le répertoire resources/node:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


Pour les cibles hébergées, vous devez placer le répertoire racine de votre application Node.js dans un répertoire nommé resources/hosted. Il vous suffit de créer un répertoire nommé resources/Hosted et d'y déplacer le contenu de resources/node. Vous pouvez ensuite supprimer le répertoire resources/node.

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

Étape 2: Ajoutez le fichier manifeste

Créez un fichier manifeste appelé app.yaml et placez-le dans le répertoire apiproxy/resources/hosted.

Voici un exemple de fichier app.yaml. Elle spécifie que l'environnement d'exécution est Node.js (obligatoire). Il crée également une variable d'environnement dans l'environnement d'exécution (une variable à laquelle l'application Node.js peut accéder). La variable d'environnement est facultative et n'est présentée ici qu'à titre d'exemple. Pour en savoir plus et obtenir des exemples, consultez Fichier manifeste.

runtime: node
  env:
    - name: NODE_ENV
      value: production


L'exemple suivant montre une structure de projet Node.js située à l'emplacement approprié dans le proxy pour le déploiement des cibles hébergées:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

Étape 3: Vérifiez que vous disposez d'un fichier package.json

Dans les proxys Edge Node.js traditionnels, le package.json était facultatif. Toutefois, pour les cibles hébergées, vous devez en indiquer une dans le répertoire apiproxy/resources/hosted. Veillez à spécifier les dépendances requises pour votre application dans ce fichier.

Étape 4: Modifiez le point de terminaison cible du proxy

Un proxy Node.js traditionnel exige la présence d'un tag nommé <ScriptTarget> dans le fichier de point de terminaison cible (généralement /apiproxy/targets/default.xml). Pour les cibles hébergées, vous devez ajouter une balise vide nommée <HostedTarget/>. Si le fichier contient une balise ScriptTarget, vous pouvez simplement la supprimer. Exemple :

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

Déployer le proxy

Vous pouvez maintenant déployer le proxy à l'aide de la commande apigeetool deployproxy.

  1. cd sur le répertoire racine de votre proxy: /apiproxy
  2. Utilisez la commande suivante pour déployer le proxy :
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    Exemple :

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

Pour en savoir plus sur l'utilisation de apigeetool, consultez la page https://github.com/apigee/apigeetool-node/blob/master/README.md.

Tester le proxy

Vous pouvez tester le proxy à l'aide d'une commande cURL, avec un client REST tel que Postman ou dans l'interface utilisateur Edge de l'outil Trace. Voici un exemple de commande cURL:

curl http://myorg-test.apigee.net/hello-world
Hello,World!