Tareas de los destinos alojados

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

  1. Ve a apigee.com/edge.
  2. Ingresa tus credenciales de acceso y haz clic en Acceder.
  3. Selecciona Develop > API Proxies en el menú de navegación lateral.
  4. Selecciona el proxy del que deseas ver los registros.
  5. Haz clic en la pestaña Desarrollo.
  6. Para ver el registro de compilación, haz clic en Registros de compilación.
  7. 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:

  1. Accede a npm:
    npm login
  2. Obtén un token de autenticación de npm:
    1. Busca tu archivo .npmrc (debería estar en ~/.npmrc).
    2. En tu archivo .npmrc, anota el token al final de la línea, que se ve de la siguiente manera:

      //registry.npmjs.org/:_authToken=****
    3. 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.
  3. 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:

    1. Accede a apigee.com/edge.
    2. 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:

    1. 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.
    2. En la barra de navegación superior, selecciona APIs > Configuración del entorno > Mapas de pares clave-valor.
  4. Haz clic en + Mapa de par clave-valor.
  5. En el diálogo Nuevo mapa de par clave-valor, ingresa un nombre y selecciona Encriptado.
  6. Haz clic en Agregar.
  7. Agrega el token de autenticación que ubicaste o creaste como una entrada nueva en cada uno de los KVM que acabas de crear.
  8. 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:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Donde:

    • 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.
  10. 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 usas registry.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.
  11. Sube o actualiza tu proxy de Node.js con el archivo .npmrc y los archivos app.yaml incluidos.
  12. Asegúrate de que tu proxy nuevo o actualizado se implemente y funcione con el módulo de repositorio privado que desees.
  13. 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:
    1. En la pestaña Desarrollo, asegúrate de que .npmrc esté presente.
    2. Asegúrate de que tu token sea válido (intenta instalar el módulo de forma local con el token presente en kvm).
    3. Si usas un alcance personalizado, asegúrate de que esté configurado.

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 o HOSTED_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: 3
  
Por supuesto, puedes usar el comando que consideres adecuado y node index.js es solo un ejemplo.