Estás consultando la documentación de Apigee Edge.
Consulta la
documentación de Apigee X. Información
Anula la implementación de un proxy de Hosted Targets
Cuando anulas la implementación de un proxy perimetral que incluye una aplicación de destinos alojados, se anula la implementación de la aplicación de destinos alojados asociada, pero no se borra la imagen de la aplicación subyacente. Si vuelves a implementar el proxy, la app de Hosted Targets se volverá a implementar.
Borra un proxy de Hosted Targets
Después de borrar un proxy de Hosted Targets, las instancias de entorno de ejecución subyacentes dejarán de ejecutarse dentro de un período. Sin embargo, el código de la aplicación se conservará.
Accede a los archivos de registro
Los archivos de registro son útiles para depurar y solucionar problemas. Puedes ver dos tipos de archivos de registro para una implementación de destinos alojados:
- Registro de compilación: Muestra el resultado relacionado con la implementación y la compilación de una app de destinos alojados.
- Registro del entorno de ejecución: Muestra el resultado relacionado con la app de Hosted Targets en ejecución. Los registros del entorno de ejecución tienen alcance en el entorno y muestran información de registro para la revisión del proxy implementada actualmente.
Accede a los registros desde la IU de Edge
- Ve a apigee.com/edge.
- Ingresa tus credenciales de acceso y haz clic en Acceder.
- Selecciona Develop > API Proxies en el menú de navegación lateral.
- Selecciona el proxy del que deseas ver los registros.
- Haz clic en la pestaña Desarrollo.
- Para ver el registro de compilación, haz clic en Registros de compilación.
- Para ver el registro del entorno de ejecución, haz clic en Registros del entorno de ejecución.
Accede a registros con la API
También puedes usar una API de Edge para recuperar los registros de Hosted Targets. Para obtener más información, consulta Obtén registros de Node.js almacenados en caché.
Usa un repositorio privado de npm
En esta sección, se explica cómo implementar un proxy de Node.js en destinos alojados en los casos en los que usas un repositorio de NPM privado en tu entorno de desarrollo.
Qué necesitas saber sobre el uso de un repositorio privado
Cuando implementas una app de Node.js en Edge, todas las dependencias del proyecto se importan automáticamente como parte del proceso de implementación.
En esencia, Hosted Targets ejecuta npm install
en tu código cuando se implementa.
Sin embargo, si usas un repositorio de NPM privado en el entorno de desarrollo, las dependencias privadas no se pueden resolver en la nube. En este caso, la solución es usar la opción --bundled-dependencies
cuando usas la utilidad de implementación apigeetool. Consulta también
Implementa Node.js desde tu sistema en Edge.
Cuando uses la marca --bundled-dependencies
en apigeetool
, tu
app de Node.js se subirá a Destinos alojados, y todos los archivos locales o privados que se encuentren
en el array de BundledDependencies en package.json
se comprimen y se suben con el paquete.
Aunque no es una situación común, ten en cuenta que si duplicas un repositorio público de NPM de forma interna, tu implementación fallará si tu paquete de implementación incluye un archivo .npmrc
o package-lock.json
que apunte a tu duplicación privada. En este caso, asegúrate de omitir .npmrc
o package-lock.json
del paquete de proxy que deseas implementar.
Implementa con un repositorio privado de NPM
Para usar los módulos proporcionados desde un repositorio privado de NPM, sigue estos pasos:
- Accede a npm:
npm login
- Obtén un token de autenticación de npm:
- Busca tu archivo .npmrc (debería estar en ~/.npmrc).
- En tu archivo .npmrc, anota el token al final de la línea, que se ve de la siguiente manera:
//registry.npmjs.org/:_authToken=****
- También puedes usar los comandos
npm token <list | create | revoke>
para mostrar, crear o revocar un token de autenticación. Consulta la documentación de npm-token para obtener más detalles. - Accede a la página de configuración de mapas de pares clave-valor, como se describe a continuación.
Conexión de integración
Para acceder a la página de configuración de mapas de pares clave-valor mediante la IU de Edge, haz lo siguiente:
- Accede a apigee.com/edge.
- En la barra de navegación izquierda, selecciona Administrador > Entornos > Mapas de pares clave-valor.
Versión clásica de Edge (nube privada)
Para acceder a la página de configuración de los mapas de pares clave-valor mediante la IU clásica de Edge, sigue estos pasos:
- Accede a
http://ms-ip:9000
, donde ms-ip es la dirección IP o el nombre de DNS del nodo del servidor de administración. - En la barra de navegación superior, selecciona APIs > Configuración del entorno > Mapas de pares clave-valor.
- Haz clic en + Mapa de par clave-valor.
- En el diálogo Nuevo mapa de par clave-valor, ingresa un nombre y selecciona Encriptado.
- Haz clic en Agregar.
- Agrega el token de autenticación que ubicaste o creaste como una entrada nueva en cada uno de los KVM que acabas de crear.
- En el archivo app.yaml, agrega una entrada que haga referencia al KVM y a la clave asociada con el token de autenticación de npm. Debería ser similar a lo siguiente:
- El atributo name de nivel superior corresponde al nombre de la variable de entorno que se creará.
- El name en valueRef corresponde al KVM que creaste anteriormente.
- El atributo key corresponde a la clave que se asigna al token de npm que agregaste a KVM.
- Crea un archivo .npmrc en el mismo directorio que tu package.json. Este
archivo debería ser similar al siguiente:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
o, si no usasregistry.npmjs.org
, puedes configurar el alcance en el archivo .npmrc. Para ello, agrega una línea como esta@myscope:registry=https://mycustomregistry.example.org
Consulta también la documentación de npmrc. - Sube o actualiza tu proxy de Node.js con el archivo .npmrc y los archivos app.yaml incluidos.
- Asegúrate de que tu proxy nuevo o actualizado se implemente y funcione con el módulo de repositorio privado que desees.
- Si el proxy no se implementa, revisa los registros de compilación para ver si falló la instalación del módulo de npm privado. De ser así, debes seguir estos pasos:
- En la pestaña Desarrollo, asegúrate de que .npmrc esté presente.
- Asegúrate de que tu token sea válido (intenta instalar el módulo de forma local con el token presente en kvm).
- Si usas un alcance personalizado, asegúrate de que esté configurado.
env: - name: NPM_TOKEN valueRef: name: npm_store key: private_token
Donde:
Especifica la versión de NPM para las dependencias empaquetadas
De forma predeterminada, se usa NPM v4 para instalar las dependencias empaquetadas en el entorno de Hosted Targets.
Sin embargo, si deseas usar una versión de NPM diferente, puedes especificarla en la variable de entorno NPM_VERSION
. Puedes establecer esta variable en el archivo de manifiesto de la aplicación. Consulta Elementos del archivo de manifiesto para obtener más detalles.
Si usas dependencias empaquetadas y no especificas NPM_VERSION
, Hosted Targets usa NPM v4 de forma predeterminada. Si no usas dependencias empaquetadas, se usa la versión de NPM que se incluye en el entorno de ejecución de Node.js especificado.
Ejemplo de dependencias agrupadas
Si quieres ver un ejemplo en el que se muestra la función de dependencias empaquetadas con destinos alojados, consulta Cómo crear una aplicación de Node.js con funciones alojadas mediante módulos personalizados.Agregar un extremo de verificación de estado
Tienes la opción de implementar un extremo de verificación de estado para tu aplicación de Node.js. Apigee usa este extremo cuando la aplicación de Node.js comienza a verificar que la aplicación se esté ejecutando en el contenedor.
De forma predeterminada, el extremo que espera Apigee es /health
. Puedes cambiar el extremo predeterminado si lo especificas en una variable de entorno llamada HOSTED_TARGET_HEALTH_CHECK_PATH
. Puedes establecer esta variable en el archivo de manifiesto de la app. Consulta Elementos del archivo de manifiesto para obtener más detalles.
No es necesario implementar un extremo de verificación de estado. Sin embargo, si implementas un extremo de verificación de estado, ten en cuenta lo siguiente:
- Si tu aplicación se cierra cuando Apigee llega al extremo, esta no se iniciará como se espera.
- No hay problema si el extremo muestra un estado HTTP 404 No encontrado.
/health
oHOSTED_TARGET_HEALTH_CHECK_PATH
solo se usan para verificar si tu aplicación se está ejecutando. Se ignora la respuesta real.
Cambia la ubicación de la caché de NPM
Las versiones más recientes de Node.js usan una versión de NPM que usa /root/.npm
para la caché de NPM.
Esta ubicación presenta un problema para los destinos alojados porque la ubicación del directorio es de solo lectura, ya que el entorno de ejecución de destino alojado usa un sistema de archivos tmpfs en el que solo se puede escribir en /tmp
.
Para solucionar este problema, puedes establecer la variable de entorno npm_config_cache
en el archivo app.yaml
(el archivo de manifiesto) de tu aplicación en un directorio dentro de /tmp
. Por ejemplo:
runtime: node application: my-express-app env: - name: npm_config_cache value: /tmp/.npm - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
Ejecuta tu aplicación sin NPM
De forma predeterminada, Hosted Targets usa npm start
para ejecutar tu aplicación de Hosted Target. Sin embargo, en la tarea anterior, analizamos un problema relacionado con el uso de NPM, ya que las versiones más recientes intentarán usar /root/.npm
para la caché de NPM, que no admite escritura y provoca que el destino alojado no se inicie. Si bien la tarea anterior funcionará según este problema, otra opción sería ejecutar tu aplicación sin NPM. Para ello, puedes usar los valores command
y args
en el archivo app.yaml
(el archivo de manifiesto) de tu aplicación para ejecutar tu destino alojado directamente con node index.js
. Por ejemplo:
runtime: node application: my-express-app command: node args: - index.js env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3Por supuesto, puedes usar el comando que consideres adecuado y
node index.js
es solo un
ejemplo.