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

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

<ph type="x-smartling-placeholder">

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, les propriétés L'application hébergée pour les cibles n'est pas déployée, mais l'image sous-jacente de l'application n'est pas supprimée. Si vous redéployer le proxy, l'application Hosted Targets 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 dans un certain laps de temps. Toutefois, le code d'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 de compilation : affiche les résultats liés au déploiement et à la création d'une application de cibles hébergées.
  • Runtime log (Journal d'exécution) : affiche les résultats liés à l'application Hosted Cibles en cours d'exécution. Journaux d'exécution sont limités à l'environnement et affichent les informations de journal de la révision de proxy actuellement déployée.

Accès aux journaux à partir de l'interface utilisateur Edge

  1. Accédez à apigee.com/edge
  2. Saisissez vos identifiants de connexion, puis cliquez sur Connexion.
  3. Sélectionnez 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 de compilation, cliquez sur Build Logs (Journaux de compilation).
  7. Pour afficher le journal d'exécution, cliquez sur Journaux d'exécution.

Accéder aux journaux à l'aide de l'API

Vous pouvez également utiliser une API Edge pour récupérer les journaux des 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 dans les cas où vous utilisez un dépôt NPM privé 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 processus de déploiement. En bref, 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 ne peuvent pas être résolues dans le cloud. Dans Dans ce cas, la solution consiste à utiliser l'option --bundled-dependencies lorsque vous utilisez l'utilitaire de déploiement apigeetool. Voir aussi Déployez Node.js depuis votre système vers Edge.

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

Bien que cela ne soit pas courant, 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 à votre miroir privé. Dans ce cas, veillez à omettre .npmrc ou package-lock.json. de votre bundle de proxys que vous prévoyez de déployer.

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

Pour utiliser les 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 votre fichier .npmrc (qui devrait 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. Voir le jeton npm-token documentation pour en savoir plus.
  3. Accédez à la page de configuration des cartes de valeurs-clés, comme décrit ci-dessous.

    Edge

    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 de valeurs clés 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 est le Adresse IP ou nom DNS du nœud du serveur de gestion.
    2. Sélectionnez API > Configuration de l'environnement > Cartes de valeurs clés 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 clés-valeurs", saisissez un nom, puis sélectionnez Chiffré.
  6. Cliquez sur Ajouter.
  7. Ajoutez le jeton d'authentification que vous avez précédemment localisé ou créé en tant que nouvelle entrée dans chacune des KVM. que vous venez de créer.
  8. Dans le fichier app.yaml, ajoutez une entrée faisant référence à la clé KVM et à la clé associé au jeton d'authentification npm. Voici un exemple :
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Où :

    • L'attribut de niveau supérieur name correspond au nom de l'environnement. qui sera créée.
    • Le nom sous valueRef correspond à la KVM que vous utilisez créé précédemment.
    • L'attribut key correspond à la clé mappée au jeton npm que vous ajouté à la KVM.
  10. Créez un fichier .npmrc dans le même répertoire que le fichier package.json. Ce 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 inclus.
  12. Assurez-vous que le nouveau proxy (ou celui mis à jour) se déploie et fonctionne avec le dépôt privé souhaité de ce module.
  13. Si le proxy ne se déploie pas, consultez les journaux de compilation pour voir si l'installation a échoué un module npm privé. Si tel est le cas :
    1. Assurez-vous que le fichier .npmrc est présent dans l'onglet "Développement".
    2. Vérifiez que votre jeton est valide (essayez d'installer le module localement en incluant le jeton). dans le 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 le fichier 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 si vous ne spécifiez pas NPM_VERSION, les cibles hébergées utilise NPM v4 par défaut. Si vous n'utilisez pas de dépendances groupées, la version de NPM qui est incluse dans l'environnement d'exécution Node.js spécifié est utilisé.

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 Découvrez 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 d'état

Vous avez la possibilité d'implémenter un point de terminaison de vérification de l'état pour votre application Node.js. Apigee utilise ce point de terminaison L'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 paramètre par défaut en spécifiant le point de terminaison 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 requise. Toutefois, si vous mettez en œuvre une vérification d'état notez les points suivants:

  • Si votre application se ferme lorsque Apigee atteint le point de terminaison, elle ne démarrera pas comme prévu.
  • Votre point de terminaison renvoie sans problème l'état HTTP "404 Not Found". La méthode /health ou HOSTED_TARGET_HEALTH_CHECK_PATH permet uniquement de 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 cible hébergé 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 de votre application app.yaml (fichier manifeste) 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 GPR

Par défaut, les cibles hébergées utilisent npm start pour exécuter votre application 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 tenteront d'utiliser /root/.npm pour le cache NPM, qui n'est pas accessible en écriture et qui se traduit par votre cible hébergée ne démarre pas. Si la tâche précédente fonctionnera toujours, une autre option consiste à exécuter votre application sans GPR. Pour ce faire, vous pouvez utiliser command et args dans le fichier app.yamlfile (fichier manifeste) pour exécuter votre cible hébergée directement à 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
  
Vous pouvez bien sûr utiliser la commande de votre choix, et node index.js n'est qu'une commande à titre d'exemple.