Instructivos de Hosted Targets

Estás viendo la documentación de Apigee Edge.
Ve a la documentación de Apigee X.
info

En los siguientes instructivos, se explica cómo implementar aplicaciones de Node.js en Edge con objetivos alojados, un entorno de ejecución nativo de Node.js alojado por Apigee.

En los instructivos, se explican las siguientes tareas:

Implementa una app de Node.js en destinos alojados con la IU de Edge

En este instructivo, implementarás una app de Node.js simple en destinos alojados con la IU de Edge. Cuando completes el instructivo, comprenderás la estructura básica y el contenido de un proxy de destinos alojados, y cómo acceder a los archivos de registro de implementación y compilación.

Acceder

  1. Ve a apigee.com/edge.
  2. Ingresa tus credenciales de acceso de Apigee para acceder.

Crea un proxy nuevo

  1. En el menú de navegación lateral, selecciona Develop > API Proxies.
  2. Haz clic en + Proxy.
  3. En la página Crear proxy, selecciona Destino alojado.
  4. Haz clic en Siguiente.
  5. En el campo Nombre de proxy, ingresa hello-hosted-targets.
  6. Asegúrate de que esté seleccionada la opción Ejemplo de “Hello World”.
  7. Haz clic en Siguiente.
  8. En la página Security, selecciona Pass through (none) para la autorización.
  9. Haz clic en Siguiente.
  10. Haz clic en Siguiente.
  11. En la página Compilación, asegúrate de que el entorno de prueba esté seleccionado. Ten en cuenta que el tipo de proxy es Hosted Targets (Destinos alojados).
  12. Haz clic en Build and Deploy. La implementación del proxy puede tardar unos minutos en completarse.
  13. Una vez que el proxy se haya implementado correctamente, haz clic en Ver el proxy hello-authenticated-targets en la parte inferior de la página.
  14. Llama al proxy de API. La forma más fácil de hacerlo es ir a la pestaña Trace, iniciar una sesión de seguimiento y hacer clic en Send. Deberías recibir un estado 200 con la siguiente respuesta:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Examina el proxy

  1. En la IU de Edge, haz clic en la pestaña Develop.
  2. En Navigator, selecciona default en Extremos de destino.
  3. En el editor de código, observa que hay un elemento secundario <HostedTarget/> vacío debajo del elemento <TargetEndpoint>. Esta etiqueta vacía es obligatoria. Le indica a Edge que el destino del proxy es una aplicación que se implementa en el entorno de destinos alojados.

  4. En el navegador, observa el contenido en la sección Scripts. Los archivos de la app de Node.js se muestran en la etiqueta alojado.

  5. En la IU de Edge, examina los archivos que aparecen como alojados en Secuencias de comandos:
    • El archivo app.yaml contiene información de configuración. Por ejemplo, puedes agregar variables de entorno que estarán disponibles para la aplicación de Node.js en el entorno de ejecución. No es necesario que modifiques este archivo para este ejemplo.
    • El archivo index.js es el archivo principal de la app de Node.js.
    • Si tu app tiene dependencias de módulos, estas deben aparecer en package.json.

Ver archivos de registro

Los archivos de registro de la aplicación pueden ser útiles para depurar problemas que ocurren durante la fase de compilación y también durante el tiempo de ejecución.

  1. En la IU de Edge, haz clic en la pestaña Develop.
  2. Para ver el registro de compilación, haz clic en Registros de compilación.
  3. Para ver el registro de implementación, haz clic en Registros del entorno de ejecución.

    Consulta también Accede a los archivos de registro.

Resumen

  • Implementaste una aplicación simple de Node.js en el entorno de destinos alojados y la probaste en la IU de Edge.
  • Aprendiste que un proxy de destinos alojados requiere una etiqueta vacía especial en el extremo de destino llamada <HostedTarget/>.
  • Aprendiste que Edge carga las dependencias del módulo automáticamente y que las dependencias deben aparecer en el archivo package.json.
  • También aprendiste a verificar los archivos de registro de compilación y del entorno de ejecución.

Implementa Node.js de tu sistema en Edge

En esta sección, se explica cómo implementar una aplicación independiente de Node.js desde tu sistema local en objetivos alojados con apigeetool. La utilidad apigeetool empaqueta la app de Node.js en un nuevo proxy de destinos alojados y la implementa en Edge.

Instala apigeetool

El uso de apigeetool es la forma recomendada para que los desarrolladores implementen código de proxy en Edge. Para instalar apigeetool, ejecuta el siguiente comando de NPM:

npm install -g apigeetool

Crea la app de Node.js

Para facilitar las cosas, se te proporciona el código de una app simple de Node.js.

  1. Crea un directorio para la app de Node.js. Llámalo node-hosted-express.
  2. cd al directorio nuevo.
  3. Crea un archivo llamado index.js y copia este código en él.
  4. var express = require('express')
    var app = express()
    
    app.get('/', function(req, res) {
        res.json({
            hello: "Hello World!"
        })
    })
    
    app.get('/hello/:name', function(req, res) {
        var name = req.params.name
        res.json({
            hello: "hello " + name
        })
    })
    
    var server = app.listen(process.env.PORT || 9000, function() {
        console.log('Listening on port %d', server.address().port)
    })
    
  5. Crea un archivo llamado package.json y copia el código en él. Ten en cuenta que el módulo express aparece como una dependencia.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
    
  7. Crea un archivo llamado app.yaml y copia este código en él:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
    
  9. Asegúrate de que tu directorio se vea de la siguiente manera:
    ls
    app.yaml index.js package.json
    

Revisión de la estructura de directorios obligatoria para el código de la app

Tu app de Node.js debe tener la misma estructura que una app estándar. Sin embargo, asegúrate de cumplir con los siguientes requisitos antes de implementar apigeetool en Edge:

  • El archivo de manifiesto app.yaml es obligatorio y debe estar en el directorio raíz de la app. Para obtener más información sobre este archivo, consulta el archivo de manifiesto.
  • Se requiere un archivo package.json. Debe enumerar todas las dependencias que requiera tu app.
  • No se requiere una carpeta node_modules. Edge ejecuta npm install por ti cuando se implementa la app de Node.js. Obtiene las dependencias de package.json. La única vez que deberás proporcionar node_modules de forma explícita es si tienes módulos personalizados que no están disponibles a través de npm.

Implementa el proxy

  1. En una terminal, usa cd para ir al directorio raíz de la aplicación de Node.js.
  2. Ejecuta apigeetool con el comando deployhostedtarget:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    en el que -n es el nombre que deseas asignar al proxy nuevo. Debe ser único dentro de la organización. Los caracteres que puedes usar en el nombre se limitan a los siguientes: a-z0-9._\-$%

    Por ejemplo:

    apigeetool deployhostedtarget -o myorg -e test -n node-hosted-express -b /node-hosted-express -u jdoe@apigee.com

    Para obtener más información sobre el uso de apigeetool, consulta https://github.com/apigee/apigeetool-node.

Prueba el proxy

Puedes probar el proxy con un comando cURL, con un cliente REST como Postman o en la IU de Edge, en la herramienta de seguimiento. Este es un ejemplo de comando cURL.

curl http://myorg-test.apigee.net/node-hosted-express
     {"date":1506992197427,"msg":"hello-world"}

Cómo obtener los registros de compilación

Los registros de compilación muestran resultados relacionados con la implementación y compilación de la app de Node.js. Consulta también Archivos de registro.

apigeetool getlogs -u username -o org -e env --hosted-build -n proxy-name

Por ejemplo:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-build -n node-hosted-express

Cómo obtener los registros del entorno de ejecución

Los registros del entorno de ejecución muestran resultados relacionados con la app en ejecución. Los registros del entorno de ejecución se asignan al entorno y muestran registros de la revisión del proxy implementada actualmente. Consulta también Archivos de registro.

apigeetool getlogs -u username -o org -e env --hosted-runtime -n proxy-name

Por ejemplo:

apigeetool getlogs -u jdoe@apigee.com -o myorg -e test --hosted-runtime -n node-hosted-express

Visualiza el proxy en la IU de Edge

Después de una implementación exitosa, puedes ver y editar tu proxy en la parte Proxies de API de la IU de Edge.

Migra un proxy de Node.js existente a un proxy de destinos alojados

En esta sección, se explica cómo migrar de forma manual un proxy de la API de Edge existente que emplea la implementación de destino tradicional de Node.js a destinos alojados. También se explica cómo implementar el proxy después de realizar los pasos de migración.

Los pasos de migración conservan la estructura del proxy de API, las políticas, los flujos y otros elementos de configuración. Puedes realizar la migración en cuatro pasos, como se describe a continuación, y, luego, implementar el proxy migrado con apigeetool.

Paso 1: Ajusta la estructura del archivo del proxy

Para ajustar la estructura de archivos, el proxy de API debe estar en tu sistema de archivos local. Si el proxy se implementa en Edge, debes descargarlo antes de continuar. En la configuración tradicional, el "paquete" del proxy de Edge que incluye el código de Node.js sigue esta estructura de archivos. El código de la aplicación de Node.js se coloca en el directorio resources/node:

apiproxy/
    policies/
    proxies/
    targets/
    resources/
      node/
        Your application code


En el caso de los destinos alojados, debes colocar el directorio raíz de tu app de Node.js en un directorio llamado resources/hosted. Simplemente crea un directorio nuevo llamado resources/hosted y mueve el contenido de resources/node a él. Luego, puedes borrar el directorio resources/node.

apiproxy/
     policies/
     proxies/
     targets/
     resources/
       hosted/
         Your application code

Paso 2: Agrega el archivo de manifiesto

Crea un archivo de manifiesto llamado app.yaml y colócalo en el directorio apiproxy/resources/hosted.

A continuación, se incluye un archivo app.yaml de ejemplo. Especifica que el entorno de ejecución es Node.js (obligatorio). También crea una variable de entorno en el entorno de ejecución (una variable a la que puede acceder la app de Node.js). La variable de entorno es opcional y solo se muestra aquí a modo de ejemplo. Para obtener más detalles y ejemplos, consulta El archivo de manifiesto.

runtime: node
  env:
    - name: NODE_ENV
      value: production


En el siguiente ejemplo, se muestra una estructura de proyecto de Node.js que se encuentra en la ubicación correcta en el proxy para la implementación de destinos alojados:

apiproxy/
   resources/
      hosted/
        index.js
        node_modules/
        app.yaml
        package.json

Paso 3: Asegúrate de tener un archivo package.json

En los proxies tradicionales de Node.js de Edge, package.json era opcional. Sin embargo, para los destinos alojados, debes proporcionar uno en el directorio apiproxy/resources/hosted. Asegúrate de especificar las dependencias necesarias para tu app en este archivo.

Paso 4: Modifica el extremo de destino del proxy

Un proxy de Node.js tradicional requiere que haya una etiqueta llamada <ScriptTarget> en el archivo del extremo de destino (por lo general, /apiproxy/targets/default.xml). Para los destinos alojados, debes agregar una etiqueta vacía llamada &lt;HostedTarget/&gt;. Si hay una etiqueta ScriptTarget en el archivo, puedes simplemente quitarla. Por ejemplo:

    <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <Description />
       <FaultRules />
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>
    

Implementa el proxy

Ahora puedes implementar el proxy con el comando apigeetool deployproxy.

  1. cd al directorio raíz de tu proxy: /apiproxy
  2. Usa este comando para implementar el proxy:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    Por ejemplo:

    apigeetool deployproxy -u jdoe -o docs -e test -n hello-world -d .

Para obtener más información sobre el uso de apigeetool, consulta: https://github.com/apigee/apigeetool-node/blob/master/README.md.

Prueba el proxy

Puedes probar el proxy con un comando cURL, con un cliente REST como Postman o en la IU de Edge en la herramienta Trace. Este es un ejemplo de comando cURL:

curl http://myorg-test.apigee.net/hello-world
Hello,World!