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

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

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, le déploiement de cette application est annulé, mais l'image de l'application sous-jacente n'est pas supprimée. Si vous redéployez le proxy, l'application Hosted Cibles 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 cessent de s'exécuter après un certain temps. Toutefois, le code de l'application est 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 des builds : affiche les résultats liés au déploiement et à la création d'une application de cibles hébergées.
  • Journal d'exécution : affiche les résultats liés à l'application Hosted Cibles en cours d'exécution. Les journaux d'exécution sont limités à l'environnement et affichent les informations de journal de la révision du 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 Sign In (Connexion).
  3. Sélectionnez Develop > API Proxies (Développer > Proxys d'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 des builds, 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 la section 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 bref, les cibles hébergées exécute npm install sur votre code lorsqu'il est déployé. 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 la page 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 des cibles hébergées, et tous les fichiers locaux/privés listés dans le tableau bundledDependencies dans 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 groupe de déploiements inclut un fichier .npmrc ou package-lock.json qui pointe vers votre miroir privé. Dans ce cas, veillez à omettre .npmrc ou package-lock.json du groupe de proxys que vous souhaitez déployer.

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

Pour utiliser des modules fournis à partir d'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 le fichier .npmrc (qui doit se trouver dans ~/.npmrc).
    2. Dans votre fichier .npmrc, notez le jeton à la fin de la ligne qui se présente comme suit:

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

    Périphérie

    Pour accéder à la page de configuration des cartes de valeurs clés à l'aide de l'interface utilisateur Edge:

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

    Classic Edge (cloud privé)

    Pour accéder à la page de configuration des cartes de valeurs clés à 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 du serveur de gestion.
    2. Sélectionnez APIs > Environment Configuration > Key Value Maps (API > Configuration de l'environnement > Cartes de clés-valeurs) dans la barre de navigation supérieure.
  4. Cliquez sur + Mappage de clés-valeurs.
  5. Dans la boîte de dialogue "Nouveau mappage de valeurs clés", saisissez un nom, puis sélectionnez Chiffré.
  6. Cliquez sur Add (Ajouter).
  7. Ajoutez le jeton d'authentification que vous avez précédemment localisé ou créé en tant que nouvelle entrée dans chacun des KVM que vous venez de créer.
  8. Dans votre fichier app.yaml, ajoutez une entrée qui référence la clé KVM et la clé associée au jeton d'authentification npm. Le résultat devrait ressembler à l'exemple suivant :
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Où :

    • L'attribut name de niveau supérieur correspond au nom de la variable d'environnement qui sera créée.
    • Le name sous valueRef correspond au KVM que vous avez créé précédemment.
    • L'attribut key correspond à la clé mappée au jeton npm que vous avez ajouté à KVM.
  10. Créez un fichier .npmrc dans le même répertoire que votre package.json. Ce fichier doit ressembler à ceci :
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    . 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 le fichier .npmrc et les fichiers 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 si l'installation du module npm privé a échoué. Si tel est le cas :
    1. Dans 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 kvm).
    3. Si vous utilisez un champ d'application personnalisé, assurez-vous qu'il est défini.

Spécifier la version de NPM pour les dépendances groupées

Par défaut, NPM v4 est utilisé pour installer des dépendances groupées dans l'environnement de cibles hébergées. Toutefois, si vous souhaitez utiliser une autre version de NPM, vous pouvez la spécifier dans la variable d'environnement NPM_VERSION. 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 de NPM incluse dans votre 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 des cibles hébergées, consultez la section Comment 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 de l'é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 commence à 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 de l'état n'est pas nécessaire. Toutefois, si vous mettez en œuvre un point de terminaison de vérification de l'état, tenez compte des points suivants:

  • Si votre application se ferme lorsqu'Apigee atteint le point de terminaison, elle ne démarre pas comme prévu.
  • Ne vous inquiétez pas si votre point de terminaison renvoie le code HTTP "404 Not Found". /health ou HOSTED_TARGET_HEALTH_CHECK_PATH ne sert qu'à 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 de NPM. Cet emplacement présente un problème pour les cibles hébergées, car cet emplacement du répertoire est en lecture seule, car l'environnement d'exécution Hosted Target 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 (le fichier manifeste) de votre application dans 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 cible hébergée. 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 entraîne l'échec du démarrage de votre cible hébergée. La tâche précédente devrait fonctionner sans ce problème, mais vous pouvez aussi exécuter votre application sans NPM. Pour ce faire, vous pouvez utiliser les valeurs command et args du fichier app.yaml (fichier manifeste) de votre application afin d'exécuter directement votre cible hébergée à l'aide de node index.js. Par 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 adaptée. node index.js n'est qu'un exemple.