Estás viendo la documentación de Apigee Edge.
Ir a la
documentación de Apigee X. info
Límites de las variables de entorno
Los destinos alojados limitan el tamaño y la cantidad de variables de entorno que puedes configurar en el entorno de ejecución de los destinos alojados.
- 1,000: Es la longitud máxima de una sola variable de entorno.
- 100: Es la cantidad máxima de variables de entorno que puedes configurar.
Para obtener información sobre cómo configurar variables de entorno, consulta El archivo de manifiesto.
Variables de entorno configuradas en el entorno de ejecución de la aplicación
Cuando implementas una aplicación de destinos alojados, se configuran las siguientes variables de entorno, que están disponibles para tu aplicación en el entorno de ejecución:
APIGEE_ENVIRONMENT- Es el entorno en el que se implementa el proxy de destino alojado.APIGEE_ORGANIZATION: Es la organización en la que se implementa el proxy de destino alojado.PORT- Es el puerto en el que debe escuchar la aplicación de destino alojado.
Asignación de recursos del sistema
Cada instancia de destinos alojados recibe los siguientes recursos:
- 256 MB de memoria
- CPU de 1.2 GHz
Escalamiento
En esta sección, se describe cómo se ajustan las aplicaciones de destinos alojados, según el tipo de cuenta de Edge que tengas.- Una versión de prueba de Apigee Edge se limita a una instancia de destinos alojados por proxy.
- Las cuentas pagadas de Apigee Edge reciben un ajuste de escala automático basado en el porcentaje de solicitudes, las latencias de respuesta,
y otras métricas de la aplicación por proxy.
- Las apps de destinos alojados implementadas en versiones pagadas y de prueba de Apigee Edge se reducen a cero en períodos de inactividad. En este caso, es posible que notes tiempos de respuesta más lentos durante un breve período. Consulta también Problemas conocidos
El archivo de manifiesto
Para recopilar información del entorno de ejecución para compilar e implementar la aplicación alojada, Edge busca un archivo de manifiesto llamado app.yaml en el directorio resources/hosted. Este archivo contiene la información necesaria para compilar e implementar la aplicación de destinos alojados.
Sintaxis del archivo de manifiesto
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
Elementos del archivo de manifiesto
Un archivo de manifiesto app.yaml incluye estos elementos:
- runtime : (Obligatorio) Especifica el tipo de aplicación que estás implementando.
Debes especificar
node. - runtimeVersion : (Opcional) Es la versión del entorno de ejecución que usa tu aplicación. Predeterminado: Node.js LTS (v10.x). Consulta el repositorio oficial de Docker para Node para obtener otras opciones.
- command : (Opcional) Te permite especificar un comando para ejecutar que no sea el
comando predeterminado que se usa para iniciar tu aplicación. Predeterminado:
Node.js=npm - args : (Opcional) Es un array de argumentos de línea de comandos para pasar a la
aplicación (especificado en la sintaxis estándar de array YAML). Por lo general, estos se agregan al comando predeterminado.
El valor predeterminado es start. Por ejemplo, de forma predeterminada, se pasará el comando
npm starta la app de Node.js. - env : (Opcional) Es un array de variables de entorno (pares nombre/valor) que se deben configurar en el entorno de ejecución de destinos alojados. Estas variables están disponibles para tu app de destinos alojados implementada.
- name : Es el nombre de la variable.
- value | valueRef : Tienes las siguientes dos opciones: Puedes establecer un valor literal
o hacer referencia a un valor almacenado en un mapa de clave-valor. El mapa de clave-valor ya debe
existir en tu entorno de Edge. Consulta Trabaja con mapas de clave-valor
- Si usas value, debes
especificar una variable
namey un literalvalue. Por ejemplo:runtime: node env: - name: NODE_ENV value: production - Si usas valueRef,
debes proporcionar el name de un mapa de clave-valor (KVM) que creaste anteriormente en Edge y una key.
Por ejemplo:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- Si usas value, debes
especificar una variable
- apigeetool: Es una herramienta de línea de comandos para implementar proxies de Edge.
- get_token: Es una herramienta de línea de comandos para obtener un token de autorización que requiere apigeetool.
- En un navegador, ve a https://github.com/apigee/api-platform-samples.
- Haz clic en Clone or download y extrae el repositorio a tu sistema local con el método que prefieras.
- Haz cd a <tu directorio de instalación>/api-platform-samples/doc-samples/hosted-targets
- Una vez que se descargue el repositorio, puedes hacer cd a cualquiera de los directorios de muestra y seguir las instrucciones de README para implementar un proxy de muestra en Edge. El comando de implementación se muestra a continuación. Simplemente reemplaza los parámetros indicados por los de tu cuenta de Apigee:
- Latencias de red : Ahora que la aplicación de Node.js ya no se ejecuta en la JVM del MP, hay un salto de red entre el MP y la implementación. Por supuesto, esto tiene un costo, pero los parámetros de comparativa iniciales muestran que está dentro de un importe razonable.
- Respuestas lentas de la API : La infraestructura que ejecuta tus aplicaciones se ajusta automáticamente según la necesidad. Esto significa que tu aplicación puede reducir la escala verticalmente a cero instancias y, si ese es el caso, la próxima solicitud a la API tardará un poco más que las solicitudes a la API típicas, ya que la infraestructura está iniciando las instancias para procesar las solicitudes.
- Error de implementación : Si recibes un error de implementación cuando implementas un proxy de destinos alojados, intenta volver a implementarlo. En algunos casos, la implementación puede agotarse y, si vuelves a implementarla, el problema se resolverá por sí solo.
Archivos de manifiesto de ejemplo
Esta sección contiene archivos de manifiesto de ejemplo para aplicaciones de Node.js
aplicaciones. Se requiere un archivo de manifiesto para implementar una app de destinos alojados, y debe ubicarse
en el directorio apiproxy/resources/hosted. Además, el nombre del archivo debe ser app.yaml.
A continuación, se muestran archivos app.yaml (de manifiesto) de ejemplo para apps de Node.js.
Ejemplo que especifica una variable de entorno literal:
runtime: node
env:
- name: NODE_ENV
value: productionEjemplo con un comando de inicio, argumentos de línea de comandos y una variable de entorno.
runtime: node
command: ./node_modules/pm2/bin/pm2
env:
- name: NODE_ENV
value: production
args:
- app.js
Ejemplo que especifica una referencia de mapa de clave-valor (KVM):
Para obtener más información sobre el acceso a KVM, consulta El archivo de manifiesto.
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
Aplicaciones de destinos alojados de muestra en GitHub
Apigee proporciona proxies de muestra en GitHub con aplicaciones de destinos alojados escritas en Node.js. Puedes clonar este repositorio y seguir las instrucciones de README para implementar cualquiera de los proxies.
Requisitos previos
Para implementar las muestras, debes tener dos herramientas instaladas en tu sistema:
Si deseas probar las muestras de forma local, también debes tener instalado Node.js.
Obtén el repositorio de muestra
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
Ejemplo: Ejecuta una app de ejemplo
Clona el repositorio de muestra
cd ~/myhomegit clone https://github.com/apigee/api-platform-samples.gitcd ~/myhome/api-platform-samples/doc-samples/hosted-targetscd node-hosted-hello
Prueba la aplicación de forma local
Debes tener instalado Node.js para realizar esta prueba local.
PORT=8081 node apiproxy/resources/hosted/index.jscurl http://localhost:8081
Resultado de ejemplo:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}Implementa el proxy
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
Prueba la implementación
La implementación puede tardar unos minutos en completarse. Si recibes un error de implementación, vuelve a ejecutar el comando de implementación.
curl http://myorg-test.apigee.net/node-hosted-hello
Resultado de ejemplo:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"