Вы просматриваете документацию 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!