Учебные пособия по размещенным целям

Вы просматриваете документацию 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, а также как получить доступ к файлам журналов развертывания и сборки.

Войти

  1. Перейдите по ссылке: apigee.com/edge
  2. Введите свои учетные данные для входа в Apigee.

Создать новый прокси

  1. В боковом навигационном меню выберите «Разработка» > «API-прокси» .
  2. Click + Proxy .
  3. На странице «Создать прокси» выберите «Объект размещения» .
  4. Нажмите «Далее» .
  5. В поле «Имя прокси» введите hello-hosted-targets .
  6. Убедитесь, что выбран пример "Hello World" .
  7. Нажмите «Далее» .
  8. На странице «Безопасность» выберите «Сквозная авторизация (нет)» для параметра «Авторизация».
  9. Нажмите «Далее» .
  10. Нажмите «Далее» .
  11. На странице «Сборка» убедитесь, что выбрана тестовая среда. Обратите внимание, что тип прокси — «Размещенные целевые объекты» .
  12. Нажмите «Создать и развернуть» . Развертывание прокси-сервера может занять несколько минут.
  13. После успешного развертывания прокси-сервера нажмите кнопку «Просмотреть прокси-сервер hello-hosted-targets» внизу страницы.
  14. Вызовите API-прокси. Проще всего это сделать, перейдя на вкладку «Трассировка» , запустив сеанс трассировки и нажав «Отправить» . Вы должны получить статус 200 со следующим ответом:
    {"date":"2018-09-26T14:23:04.550Z","msg":"Hello, World!"}

Изучите прокси-сервер

  1. В пользовательском интерфейсе Edge перейдите на вкладку «Разработка» .
  2. В навигаторе в разделе «Целевые конечные точки» выберите «По умолчанию» .
  3. В редакторе кода обратите внимание на пустой дочерний элемент <HostedTarget/> под элементом <TargetEndpoint> . Этот пустой тег является обязательным. Он сообщает Edge, что целью прокси-сервера является приложение, развернутое в среде Hosted Targets.

  4. В навигаторе обратите внимание на содержимое раздела «Скрипты» . Файлы приложения Node.js перечислены под меткой «Размещено» .

  5. В пользовательском интерфейсе Edge изучите файлы, перечисленные в разделе «Размещенные» в папке «Скрипты» :
    • Файл app.yaml содержит информацию о конфигурации. Например, вы можете добавить переменные окружения, которые будут доступны приложению Node.js во время выполнения. В данном примере изменять этот файл не требуется.
    • Файл index.js — это основной файл приложения Node.js.
    • Если ваше приложение имеет зависимости от каких-либо модулей, их необходимо указать в файле package.json .

Просмотреть файлы журналов

Файлы журналов приложений могут быть полезны для отладки проблем, возникающих на этапе сборки, а также во время выполнения.

  1. В пользовательском интерфейсе Edge перейдите на вкладку «Разработка» .
  2. Чтобы просмотреть журнал сборки, нажмите «Журналы сборки» .
  3. Чтобы просмотреть журнал развертывания, нажмите «Журналы выполнения» .

    См. также раздел «Доступ к файлам журналов» .

Краткое содержание

  • Вы развернули простое приложение 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.

  1. Создайте директорию для приложения Node.js. Назовите директорию node-hosted-express .
  2. Перейдите в новую директорию с помощью команды cd .
  3. Создайте файл с именем index.js и скопируйте в него следующий код.
  4. 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)
    })
  5. Создайте файл с именем package.json и скопируйте в него следующий код. Обратите внимание, что модуль express указан в качестве зависимости.
  6. {
        "name": "hello-world",
        "version": "1.0.0",
        "main": "index.js",
        "scripts": {
            "start": "node index.js --use_strict"
        },
        "author": "",
        "license": "",
        "dependencies": {
            "express": "^4.16.0"
        }
    }
  7. Создайте файл с именем app.yaml и скопируйте в него следующий код:
  8. runtime: node
    runtimeVersion: 8
    application: my-express-app
    env:
      - name: NODE_ENV
        value: production
      - name: LOG_LEVEL
        value: 3
  9. Убедитесь, что ваша директория выглядит следующим образом:
    ls
    app.yaml index.js package.json
    

Проверка необходимой структуры каталогов для кода приложения.

Ваше приложение Node.js должно иметь ту же структуру, что и стандартное приложение Node.js. Однако, прежде чем развертывать приложение с помощью apigeetool в Edge, убедитесь, что вы выполнили следующие требования:

  • Файл манифеста app.yaml является обязательным и должен находиться в корневом каталоге вашего приложения. Для получения дополнительной информации об этом файле см. раздел «Файл манифеста» .
  • Необходим файл package.json . В нем должны быть перечислены все зависимости, которые требуются вашему приложению.
  • Папка node_modules не обязательна . Edge автоматически запускает команду npm install при развертывании приложения Node.js. Он получает зависимости из файла package.json . Явно указывать папку node_modules нужно только в том случае, если у вас есть пользовательские модули, недоступные через npm .

Развертывание прокси-сервера

  1. В терминале перейдите в корневой каталог вашего Node.js-приложения с помощью команды `cd` .
  2. Выполните команду `apigeetool` с помощью команды `deployhostedtarget` :
  3. 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 .

  1. Перейдите в корневой каталог вашего прокси-сервера: /apiproxy
  2. Для развертывания прокси-сервера используйте эту команду:
  3. 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!