Estás viendo la documentación de Apigee Edge.
Ve a la
documentación de Apigee X. info
En este tema, se explica cómo implementar una aplicación de Node.js desde tu sistema local en Apigee Edge.
En este tema, analizaremos cómo usar una herramienta de línea de comandos llamada apigeetool
para implementar aplicaciones de Node.js en Apigee Edge.
Información acerca de la implementación de código de Node.js en Apigee Edge
Puedes implementar una aplicación de API de Node.js existente, incluidos los módulos de Node.js dependientes, desde tu sistema local en Apigee Edge con una utilidad de línea de comandos llamada apigeetool
. La utilidad agrupa automáticamente la aplicación y sus dependencias en un proxy de API y la implementa en Edge.
Por ejemplo, supongamos que usaste Express para crear una aplicación web en Node.js. La aplicación se ejecuta como un servidor HTTP que escucha las solicitudes HTTP, las procesa, muestra datos, etcétera. Cuando usas apigeetool
para implementar una aplicación de Node.js
en Edge, se une en un proxy y se ejecuta dentro del contexto de la plataforma de
Edge. Luego, puedes llamar a tu aplicación a través de su nueva URL de proxy y agregarle valor con funciones estándar de Edge, como seguridad de OAuth, políticas de cuotas, políticas de protección contra amenazas, flujos condicionales, almacenamiento en caché y muchas otras.
¿Qué hace Apigeetool?
Cuando ejecutas la utilidad apigeetool
con la opción deploynodeapp
, hace lo siguiente:
- Genera un paquete de configuración de proxy de API para alojar la aplicación de Node.js.
- Empaqueta la aplicación de Node.js con cualquier paquete de Node.js instalado con NPM (módulos empaquetados de Node).
- Importa el paquete de configuración de proxy de API a la organización especificada en Apigee Edge con la API de administración de Edge.
- Implementa el proxy de API en un entorno.
- Ejecuta la aplicación de Node.js en Apigee Edge y la pone a disposición de la red.
Preparación para usar apigeetool
Antes de comenzar, debes instalar la utilidad apigeetool
.
Puedes instalar Apigeetool a través de npm o clonando y vinculando el código desde GitHub.
Instalación desde npm
El módulo apigeetool
y sus dependencias están diseñados para Node.js y están disponibles a través de npm con el siguiente comando:
$ sudo npm install -g apigeetool
Por lo general, la opción -g coloca módulos en /usr/local/lib/node_modules/apigeetool
en máquinas basadas en *nix.
Instalación desde GitHub
Descarga o clona las herramientas de la plataforma de API desde GitHub. Consulta el archivo README en el directorio raíz del repositorio para obtener instrucciones de instalación.
$ git clone https://github.com/apigee/apigeetool-node.git
Cuando completes la instalación, asegúrate de que el ejecutable apigeetool
esté en tu ruta de acceso. Para probarlo, escribe lo siguiente:
$ apigeetool -h
Implementa una aplicación de Node.js en Edge con apigeetool
Nota: Antes de la implementación, debes saber el nombre de tu organización de Apigee Edge, el nombre de usuario y la contraseña de tu cuenta de Apigee Edge. Necesitas esta información para formar el comando apigeetool
de forma correcta.
Para implementar una aplicación de Node.js con apigeetool
, sigue estos pasos:
- En una ventana de la terminal,
cd
el directorio raíz de tu aplicación de Node.js. - Ejecuta la utilidad
apigeetool
con el comandodeploynodeapp
:
$ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
Por ejemplo:
$ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
- Verifica el resultado en la ventana de la terminal. Se verá de la siguiente manera:
Importing new application myNodeApp Imported new app revision 1 Deploying revision 1 Deployed. Proxy: "myNodeApp" Revision 1 Environment: test BasePath: /myNodeApp Status: deployed
Si ves "Estado: implementado", ya está todo listo. Todo salió bien. Tu app de Node.js se une a un proxy de API, se implementa en Edge y se ejecuta y espera para controlar las solicitudes. Está listo para probarlo.
- Prueba tu proxy. Por ejemplo:
$ curl http://myorg-test.apigee.net/myNodeApp Hello, My Node App!
- Si lo deseas, accede a tu cuenta de Apigee Edge y ve a la página Proxies de API de la IU de administración. Verás tu proxy nuevo en la lista.
Cómo apigeetool controla los archivos y los módulos dependientes
Si tu aplicación de Node.js depende de módulos instalados, apigeetool los controla comprimiendo la carpeta node_modules
y agregándola al paquete de proxy. No es necesario que realices ninguna otra acción. Lo mismo ocurre con los directorios que contienen código fuente adicional. La utilidad apigeetool las comprime y las implementa con el paquete.
No puedes editar archivos en estos directorios comprimidos en el editor de la IU de administración de Edge. Si necesitas cambiarlos, puedes exportar tu proyecto, editar los archivos de forma local y, luego, volver a implementarlos con apigeetool o importar el proyecto exportado con la IU de administración. Consulta también "Cómo exportar e importar un proxy con código de Node.js".
Información básica de uso de apigeetool
Para obtener información básica de uso sobre los parámetros de entrada de la utilidad apigeetool
, ingresa lo siguiente:
$ apigeetool deploynodeapp -h Usage: deploynodeapp -n [name] -o [organization] -e [environment] -d [directory name] -m [main script file] -u [username] -p [password] -b [base path] -l [apigee API url] -z [zip file] -i -h -o Apigee organization name -e Apigee environment name -n Apigee proxy name -d Apigee proxy directory -m Main script name: Should be at the top level of the directory -u Apigee user name -p Apigee password -b Base path (optional, defaults to /) -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com) -z ZIP file to save (optional for debugging) -i import only, do not deploy -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. -U Uploads Node.js modules to Apigee Edge. -h Print this message
Cómo crear un proxy nuevo con archivos de Node.js existentes
Otra forma de integrar una aplicación de Node.js existente en un proxy de API es agregarla cuando creas el proxy. Puedes hacerlo por completo a través de la IU de administración y el diálogo New API Proxy.
- En la página de resumen del proxy de API, haz clic en +Proxy de API.
- En el diálogo Nuevo proxy de API, selecciona Node.js existente.
- Usa el botón Elegir archivos para seleccionar uno o más archivos de Node.js que desees importar.
- Asigna un nombre al proxy. En este ejemplo, lo llamamos
hellonode
. - Agrega la versión
/v1
a la ruta base del proyecto. Una práctica recomendada es crear versiones de tu API. - Haz clic en Build.
- Haz clic en Develop para ingresar a la vista Develop.
- Abre el archivo
TargetEndpoint
en el editor de código. - Asegúrate de que el elemento
<ScriptTarget>
especifique el archivo principal de Node.js, como se indica a continuación:
<ScriptTarget> <ResourceURL>node://server.js</ResourceURL> <Properties/> </ScriptTarget>
- Haz clic en Guardar.
Cómo agregar e invocar nuevos archivos de recursos de Node.js
Otra forma de agregar código de Node.js a un proxy es agregarlo directamente, ya sea a través de la IU o subiéndolo desde tu sistema de archivos local. También puedes especificar qué archivo de Node.js es el archivo principal, que es el que Edge invoca cuando se implementa el proxy.
Cómo agregar archivos Node.js nuevos a través de la IU
La IU de administración te permite agregar archivos fuente de Node.js adicionales a un proxy que se encuentra en la plataforma de Edge. Puedes crearlos directamente en la IU o importarlos desde tu sistema de archivos. Primero, veamos cómo hacerlo desde la IU.
Para crear un nuevo archivo de recursos de Node.js, sigue estos pasos:
- En la vista Develop, selecciona New Script en el menú New.
- En el cuadro de diálogo Agregar secuencia de comandos, selecciona el tipo de archivo Node y asígnale un nombre.
- Haz clic en Agregar.
El nuevo archivo Node.js en blanco se abrirá en el editor. Puedes cortar y pegar el código en el
archivo. El archivo también aparece en la sección Secuencias de comandos del navegador.
[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":"alt":"","class":"media-image","height":"312","typeof":"foaf:Image","width":"417"}}]]
Importa archivos Node.js desde tu sistema de archivos
Para import un archivo Node.js desde tu sistema de archivos al proxy, haz lo siguiente:
- En la vista Develop, selecciona New Script en el menú New.
- En el diálogo Add Script, haz clic en Import Script.
- Usa la herramienta de archivos para seleccionar tu archivo Node.js.
- El nombre del archivo se agrega al diálogo, pero puedes cambiarlo si lo deseas.
- Haz clic en Agregar. El archivo aparecerá en la sección Scripts del navegador y se abrirá en el editor.
- Haz clic en Guardar.
Si quieres invocar el archivo importado, se requiere un paso adicional, como se explica en la siguiente sección.
Cómo invocar un archivo de Node.js importado
No puedes invocar un archivo Node.js recién importado o creado. El motivo es que Edge requiere que un archivo Node.js sea el archivo principal. El archivo principal se especifica en el elemento <ScriptTarget> de la definición del extremo de destino. Para especificar cuál es el archivo principal de Node.js, haz lo siguiente:
- En Extremos de destino del navegador, haz clic en el nombre del extremo de destino (por lo general, se llama predeterminado).
- En el editor de código, edita el elemento <ScriptTarget> cambiando el <ResourceURL> para que refleje el nombre del archivo que deseas que sea el archivo principal de Node.js. Por ejemplo, si quieres que un archivo llamado
hello-world.js
sea el archivo principal, debes ingresarnode://hello-world.js
en el elemento ResourceURL. - Haz clic en Guardar.
En este punto, puedes invocar el archivo con cualquier ruta de proxy que hayas usado antes. Por ejemplo, revisamos el ejemplo de Hello World, en el que se especifica la ruta base v1/hello
. Sin embargo, puedes cambiar la ruta de acceso base editando el extremo de proxy.
- En Extremos del proxy en el navegador, haz clic en el nombre del extremo del proxy (normalmente llamado predeterminado).
- En el editor de código, edita el elemento <HttpProxyConnection> cambiando el <BasePath> al nombre que desees. Por ejemplo, si el elemento <BasePath> actual es
v1/hello
y quieres que seav1/my-node-file
, cambia el elemento <BasePath> de la siguiente manera:
<BasePath>/v1/my-node-file</BasePath>
- Haz clic en Guardar.
- Invoca el proxy con la nueva ruta base, como se muestra a continuación:
$ curl http://myorg-test.apigee.net/v1/my-node-file Hello, World!
Cómo exportar e importar un proxy con código de Node.js
Después de implementar un proxy que contiene código de Node.js en Edge, siempre puedes volver a exportarlo a tu sistema, trabajar en él y, luego, volver a importarlo a Edge con la IU de administración. Este tipo de técnica de desarrollo de ida y vuelta es de uso general.
- En la página de resumen del proxy de API, haz clic en Develop.
- En la página Develop, selecciona Download Current Revision.
- Descomprime el archivo descargado en tu sistema.
Para volver a importar el paquete de proxy a Edge, selecciona Import Into New Revision en el mismo menú.
También puedes usar la API para implementar proxies. Consulta Cómo implementar proxies desde la línea de comandos para obtener más información.
Próximos pasos
En el siguiente tema, Agrega Node.js a un proxy de API existente, explicamos cómo agregar una app de Node.js a un proxy existente en tu sistema de archivos y, luego, implementarla en Edge.