Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee X.info
В следующих руководствах объясняется, как развернуть приложения Node.js в Edge с помощью Hosted Targets — собственной среды выполнения Node.js, предоставляемой Apigee.
В обучающих материалах рассматриваются следующие задачи:
- Развертывание приложения Node.js на целевых серверах с использованием пользовательского интерфейса Edge.
- Развертывание приложения Node.js на размещенных целевых серверах с вашей локальной машины разработки.
- Перенос существующего прокси-сервера с традиционной реализацией целевого сервера Edge Node.js на хостинговые целевые серверы.
Разверните приложение Node.js на целевых серверах с помощью пользовательского интерфейса Edge.
В этом руководстве вы развернете простое приложение Node.js на целевых серверах Hosted Targets, используя пользовательский интерфейс Edge. После завершения руководства вы поймете базовую структуру и содержимое прокси-сервера Hosted Targets, а также как получить доступ к файлам журналов развертывания и сборки.
Войти
- Перейдите по ссылке: apigee.com/edge
- Введите свои учетные данные для входа в Apigee.
Создать новый прокси
- В боковом навигационном меню выберите «Разработка» > «API-прокси» .
- Click + Proxy .
- На странице «Создать прокси» выберите «Объект размещения» .
- Нажмите «Далее» .
- В поле «Имя прокси» введите
hello-hosted-targets. - Убедитесь, что выбран пример "Hello World" .
- Нажмите «Далее» .
- На странице «Безопасность» выберите «Сквозная авторизация (нет)» для параметра «Авторизация».
- Нажмите «Далее» .
- Нажмите «Далее» .
- На странице «Сборка» убедитесь, что выбрана тестовая среда. Обратите внимание, что тип прокси — «Размещенные целевые объекты» .
- Нажмите «Создать и развернуть» . Развертывание прокси-сервера может занять несколько минут.
- После успешного развертывания прокси-сервера нажмите кнопку «Просмотреть прокси-сервер hello-hosted-targets» внизу страницы.
- Вызовите API-прокси. Проще всего это сделать, перейдя на вкладку «Трассировка» , запустив сеанс трассировки и нажав «Отправить» . Вы должны получить статус 200 со следующим ответом:
{"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}
Изучите прокси-сервер
- В пользовательском интерфейсе Edge перейдите на вкладку «Разработка» .
- В навигаторе в разделе «Целевые конечные точки» выберите «По умолчанию» .
- В редакторе кода обратите внимание на пустой дочерний элемент
<HostedTarget/>под элементом<TargetEndpoint>. Этот пустой тег является обязательным. Он сообщает Edge, что целью прокси-сервера является приложение, развернутое в среде Hosted Targets.
- В навигаторе обратите внимание на содержимое раздела «Скрипты» . Файлы приложения 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 в новый прокси-сервер целевых серверов и развертывает его в Edge.
Установите apigeetool
Использование apigeetool — рекомендуемый способ развертывания прокси-кода в Edge для разработчиков. Для установки apigeetool выполните следующую команду NPM:
npm install -g apigeetool
Создайте приложение Node.js
Для вашего удобства мы предоставили код простого приложения Node.js.
- Создайте директорию для приложения Node.js. Назовите директорию node-hosted-express .
- Перейдите в новую директорию с помощью команды cd .
- Создайте файл с именем index.js и скопируйте в него следующий код.
- Создайте файл с именем package.json и скопируйте в него следующий код. Обратите внимание, что модуль express указан в качестве зависимости.
- Создайте файл с именем 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 install при развертывании приложения Node.js. Он получает зависимости из файла package.json . Явно указывать папку node_modules нужно только в том случае, если у вас есть пользовательские модули, недоступные через npm .
Развертывание прокси-сервера
- В терминале перейдите в корневой каталог вашего Node.js-приложения с помощью команды `cd` .
- Выполните команду `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 в инструменте трассировки. Вот пример команды 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, которая находится в правильном месте в прокси-сервере для развертывания Hosted Targets:
apiproxy/
resources/
hosted/
index.js
node_modules/
app.yaml
package.jsonШаг 3: Убедитесь, что у вас есть файл package.json.
В традиционных прокси-серверах Edge Node.js файл package.json был необязательным. Однако для Hosted Targets его необходимо указать в каталоге apiproxy/resources/hosted . Обязательно укажите все необходимые зависимости для вашего приложения в этом файле.
Шаг 4: Измените целевую конечную точку прокси-сервера.
Для традиционного прокси Node.js требуется наличие тега <ScriptTarget> в файле целевой конечной точки (обычно /apiproxy/targets/default.xml ). Для Hosted Targets необходимо добавить пустой тег <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 в инструменте трассировки. Вот пример команды cURL:
curl http://myorg-test.apigee.net/hello-world Hello,World!