Vous consultez la documentation d'Apigee Edge.
Accéder à la documentation sur 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, l'application de cibles hébergées associées est annulée, mais l'image de l'application sous-jacente n'est pas supprimée. Si vous redéployez le proxy, l'application Cibles hébergées est redéployée.
Supprimer un proxy Hosted Targets
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 au bout d'un certain 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 la sortie liée au déploiement et à la compilation d'une application Hosted Targets.
- Journal d'exécution : affiche la sortie liée à l'application Hosted Targets en cours d'exécution. Les journaux d'exécution sont limités à l'environnement et affichent des informations de journal pour la version de 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 Se connecter.
- 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 de compilation, 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 des 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 si 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 substance, 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éploiement de Node.js depuis 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 répertorié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 créez un miroir d'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
du bundle de proxy que vous souhaitez 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:
- Connectez-vous à npm :
npm login
- Obtenez un jeton d'autorisation npm :
- Recherchez votre fichier .npmrc (qui devrait 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 lister, créer ou révoquer un jeton d'authentification. Pour en savoir plus, consultez la documentation npm-token. - Accédez à la page de configuration des mappages clé-valeur, 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:
- Connectez-vous à apigee.com/edge.
- Sélectionnez Admin > Environnements > Cartes de clés-valeurs dans la barre de navigation de gauche.
Edge classique (cloud privé)
Pour accéder à la page de configuration des mappages clé-valeur à l'aide de l'interface utilisateur classique d'Edge :
- Connectez-vous à
http://ms-ip:9000
, où ms-ip est l'adresse IP ou le 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 clé-valeur.
- Dans la boîte de dialogue "Nouveau mappage de clés-valeurs", saisissez un nom, puis sélectionnez Chiffré.
- Cliquez sur Ajouter.
- Ajoutez le jeton d'authentification que vous avez précédemment trouvé ou créé en tant qu'entrée dans chacune 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ées au jeton d'authentification npm. Voici un exemple :
- L'attribut de niveau supérieur name correspond au nom de la variable d'environnement qui sera créée.
- Le nom sous valueRef correspond à la KVM que vous avez créée précédemment.
- L'attribut key correspond à la clé qui correspond au jeton npm que vous avez ajouté au KVM.
- Créez un fichier .npmrc dans le même répertoire que votre fichier package.json. Ce fichier doit se présenter comme suit :
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
ou 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 avec les fichiers .npmrc et app.yaml inclus.
- 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 le 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 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 la section É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 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 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 requise. Toutefois, si vous implémentez un point de terminaison de vérification de l'état, tenez compte des points suivants :
- Si votre application se ferme lorsque Apigee atteint le point de terminaison, elle ne démarrera pas comme prévu.
- Il est acceptable que votre point de terminaison renvoie un code d'état HTTP 404 "Introuvable".
/health
ouHOSTED_TARGET_HEALTH_CHECK_PATH
ne sert qu'à vérifier si votre application s'exécute. 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 présente 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
du fichier app.yaml
(fichier manifeste) de votre application sur un répertoire de /tmp
. Par 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 cible hébergée. Toutefois, dans la tâche précédente, nous avons évoqué 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 enregistrable et qui entraîne l'échec du 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
(le fichier manifeste) de votre application afin d'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: 3Vous pouvez bien sûr utiliser la commande de votre choix.
node index.js
n'est qu'un exemple.