Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Введение
В этом разделе объясняется, как добавить приложение Node.js к существующему прокси-серверу в вашей локальной файловой системе и как развернуть прокси-сервер в Apigee Edge.
Подготовка среды разработки
В этом разделе мы предполагаем, что в вашей локальной системе уже настроена среда разработки прокси-сервера и вы хотите интегрировать в нее приложение Node.js.
Базовая структура прокси-приложения, включающего приложение Node.js, соответствует шаблону, показанному на рисунке ниже, с базовой папкой /apiproxy и подпапками для ресурсов , целей и прокси . В папке apiproxy/resources/node необходимо разместить файлы Node.js. Другие папки содержат 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>
Элемент <HTPTTargetConnection> указывает URL-адрес внутренней службы, целевой целевой службы Apigee.
Однако в случае Node.js целью является само приложение Node.js. Это указывается с помощью <ScriptTarget> в файле apiproxy/targets/default.xml .
Вместо цели, использующей элемент <HTPTTargetConnection> для указания 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 реализовано в файле с именем 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_modules , ваше приложение Node.js не будет работать в 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. Мы предполагаем, что используется базовый путь по умолчанию (/) (базовый путь указан в файле конфигурации конечной точки прокси). Обязательно замените название организации на имя организации . Если у вас не установлен cURL, вы можете ввести URL-адрес в браузере.
$ curl http://org_name-test.apigee.net/
Hello, Node!
Просмотрите новый прокси в пользовательском интерфейсе управления.
Войдите в свою учетную запись Apigee Edge и перейдите на страницу прокси-серверов API. Там вы увидите прокси-сервер под названием «hellonode».
Нажмите «hellonode», чтобы просмотреть подробную информацию о прокси. В представлении «Разработка» вы можете просмотреть загруженный вами исходный код, добавить политики, изменить потоки и т. д.
Следующие шаги
Информацию об отладке приложений Node.js, работающих в Apigee Edge, см. в разделе Отладка и устранение неполадок прокси-серверов Node.js.