Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Введение
В этой статье рассказывается, как добавить приложение Node.js в существующий прокси-сервер в локальной файловой системе и развернуть прокси-сервер в Apigee Edge.
Подготовка среды разработки
В этой статье предполагается, что на вашем компьютере уже настроена среда разработки прокси и вы хотите интегрировать в нее приложение Node.js.
Основная структура прокси-приложения, включающего приложение Node.js, соответствует шаблону, показанному на рисунке ниже, с базовой папкой /apiproxy и вложенными папками для ресурсов, целей и прокси. Файлы Node.js должны находиться в папке apiproxy/resources/node. В других папках содержатся XML-файлы, в которых определены прокси-серверы и целевые конечные точки, поток прокси-сервера, условные потоки и т. д. Более подробное описание структуры прокси-сервера API приведено в справочнике по конфигурации прокси-сервера API.

Помните, что любой код Node.js, который является частью прокси, должен быть размещен в каталоге /apiproxy/resources/node. Именно там Edge будет искать его при развертывании.
Укажите целевую версию Node.js с помощью ScriptTarget
Чтобы интегрировать Node.js в прокси, нужно указать элемент <ScriptTarget> в XML-файле целевой конечной точки. В структуре прокси-файла этот XML-файл находится в папке apiproxy/targets. По умолчанию файл называется default.xml.
Для контекста следует учитывать, что целевая конечная точка обычно указывает на какой-либо внутренний сервис. В этом случае мы обращаемся к целевой службе Apigee. Определение целевой конечной точки выглядит следующим образом:
<TargetEndpoint name="default"> <Description/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/</URL> </HTTPTargetConnection> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> </TargetEndpoint>
Элемент <HTTPTargetConnection> указывает URL бэкенд-службы, целевого сервиса Apigee для имитации.
Однако в случае с Node.js целью является само приложение Node.js. Это можно указать с помощью элемента <ScriptTarget> в файле apiproxy/targets/default.xml.
Вместо того чтобы использовать элемент <HTTPTargetConnection> для указания URL бэкенд-службы, целевой сервис напрямую ссылается на приложение Node.js с помощью элемента <ScriptTarget>, как показано ниже.
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://server.js</ResourceURL> </ScriptTarget> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> </TargetEndpoint>
Параметр <ResourceURL> всегда должен начинаться с символов node://, за которыми следует название основного скрипта Node.js. Как уже отмечалось, ресурсы Node.js должны находиться в /apiproxy/resources/node в области действия прокси-сервера API.
В ScriptTarget можно задать дополнительные параметры. Подробнее о расширенной конфигурации ScriptTarget…
В этом примере используется следующий исходный код для основного файла Node.js, который называется server.js. Это базовый HTTP-сервер, который возвращает сообщение "Hello World!", когда получает запрос:
var http = require('http'); console.log('node.js application starting...'); var svr = http.createServer(function(req, resp) { resp.end('Hello, Node!'); }); svr.listen(process.env.PORT || 9000, function() { console.log('Node HTTP server is listening'); });
Таким образом, если основное приложение Node.js main реализовано в файле server.js, а конфигурации конечных точек называются default.xml, то прокси API, содержащий скрипт Node.js, имеет следующую структуру:
/apiproxy/proxyName.xml /apiproxy/proxies/default.xml /apiproxy/targets/default.xml /apiproxy/resources/node/server.js
Подготовка к развертыванию приложения
В большинстве приложений Node.js есть файлы зависимостей, а в базовом каталоге находится файл package.json. В этом случае рекомендуется использовать утилиту npm, чтобы убедиться, что каталог node_modules верхнего уровня заполнен зависимостями до развертывания. Если в приложении Node.js есть удаленные зависимости, не включенные в node_modules, оно не будет работать в Edge.
Вы можете легко получить все зависимости в файловой системе с помощью утилиты npm:
- В базовом каталоге приложения Node.js выполните следующую команду:
$ npm install
или
$ npm update
После установки зависимостей вы можете развернуть прокси-сервер в Edge.
Как развернуть приложение Node.js в Apigee Edge
Перед развертыванием вам нужно будет узнать название организации, имя пользователя и пароль для аккаунта Apigee Edge. Эта информация необходима, чтобы правильно сформировать команду инструмента развертывания.
Вот команда: Он предполагает (с флагом -d), что вы находитесь в корневом каталоге прокси. Если ваш прокси-сервер называется foo, введите следующую команду из каталога foo:
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
$ apigeetool deployproxy -h
Чтобы получить краткую сводку:
- -n Этот флаг позволяет указать имя прокси-сервера, который будет создан при развертывании приложения. Это название будет показываться в интерфейсе управления.
- -d Указывает корневой каталог прокси-сервера API.
- -o, -e, -u и -p позволяют указать название организации, среду развертывания, имя пользователя и пароль.
Протестируйте новый прокси-сервер API
Вы только что добавили приложение Node.js в существующий прокси-сервер API и развернули прокси-сервер в Apigee Edge! Чтобы проверить его, выполните следующую команду cURL: Мы предполагаем, что используется базовый путь по умолчанию (/). Базовый путь указывается в файле конфигурации конечной точки прокси-сервера. Вместо org_name укажите название своей организации. Если у вас не установлен cURL, введите URL в браузере.
$ curl http://org_name-test.apigee.net/
Hello, Node!
Как посмотреть новый прокси-сервер в интерфейсе управления
Войдите в аккаунт Apigee Edge и перейдите на страницу прокси API. Там будет указан прокси-сервер hellonode.

Нажмите на "hellonode", чтобы посмотреть подробную информацию о прокси-сервере. В режиме разработки можно посмотреть загруженный исходный код, добавить правила, изменить потоки и т. д.

Дальнейшие действия
Информацию об отладке приложений Node.js, работающих в Apigee Edge, можно найти в статье Отладка и устранение неполадок прокси-серверов Node.js.