Учебные материалы по размещенным целевым показателям

Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X.
Информация

В следующих руководствах рассказывается, как развернуть приложения Node.js в Edge с помощью размещенных целевых сервисов – нативной среды выполнения Node.js, размещенной в Apigee.

В руководствах рассматриваются следующие задачи:

  • Развертывание приложения Node.js в размещенных целевых сервисах с помощью интерфейса Edge.
  • Развертывание приложения Node.js на размещенных целевых платформах с локального компьютера разработчика.
  • Перенос существующего прокси-сервера с традиционной реализацией целевого сервиса Edge Node.js в размещенные целевые сервисы.

Как развернуть приложение Node.js в размещенных целевых сервисах с помощью интерфейса Edge

В этом руководстве рассказывается, как развернуть простое приложение Node.js в размещенных целевых сервисах с помощью интерфейса Edge. После прохождения этого руководства вы будете понимать базовую структуру и содержимое прокси-сервера Hosted Targets, а также узнаете, как получить доступ к файлам журналов развертывания и сборки.

Войти

  1. Перейдите на сайт apigee.com/edge.
  2. Введите учетные данные Apigee.

Как создать новый прокси-сервер

  1. В меню навигации слева выберите Develop (Разработка) > API Proxies (Прокси API).
  2. Нажмите + Прокси.
  3. На странице Create Proxy (Создать прокси) выберите Hosted Target (Размещенная цель).
  4. Нажмите Далее.
  5. В поле "Имя прокси-сервера" введите hello-hosted-targets.
  6. Убедитесь, что выбран вариант Hello World Sample.
  7. Нажмите Далее.
  8. На странице "Безопасность" в разделе "Авторизация" выберите Пропустить (нет).
  9. Нажмите Далее.
  10. Нажмите Далее.
  11. На странице сборки убедитесь, что выбрана тестовая среда. Обратите внимание, что в поле "Тип прокси-сервера" указано значение Размещенные целевые объекты.
  12. Нажмите Создать и развернуть. Развертывание прокси-сервера может занять несколько минут.
  13. После успешного развертывания прокси-сервера нажмите Посмотреть прокси-сервер hello-hosted-targets в нижней части страницы.
  14. Вызовите прокси-сервер API. Самый простой способ сделать это – перейти на вкладку Трассировка, запустить сеанс трассировки и нажать Отправить. Вы должны получить статус 200 со следующим ответом:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Проверка прокси-сервера

  1. В интерфейсе Edge нажмите на вкладку Develop (Разработка).
  2. В навигаторе в разделе Target Endpoints (Целевые конечные точки) выберите default (по умолчанию).
  3. В редакторе кода вы увидите пустой дочерний элемент <HostedTarget/> под элементом <TargetEndpoint>. Этот пустой тег обязателен. Он сообщает Edge, что целевой объект прокси-сервера – это приложение, развернутое в среде Hosted Targets.

  4. В навигаторе посмотрите на содержимое раздела Скрипты. Файлы приложения Node.js будут указаны под ярлыком hosted.

  5. В интерфейсе Edge проверьте файлы, перечисленные в разделе hosted в Scripts:
    • Файл app.yaml содержит информацию о конфигурации. Например, вы можете добавить переменные среды, которые будут доступны приложению Node.js во время выполнения. В этом примере изменять файл не нужно.
    • Файл index.js – основной файл приложения Node.js.
    • Если у вашего приложения есть зависимости от модулей, они должны быть указаны в файле package.json.

Как посмотреть файлы журналов

Файлы журналов приложений могут быть полезны для отладки проблем, возникающих на этапе сборки и во время выполнения.

  1. В интерфейсе Edge нажмите на вкладку Develop (Разработка).
  2. Чтобы посмотреть журнал сборки, нажмите Журналы сборки.
  3. Чтобы посмотреть журнал развертывания, нажмите Журналы выполнения.

    Дополнительная информация приведена в разделе Как получить доступ к файлам журналов.

Сводка

  • Вы развернули простое приложение Node.js в среде Hosted Targets и протестировали его в интерфейсе Edge.
  • Вы узнали, что для прокси-сервера Hosted Targets требуется специальный пустой тег в конечной точке Target, который называется <HostedTarget/>.
  • Вы узнали, что Edge автоматически загружает зависимости модуля и что зависимости должны быть указаны в файле package.json.
  • Вы также узнали, как проверять файлы журналов сборки и выполнения.

Как развернуть Node.js из системы в Edge

В этом разделе рассказывается, как развернуть отдельное приложение Node.js из локальной системы в размещенных целевых сервисах с помощью apigeetool. Утилита apigeetool объединяет приложение Node.js в новый прокси-сервер Hosted Targets и развертывает его в Edge.

Как установить apigeetool

Разработчикам рекомендуется развертывать код прокси-сервера в Edge с помощью apigeetool. Чтобы установить apigeetool, выполните следующую команду NPM:

npm install -g apigeetool

Как создать приложение Node.js

Чтобы вам было проще, мы предоставили код для простого приложения Node.js.

  1. Создайте каталог для приложения Node.js. Назовите его node-hosted-express.
  2. cd в новый каталог.
  3. Создайте файл index.js и скопируйте в него этот код. недоступные через npm.
  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. Создайте файл package.json и скопируйте в него следующий код: Обратите внимание, что модуль express указан как зависимость.
  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. Создайте файл app.yaml и скопируйте в него следующий код:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
  9. Убедитесь, что структура каталогов выглядит следующим образом:
    ls
    app.yaml index.js package.json
    

Проверка структуры каталогов, необходимых для кода приложения.

Структура приложения Node.js должна быть такой же, как у стандартного приложения Node.js. Однако перед развертыванием с помощью apigeetool в Edge убедитесь, что вы выполнили следующие требования:

  • Файл манифеста app.yaml является обязательным и должен находиться в корневом каталоге приложения. Подробнее о файле манифеста…
  • Требуется файл package.json. В нем должны быть перечислены все зависимости, необходимые для работы приложения.
  • Папка node_modules не обязательна. При развертывании приложения Node.js Edge выполняет команду npm install. Он получает зависимости из файла package.json. Указывать node_modules нужно только в том случае, если у вас есть собственные модули, недоступные через npm.

Развертывание прокси-сервера

  1. В терминале перейдите в корневой каталог приложения Node.js, используя команду cd.
  2. Выполните команду apigeetool с командой deployhostedtarget:
  3. apigeetool deployhostedtarget -o org -e env -n proxy-name -b /node-hosted-express -u username

    где -n – название нового прокси-сервера. Он должен быть уникальным в пределах организации. В названии можно использовать только следующие символы: a-z0-9._\-$%

    Пример:

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

    Дополнительную информацию об использовании apigeetool можно найти на странице https://github.com/apigee/apigeetool-node.

Как проверить прокси-сервер

Проверить прокси-сервер можно с помощью команды cURL, клиента REST, например Postman, или в инструменте трассировки в интерфейсе Edge. Вот пример команды cURL.

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

Как получить журналы сборки

В журналах сборки содержатся выходные данные, связанные с развертыванием и сборкой приложения Node.js. Также ознакомьтесь с информацией о файлах журналов.

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

Пример:

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

Как получить журналы среды выполнения

Журналы времени выполнения содержат данные, связанные с запущенным приложением. Они относятся к определенной среде и возвращают журналы для текущей развернутой версии прокси. Также ознакомьтесь с информацией о файлах журналов.

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

Пример:

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

Как посмотреть прокси-сервер в интерфейсе Edge

После успешного развертывания вы можете просматривать и редактировать прокси в разделе API Proxies (Прокси API) интерфейса Edge.

Как перенести существующий прокси-сервер Node.js на прокси-сервер размещенных целей

В этом разделе рассказывается, как вручную перенести существующий прокси API Edge, в котором используется традиционная реализация целевого сервиса Node.js, на размещенные целевые сервисы. Также в нем рассказывается, как развернуть прокси-сервер после выполнения шагов по переносу.

В процессе переноса сохраняются структура прокси-сервера API, правила, потоки и другие элементы конфигурации. Вы можете выполнить перенос в четыре этапа, как описано ниже, а затем развернуть перенесенный прокси-сервер с помощью apigeetool.

Шаг 1. Измените структуру файла прокси

Чтобы изменить структуру файла, прокси-сервер API должен находиться в вашей локальной файловой системе. Если прокси-сервер развернут в Edge, вам нужно скачать его, прежде чем продолжить. В традиционной конфигурации пакет прокси-сервера Edge, включающий код Node.js, имеет следующую структуру файлов. Код приложения Node.js размещается в каталоге resources/node:

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


Для размещенных целевых объектов корневой каталог приложения Node.js должен находиться в каталоге resources/hosted. Просто создайте новый каталог resources/hosted и переместите в него содержимое каталога resources/node. После этого можно удалить каталог resources/node.

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

Шаг 2. Добавьте файл манифеста

Создайте файл манифеста с названием app.yaml и поместите его в каталог apiproxy/resources/hosted.

Ниже приведен пример файла app.yaml. Указывает, что среда выполнения – Node.js (обязательно). Также создается переменная среды в среде выполнения (переменная, к которой может получить доступ приложение Node.js). Переменная среды является необязательной и приведена здесь только в качестве примера. Подробнее о файле манифеста…

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


В примере ниже показана структура проекта Node.js, который находится в правильном месте в прокси-сервере для развертывания размещенных целевых сервисов:

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

Шаг 3. Убедитесь, что у вас есть файл package.json

В традиционных прокси-серверах Edge Node.js атрибут package.json был необязательным. Однако для размещенных целевых страниц необходимо указать один файл в каталоге apiproxy/resources/hosted. Обязательно укажите в этом файле все зависимости, необходимые для работы приложения.

Шаг 4. Измените целевую конечную точку прокси-сервера

Для традиционного прокси-сервера Node.js требуется, чтобы в файле целевой конечной точки (обычно /apiproxy/targets/default.xml) был тег <ScriptTarget>. Для размещенных целевых точек необходимо добавить пустой тег <HostedTarget/>. Если в файле есть тег ScriptTarget, его можно просто удалить. Пример:

    <?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>
    

Развертывание прокси-сервера

Теперь вы можете развернуть прокси-сервер с помощью команды apigeetool deployproxy.

  1. Используйте команду cd, чтобы перейти в корневой каталог прокси-сервера: /apiproxy.
  2. Используйте эту команду, чтобы развернуть прокси-сервер:
  3. apigeetool deployproxy -u username -o org -e env -n proxy-name -d .

    Пример:

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

Дополнительную информацию об использовании apigeetool можно найти на странице: https://github.com/apigee/apigeetool-node/blob/master/README.md.

Как проверить прокси-сервер

Проверить прокси-сервер можно с помощью команды cURL, клиента REST, например Postman, или в инструменте трассировки в интерфейсе Edge. Пример команды cURL:

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