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

- В интерфейсе Edge проверьте файлы, перечисленные в разделе hosted в Scripts:
- Файл app.yaml содержит информацию о конфигурации. Например, вы можете добавить переменные среды, которые будут доступны приложению Node.js во время выполнения. В этом примере изменять файл не нужно.
- Файл index.js – основной файл приложения Node.js.
- Если у вашего приложения есть зависимости от модулей, они должны быть указаны в файле package.json.
Как посмотреть файлы журналов
Файлы журналов приложений могут быть полезны для отладки проблем, возникающих на этапе сборки и во время выполнения.
- В интерфейсе Edge нажмите на вкладку Develop (Разработка).
- Чтобы посмотреть журнал сборки, нажмите Журналы сборки.
- Чтобы посмотреть журнал развертывания, нажмите Журналы выполнения.
Дополнительная информация приведена в разделе Как получить доступ к файлам журналов.
Сводка
- Вы развернули простое приложение Node.js в среде Hosted Targets и протестировали его в интерфейсе Edge.
- Вы узнали, что для прокси-сервера Hosted Targets требуется специальный пустой тег в конечной точке Target, который называется
<HostedTarget/>. - Вы узнали, что Edge автоматически загружает зависимости модуля и что зависимости должны быть указаны в файле
package.json. - Вы также узнали, как проверять файлы журналов сборки и выполнения.
Как развернуть Node.js из системы в Edge
В этом разделе рассказывается, как развернуть отдельное приложение Node.js из локальной системы в размещенных целевых сервисах с помощью apigeetool. Утилита apigeetool
объединяет приложение Node.js в новый прокси-сервер Hosted Targets и развертывает его в Edge.
Как установить apigeetool
Разработчикам рекомендуется развертывать код прокси-сервера в Edge с помощью apigeetool. Чтобы установить apigeetool, выполните следующую команду NPM:
npm install -g apigeetool
Как создать приложение Node.js
Чтобы вам было проще, мы предоставили код для простого приложения Node.js.
- Создайте каталог для приложения Node.js. Назовите его node-hosted-express.
- cd в новый каталог.
- Создайте файл index.js и скопируйте в него этот код. недоступные через npm.
- Создайте файл 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 не обязательна. При развертывании приложения Node.js Edge выполняет команду npm install. Он получает зависимости из файла 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 Proxies (Прокси API) интерфейса Edge.
Как перенести существующий прокси-сервер Node.js на прокси-сервер размещенных целей
В этом разделе рассказывается, как вручную перенести существующий прокси API Edge, в котором используется традиционная реализация целевого сервиса 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 требуется, чтобы в файле целевой конечной точки (обычно /apiproxy/targets/default.xml) был тег <ScriptTarget>. Для размещенных целевых точек необходимо добавить пустой тег <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.
- Используйте команду cd, чтобы перейти в корневой каталог прокси-сервера: /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!