Tâches liées aux cibles hébergées

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

Annuler le déploiement d'un proxy de cibles hébergées

Lorsque vous annulez le déploiement d'un proxy Edge qui inclut une application de cibles hébergées, l'application de cibles hébergées associée est annulée, mais l'image de l'application sous-jacente n'est pas supprimée. Si vous redéployez le proxy, l'application de cibles hébergées est redéployée.

Supprimer un proxy de cibles hébergées

Une fois que vous avez supprimé un proxy de cibles hébergées, les instances d'exécution sous-jacentes cesseront de s'exécuter au bout d'un certain temps. Toutefois, le code de l'application sera conservé.

Accéder aux fichiers journaux

Les fichiers journaux sont utiles pour le débogage et le dépannage. Vous pouvez afficher deux types de fichiers journaux pour un déploiement de cibles hébergées :

  • Journal de compilation : affiche la sortie liée au déploiement et à la compilation d'une application de cibles hébergées.
  • Journal d'exécution : affiche la sortie liée à l'application de cibles hébergées en cours d'exécution. Les journaux d'exécution sont limités à l'environnement et affichent les informations de journal pour la révision de proxy actuellement déployée.

Accéder aux journaux à partir de l'interface utilisateur Edge

  1. Accédez à apigee.com/edge.
  2. Saisissez vos identifiants de connexion, puis cliquez sur Se connecter.
  3. Sélectionnez Développer > Proxys API dans le menu de navigation latéral.
  4. Sélectionnez le proxy pour lequel vous souhaitez afficher les journaux.
  5. Cliquez sur l'onglet Développer.
  6. Pour afficher le journal de compilation, cliquez sur Journaux de compilation.
  7. Pour afficher le journal d'exécution, cliquez sur Journaux d'exécution.

Accéder aux journaux avec l'API

Vous pouvez également utiliser une API Edge pour récupérer les journaux de cibles hébergées. Pour en savoir plus, consultez Obtenir les journaux Node.js mis en cache.

Utiliser un dépôt npm privé

Cette section explique comment déployer un proxy Node.js sur des cibles hébergées lorsque vous utilisez un dépôt npm privé dans votre environnement de développement.

Ce que vous devez savoir sur l'utilisation d'un dépôt privé

Lorsque vous déployez une application Node.js sur Edge, toutes les dépendances de votre projet sont importées automatiquement dans le cadre du processus de déploiement. En fait, les cibles hébergées exécutent npm install sur votre code lors de son déploiement. Toutefois, si vous utilisez un dépôt npm privé dans votre environnement de développement, les dépendances privées ne peuvent pas être résolues dans le cloud. Dans ce cas, la solution consiste à utiliser l'option --bundled-dependencies lorsque vous utilisez l' utilitaire de déploiement apigeetool. Consultez également Déployer Node.js de votre système vers Edge.

Lorsque vous utilisez l'indicateur --bundled-dependencies sur apigeetool, votre application Node.js est importée dans les cibles hébergées, et tous les fichiers locaux/privés listés dans le tableau bundledDependencies de package.json sont compressés et importés avec le bundle.

Bien que ce ne soit pas une situation courante, sachez que si vous mettez en miroir un dépôt npm public en interne, votre déploiement échouera si votre bundle de déploiement inclut un fichier .npmrc ou package-lock.json qui pointe vers votre miroir privé. Dans ce cas, veillez à omettre .npmrc ou package-lock.json de votre bundle de proxy que vous comptez déployer.

Déployer avec un dépôt npm privé

Pour utiliser les modules fournis par un dépôt npm privé, procédez comme suit :

  1. Connectez-vous à npm :
    npm login
  2. Obtenez un jeton d'authentification npm :
    1. Recherchez votre fichier .npmrc (il doit se trouver dans ~/.npmrc).
    2. Dans votre fichier .npmrc, notez le jeton à la fin de la ligne qui ressemble à ceci :

      //registry.npmjs.org/:_authToken=****
    3. Vous pouvez également utiliser les commandes npm token <list | create | revoke> pour lister, créer ou révoquer un jeton d'authentification. Pour en savoir plus, consultez la documentation npm-token.
  3. Accédez à la page de configuration des mappages clé-valeur, comme décrit ci-dessous.

    Edge

    Pour accéder à la page de configuration des mappages clé-valeur à l'aide de l'interface utilisateur Edge :

    1. Connectez-vous à apigee.com/edge.
    2. Sélectionnez Admin > Environnements > Mappages clé-valeur dans la barre de navigation de gauche.

    Classic Edge (Private Cloud)

    Pour accéder à la page de configuration des mappages clé-valeur à l'aide de l'interface utilisateur Classic Edge :

    1. Connectez-vous à http://ms-ip:9000, où ms-ip correspond à l' adresse IP ou au nom DNS du nœud de serveur de gestion.
    2. Sélectionnez API > Configuration de l'environnement > Mappages clé-valeur dans la barre de navigation supérieure.
  4. Cliquez sur + Mappage clé-valeur.
  5. Dans la boîte de dialogue "Nouveau mappage clé-valeur", saisissez un nom et sélectionnez Chiffré.
  6. Cliquez sur Ajouter.
  7. Ajoutez le jeton d'authentification que vous avez précédemment trouvé ou créé en tant que nouvelle entrée dans chacun des mappages clé-valeur que vous venez de créer.
  8. Dans votre app.yaml fichier, ajoutez une entrée qui référence le mappage clé-valeur et la clé associés au jeton d'authentification npm. Exemple :
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Où :

    • L'attribut name de premier niveau correspond au nom de la variable d'environnement qui sera créée.
    • Le nom sous valueRef correspond au mappage clé-valeur que vous avez créé précédemment.
    • L'attribut key correspond à la clé qui mappe le jeton npm que vous avez ajouté au mappage clé-valeur.
  10. Créez un fichier .npmrc dans le même répertoire que votre fichier package.json. Ce fichier doit ressembler à ceci :
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    ou, si vous n'utilisez pas registry.npmjs.org vous pouvez définir le champ d'application dans le fichier .npmrc en ajoutant une ligne comme celle-ci @myscope:registry=https://mycustomregistry.example.org Consultez également la documentation npmrc.
  11. Importez ou mettez à jour votre proxy Node.js en incluant les fichiers .npmrc et app.yaml.
  12. Assurez-vous que votre proxy nouveau ou mis à jour se déploie et fonctionne avec le module de dépôt privé souhaité.
  13. Si le proxy ne se déploie pas, consultez les journaux de compilation pour voir s'il a échoué lors de l'installation du module npm privé. Si tel est le cas :
    1. Sous l'onglet "Développer", assurez-vous que le fichier .npmrc est présent.
    2. Assurez-vous que votre jeton est valide (essayez d'installer le module localement avec le jeton présent dans le mappage clé-valeur).
    3. Si vous utilisez un champ d'application personnalisé, assurez-vous que est défini.

Spécifier la version npm pour les dépendances groupées

Par défaut, npm v4 est utilisé pour installer les dépendances groupées dans l'environnement de cibles hébergées. Toutefois, si vous souhaitez utiliser une autre version npm, vous pouvez la spécifier dans la NPM_VERSION variable d'environnement. Vous pouvez définir cette variable dans le fichier manifeste de l'application. Pour en savoir plus, consultez Éléments du fichier manifeste.

Si vous utilisez des dépendances groupées et que vous ne spécifiez pas NPM_VERSION, les cibles hébergées utilisent npm v4 par défaut. Si vous n'utilisez pas de dépendances groupées, la version npm incluse dans l'environnement d'exécution Node.js spécifié est utilisée.

Exemple de dépendances groupées

Pour obtenir un exemple illustrant la fonctionnalité de dépendances groupées avec les cibles hébergées, consultez Créer une application Node.js avec des fonctions hébergées à l'aide de modules personnalisés.

Ajouter un point de terminaison de vérification d'état

Vous avez la possibilité d'implémenter un point de terminaison de vérification d'état pour votre application Node.js. Apigee utilise ce point de terminaison lorsque votre application Node.js démarre pour vérifier qu'elle est opérationnelle dans le conteneur.

Par défaut, le point de terminaison attendu par Apigee est /health. Vous pouvez modifier le point de terminaison par défaut en le spécifiant dans une variable d'environnement nommée HOSTED_TARGET_HEALTH_CHECK_PATH. Vous pouvez définir cette variable dans le fichier manifeste de l'application. Pour en savoir plus, consultez Éléments du fichier manifeste.

L'implémentation d'un point de terminaison de vérification d'état n'est pas obligatoire. Toutefois, si vous implémentez un point de terminaison de vérification d'état, tenez compte des points suivants :

  • Si votre application se ferme lorsqu'Apigee atteint le point de terminaison, elle ne démarrera pas comme prévu.
  • Il est acceptable que votre point de terminaison renvoie un état HTTP 404 Not Found. Le /health ou HOSTED_TARGET_HEALTH_CHECK_PATH n'est utilisé que pour vérifier si votre application est en cours d'exécution. La réponse réelle est ignorée.

Modifier l'emplacement du cache npm

Les versions plus récentes de Node.js utilisent une version de npm qui utilise /root/.npm pour le cache npm. Cet emplacement pose un problème pour les cibles hébergées, car cet emplacement de répertoire est en lecture seule car l'environnement d'exécution de la cible hébergée utilise un système de fichiers tmpfs où seul /tmp est accessible en écriture. Pour contourner ce problème, vous pouvez définir la variable d'environnement npm_config_cache dans le fichier app.yaml de votre application (le fichier manifeste) sur un répertoire de /tmp. Exemple :

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

Exécuter votre application sans npm

Par défaut, les cibles hébergées utilisent npm start pour exécuter votre application de cibles hébergées. Toutefois dans la tâche précédente, nous avons abordé un problème lié à l'utilisation de npm, car les versions plus récentes tentent d'utiliser /root/.npm pour le cache npm, qui n'est pas accessible en écriture et empêche le démarrage de votre cible hébergée. Bien que la tâche précédente permette de contourner ce problème, une autre option consiste à exécuter votre application sans npm. Pour ce faire, vous pouvez utiliser les valeurs command et args dans le fichier app.yaml de votre application (le fichier manifeste) pour exécuter directement votre cible hébergée à l'aide de node index.js. Exemple :

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
Bien sûr, vous pouvez utiliser la commande que vous jugez appropriée. node index.js n'est qu'un exemple.