Вы просматриваете документацию 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, а также способы доступа к файлам журналов развертывания и создания.
Войти
- Перейдите по адресу: apigee.com/edge.
- Введите свои учетные данные для входа в Apigee, чтобы войти в систему.
Создать новый прокси
- В боковом меню навигации выберите «Разработка» > «Прокси API» .
- Нажмите + Прокси .
- На странице «Создать прокси» выберите Hosted Target .
- Нажмите Далее .
- В поле «Имя прокси» введите
hello-hosted-targets. - Убедитесь, что выбран образец «Hello World» .
- Нажмите Далее .
- На странице «Безопасность» выберите «Пропустить (нет)» для параметра «Авторизация».
- Нажмите Далее .
- Нажмите Далее .
- На странице «Сборка» убедитесь, что выбрана тестовая среда. Обратите внимание, что тип прокси — Hosted Targets .
- Нажмите «Создать и развернуть» . Для завершения развертывания прокси-сервера может потребоваться несколько минут.
- После успешного развертывания прокси-сервера нажмите «Просмотреть прокси-сервер hello-hosted-targets» внизу страницы.
- Вызовите прокси-сервер API. Самый простой способ сделать это — перейти на вкладку «Трассировка» , запустить сеанс трассировки и нажать « Отправить» . Вы должны получить статус 200 со следующим ответом:
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
Изучите прокси
- В пользовательском интерфейсе Edge перейдите на вкладку «Разработка» .
- В Навигаторе выберите «По умолчанию» в разделе «Целевые конечные точки».
- Обратите внимание, что в редакторе кода под элементом
<TargetEndpoint>находится пустой дочерний элемент<HostedTarget/>. Этот пустой тег является обязательным. Он сообщает Edge, что целью прокси является приложение, развернутое в среде размещенных целей.
- В Навигаторе обратите внимание на содержимое раздела «Сценарии» . Файлы приложения Node.js перечислены под меткой размещенного .

- В пользовательском интерфейсе Edge проверьте файлы, перечисленные в разделе «Размещено в сценариях» :
- Файл app.yaml содержит информацию о конфигурации. Например, вы можете добавить переменные среды, которые будут доступны приложению Node.js во время выполнения. Для этого примера вам не нужно изменять этот файл.
- Файл index.js является основным файлом приложения Node.js.
- Если у вашего приложения есть какие-либо зависимости модулей, они должны быть указаны в package.json .
Просмотр файлов журналов
Файлы журналов приложений могут быть полезны для отладки проблем, возникающих на этапе сборки, а также во время выполнения.
- В пользовательском интерфейсе Edge перейдите на вкладку «Разработка» .
- Чтобы просмотреть журнал сборки, нажмите «Журналы сборки» .
- Чтобы просмотреть журнал развертывания, нажмите «Журналы выполнения» .
См. также Доступ к файлам журналов .
Краткое содержание
- Вы развернули простое приложение 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.
- Создайте каталог для приложения Node.js. Вызовите каталог node-hosted-express .
- перейдите в новый каталог.
- Создайте файл index.js и скопируйте в него этот код.
- Создайте файл package.json и скопируйте в него этот код. Обратите внимание, что экспресс-модуль указан как зависимость.
- Создайте файл с именем app.yaml и скопируйте в него этот код:
- Убедитесь, что ваш каталог выглядит следующим образом:
ls app.yaml index.js package.json
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) })
{
"name": "hello-world",
"version": "1.0.0",
"main": "index.js",
"scripts": {
"start": "node index.js --use_strict"
},
"author": "",
"license": "",
"dependencies": {
"express": "^4.16.0"
}
}runtime: node runtimeVersion: 8 application: my-express-app env: - name: NODE_ENV value: production - name: LOG_LEVEL value: 3
Проверка необходимой структуры каталогов для кода приложения.
Ваше приложение Node.js должно иметь ту же структуру, что и стандартное приложение Node.js. Однако перед развертыванием с помощью apigeetool в Edge убедитесь, что вы выполнили следующие требования:
- Файл манифеста app.yaml является обязательным и должен находиться в корневом каталоге вашего приложения. Чтобы узнать больше об этом файле, см. файл манифеста .
- Требуется файл package.json . В нем должны быть перечислены все зависимости, которые требуются вашему приложению.
- Папка node_modules не требуется . Edge запускает установку npm при развертывании приложения Node.js. Он получает зависимости из package.json . Единственный раз, когда вам потребуется явно указать node_modules, — это если у вас есть пользовательские модули, недоступные через npm .
Развертывание прокси
- В терминале перейдите в корневой каталог вашего приложения Node.js.
- Запустите apigeetool с помощью команды Deployhostedtarget :
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 .
- перейдите в корневой каталог вашего прокси: /apiproxy
- Используйте эту команду для развертывания прокси:
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!