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

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

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

Изучите прокси

  1. В пользовательском интерфейсе Edge перейдите на вкладку «Разработка» .
  2. В Навигаторе выберите «По умолчанию» в разделе «Целевые конечные точки».
  3. Обратите внимание, что в редакторе кода под элементом <TargetEndpoint> находится пустой дочерний элемент <HostedTarget/> . Этот пустой тег является обязательным. Он сообщает Edge, что целью прокси является приложение, развернутое в среде размещенных целей.

  4. В Навигаторе обратите внимание на содержимое раздела «Сценарии» . Файлы приложения Node.js перечислены под меткой размещенного .

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

Просмотр файлов журналов

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

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

    См. также Доступ к файлам журналов .

Краткое содержание

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

Разверните Node.js из своей системы в Edge

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

Установить apigeetool

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

npm install -g apigeetool

Создайте приложение Node.js.

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

  1. Создайте каталог для приложения Node.js. Вызовите каталог node-hosted-express .
  2. перейдите в новый каталог.
  3. Создайте файл index.js и скопируйте в него этот код.
  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 и скопируйте в него этот код. Обратите внимание, что экспресс-модуль указан как зависимость.
  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 не требуется . Edge запускает установку npm при развертывании приложения Node.js. Он получает зависимости из package.json . Единственный раз, когда вам потребуется явно указать node_modules, — это если у вас есть пользовательские модули, недоступные через npm .

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

  1. В терминале перейдите в корневой каталог вашего приложения Node.js.
  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 с помощью инструмента Trace. Вот пример команды 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-прокси пользовательского интерфейса Edge.

Миграция существующего прокси-сервера Node.js на прокси-сервер Hosted Targets

В этом разделе объясняется, как вручную перенести существующий прокси-сервер Edge API, который использует традиционную целевую реализацию 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 требует, чтобы тег <ScriptTarget> присутствовал в целевом файле конечной точки (обычно /apiproxy/targets/default.xml ). Для размещенных целей вам необходимо добавить пустой тег с именем <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. перейдите в корневой каталог вашего прокси: /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 с помощью инструмента Trace. Вот пример команды cURL:

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