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
- Accédez à: apigee.com/edge
- Saisissez vos identifiants de connexion, puis cliquez sur Sign In (Connexion).
- Sélectionnez Develop > API Proxies (Développer > Proxys d'API) dans le menu de navigation latéral.
- Sélectionnez le proxy pour lequel vous souhaitez afficher les journaux.
- Cliquez sur l'onglet Développer.
- Pour afficher le journal des builds, cliquez sur Journaux de compilation.
- 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:
- Connectez-vous à npm :
npm login
- Obtenez un jeton d'authentification npm:
- Recherchez le fichier .npmrc (qui doit se trouver dans ~/.npmrc).
- Dans votre fichier .npmrc, notez le jeton à la fin de la ligne qui se présente comme suit:
//registry.npmjs.org/:_authToken=****
- 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. - 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:
- Connectez-vous à apigee.com/edge.
- 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:
- Connectez-vous à
http://ms-ip:9000
, où ms-ip correspond à l'adresse IP ou au nom DNS du nœud du serveur de gestion. - 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.
- Cliquez sur + Mappage de clés-valeurs.
- Dans la boîte de dialogue "Nouveau mappage de valeurs clés", saisissez un nom, puis sélectionnez Chiffré.
- Cliquez sur Add (Ajouter).
- 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.
- 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 :
- 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.
- 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 pasregistry.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. - Importez ou mettez à jour votre proxy Node.js en incluant le fichier .npmrc et les fichiers app.yaml.
- Assurez-vous que votre proxy nouveau ou mis à jour se déploie et fonctionne avec le module de dépôt privé souhaité.
- 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 :
- Dans l'onglet "Développer", assurez-vous que le fichier .npmrc est présent.
- Assurez-vous que votre jeton est valide (essayez d'installer le module localement avec le jeton présent dans kvm).
- Si vous utilisez un champ d'application personnalisé, assurez-vous qu'il est défini.
env: - name: NPM_TOKEN valueRef: name: npm_store key: private_token
Où :
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
ouHOSTED_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: 3Bien sûr, vous pouvez utiliser la commande que vous jugez adaptée.
node index.js
n'est qu'un exemple.