Развертывание автономного приложения Node.js

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

В этом разделе объясняется, как развернуть приложение Node.js из локальной системы в Apigee Edge. В этом разделе мы обсудим, как использовать инструмент командной строки под названием apigeetool для развертывания приложений Node.js в Apigee Edge.

О развертывании кода Node.js в Apigee Edge

Вы можете развернуть существующее приложение Node.js API, включая любые зависимые модули Node.js, из вашей локальной системы в Apigee Edge с помощью утилиты командной строки под названием apigeetool . Утилита автоматически объединяет приложение и его зависимости в прокси-сервер API и развертывает его в Edge.

Например, предположим, что вы использовали Express для создания веб-приложения в Node.js. Приложение работает как HTTP-сервер, который прослушивает HTTP-запросы, обрабатывает эти запросы, возвращает данные и т. д. Когда вы используете apigeetool для развертывания приложения Node.js в Edge, оно оборачивается прокси-сервером и выполняется в контексте платформы Edge. Затем вы можете вызвать свое приложение через его новый URL-адрес прокси-сервера и повысить его ценность, «нарядив» его стандартными функциями Edge, такими как безопасность OAuth, политики квот, политики защиты от угроз, условные потоки, кэширование и многие другие.

Что делает apigeetool?

Когда вы запускаете утилиту apigeetool с опцией deploynodeapp , она:

  • Создает пакет конфигурации прокси-сервера API для размещения приложения Node.js.
  • Упаковывает приложение Node.js в любые пакеты Node.js, установленные с помощью NPM (упакованные модули Node).
  • Импортирует пакет конфигурации прокси-сервера API в указанную организацию в Apigee Edge с помощью API управления Edge.
  • Развертывает прокси-сервер API в среде.
  • Выполняет приложение Node.js в Apigee Edge и делает его доступным по сети.

Подготовка к использованию apigeetool

Прежде чем начать, вам необходимо установить утилиту apigeetool .

Вы можете установить apigeetool либо через npm, либо клонировав и связав код с GitHub.

Установка из npm

Модуль apigeetool и его зависимости разработаны для Node.js и доступны через npm с помощью следующей команды:

$ sudo npm install -g apigeetool

Обычно опция -g помещает модули в: /usr/local/lib/node_modules/apigeetool на машинах под управлением *nix.

Установка с GitHub

Загрузите или клонируйте инструменты платформы API с GitHub. Инструкции по установке см. в файле README в корневом каталоге репозитория.

$ git clone https://github.com/apigee/apigeetool-node.git

После завершения установки убедитесь, что исполняемый файл apigeetool находится в вашем пути. Вы можете проверить это, набрав:

$ apigeetool -h

Развертывание приложения Node.js в Edge с помощью apigeetool

Примечание. Перед развертыванием вам необходимо знать название вашей организации Apigee Edge, имя пользователя и пароль для вашей учетной записи Apigee Edge . Эта информация понадобится вам для правильного формирования команды apigeetool .

Чтобы развернуть приложение Node.js с помощью apigeetool :

  1. В окне терминала cd корневой каталог вашего приложения Node.js.
  2. Запустите утилиту apigeetool с помощью команды deploynodeapp :

    $ apigeetool deploynodeapp -n {A name for your new proxy} -d {The root directory of your Node.js app} -m {The name of the main Node.js file} -o {Your org name on Edge} -e {The environment to deploy to} -b {The base URL for your proxy} -u {Your Edge email address} -p {Your Edge password}
    
    Например:

    $ apigeetool deploynodeapp -n myNodeApp -d . -m server.js -o myorg -e test -b /myNodeApp -u ntesla -p myPassword
    
  3. Проверьте вывод в окне терминала. Это будет выглядеть примерно так:

    Importing new application myNodeApp
    Imported new app revision 1
    Deploying revision 1
      Deployed.
    Proxy: "myNodeApp" Revision 1
      Environment: test BasePath: /myNodeApp
      Status: deployed
    

    Если вы видите «Статус: развернуто», все. Все прошло гладко. Ваше приложение Node.js заключено в прокси-сервер API, развернуто в Edge, работает и ожидает обработки запросов. Он готов к тестированию.

  4. Проверьте свой прокси. Например:

    $ curl http://myorg-test.apigee.net/myNodeApp
    Hello, My Node App!
    
  5. При желании войдите в свою учетную запись Apigee Edge и перейдите на страницу прокси-серверов API пользовательского интерфейса управления. Там вы увидите свой новый прокси.

Как apigeetool обрабатывает зависимые файлы и модули

Если ваше приложение Node.js зависит от установленных модулей, apigeetool обрабатывает их, заархивировав папку node_modules и добавив ее в пакет прокси. Никаких дополнительных действий не требуется. То же самое верно для любых каталогов, содержащих дополнительный исходный код. Утилита apigeetool заархивирует их и развернет вместе с пакетом.

Вы не можете редактировать файлы в этих заархивированных каталогах в редакторе пользовательского интерфейса управления Edge. Если вам нужно их изменить, вы можете экспортировать проект, отредактировать файлы локально, а затем повторно развернуть их с помощью apigeetool или импортировать экспортированный проект с помощью пользовательского интерфейса управления. См. также « Экспорт и импорт прокси с помощью кода Node.js ».

Основная информация об использовании apigeetool

Для получения базовой информации об использовании входных параметров утилиты apigeetool введите:

$ apigeetool deploynodeapp -h

  Usage: deploynodeapp -n [name] -o [organization] -e [environment]
  -d [directory name] -m [main script file]
  -u [username] -p [password]
  -b [base path] -l [apigee API url] -z [zip file] -i -h
  -o Apigee organization name
  -e Apigee environment name
  -n Apigee proxy name
  -d Apigee proxy directory
  -m Main script name: Should be at the top level of the directory
  -u Apigee user name
  -p Apigee password
  -b Base path (optional, defaults to /)
  -L Apigee API URL (optional, defaults to https://api.enterprise.apigee.com)
  -z ZIP file to save (optional for debugging)
  -i import only, do not deploy
  -R Resolve Node.js modules on Apigee Edge. Equivalent to running npm install on your project. 
  -U Uploads Node.js modules to Apigee Edge. 
  -h Print this message

Создание нового прокси с существующими файлами Node.js

Другой способ интегрировать существующее приложение Node.js в прокси API — добавить приложение при создании прокси. Вы можете сделать это полностью через пользовательский интерфейс управления и диалоговое окно «Новый прокси API».

  1. На странице сводной информации о прокси-сервере API нажмите +Прокси-сервер API .
  2. В диалоговом окне «Новый прокси-сервер API» выберите «Существующий Node.js» .
  3. Используйте кнопку «Выбрать файлы» , чтобы выбрать один или несколько файлов Node.js для импорта.
  4. Дайте прокси имя. В этом примере мы называем его hellonode .
  5. Добавьте версию /v1 в базовый путь проекта. Управление версиями вашего API — лучшая практика.
  6. Нажмите «Создать» .
  7. Нажмите «Разработка» , чтобы войти в представление «Разработка».
  8. Откройте файл TargetEndpoint в редакторе кода.
  9. Убедитесь, что элемент <ScriptTarget> указывает основной файл Node.js следующим образом:


    <ScriptTarget>
            <ResourceURL>node://server.js</ResourceURL>
            <Properties/>
    </ScriptTarget>
    
  10. Нажмите Сохранить .

Добавление и вызов новых файлов ресурсов Node.js

Другой способ добавить код Node.js в прокси — добавить его напрямую, либо через пользовательский интерфейс, либо загрузив из локальной файловой системы. Вы также можете указать, какой файл Node.js является основным файлом, который Edge вызывает при развертывании прокси-сервера.

Добавление новых файлов Node.js через пользовательский интерфейс

Пользовательский интерфейс управления позволяет добавлять дополнительные исходные файлы Node.js к прокси-серверу, расположенному на платформе Edge. Вы можете создавать их непосредственно в пользовательском интерфейсе или импортировать из своей файловой системы. Сначала давайте посмотрим, как это сделать из пользовательского интерфейса.

Чтобы создать новый файл ресурсов Node.js:

  1. В представлении «Разработка» выберите «Новый сценарий» в меню «Создать».
  2. В диалоговом окне «Добавить сценарий» выберите тип файла «Узел» и назовите сценарий.
  3. Нажмите Добавить .

В редакторе откроется новый пустой файл Node.js. Вы можете вырезать и вставить свой код в файл. Файл также появится в разделе «Сценарии» навигатора.

[[{"type":"media","view_mode":"media_large","fid":"2431","attributes":{"alt":"","class":"media-image"," height":"312","typeof":"foaf:Image","width":"417"}}]]

Импорт файлов Node.js из вашей файловой системы

Чтобы импортировать файл Node.js из вашей файловой системы на прокси-сервер:

  1. В представлении «Разработка» выберите «Новый сценарий» в меню «Создать».
  2. В диалоговом окне «Добавить скрипт» нажмите «Импортировать скрипт» .
  3. Используйте инструмент «Файл», чтобы выбрать файл Node.js.
  4. Имя файла добавляется в диалоговое окно, но при желании вы можете его изменить.
  5. Нажмите Добавить . Файл появится в разделе «Скрипты» навигатора и откроется в редакторе.
  6. Нажмите Сохранить .

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

Вызов импортированного файла Node.js

Вы не можете просто вызвать только что импортированный или созданный файл Node.js. Причина в том, что Edge требует, чтобы один файл Node.js был основным . Основной файл указан в элементе <ScriptTarget> определения целевой конечной точки. Чтобы указать, какой файл является основным файлом Node.js, выполните следующие действия:

  1. В разделе «Целевые конечные точки» в навигаторе щелкните имя целевой конечной точки (обычно называемой « по умолчанию »).
  2. В редакторе кода отредактируйте элемент <ScriptTarget>, изменив <ResourceURL>, чтобы оно отражало имя файла, который вы хотите сделать основным файлом Node.js. Например, если вы хотите, чтобы файл с именем hello-world.js был основным файлом, вы должны ввести: node://hello-world.js в элементе ResourceURL.
  3. Нажмите Сохранить .

На этом этапе вы можете вызвать файл, используя любой путь прокси, который вы использовали ранее. Например, мы рассматривали Hello World! пример, где указан базовый путь v1/hello . Однако вы можете изменить базовый путь, отредактировав конечную точку прокси.

  1. В разделе «Конечные точки прокси-сервера» в навигаторе щелкните имя конечной точки прокси-сервера (обычно называемой « по умолчанию »).
  2. В редакторе кода отредактируйте элемент <HttpProxyConnection>, изменив <BasePath> на любое желаемое имя. Например, если текущий <BasePath> — v1/hello , а вы хотели, чтобы это был v1/my-node-file , измените элемент <BasePath> следующим образом:

    <BasePath>/v1/my-node-file</BasePath>
  3. Нажмите Сохранить .
  4. Вызовите прокси, используя новый базовый путь, например:

    $ curl http://myorg-test.apigee.net/v1/my-node-file
    Hello, World!
    

Экспорт и импорт прокси с кодом Node.js

После развертывания прокси-сервера, содержащего код Node.js, в Edge вы всегда можете экспортировать прокси-сервер обратно в свою систему, работать с ним там, а затем повторно импортировать его в Edge с помощью пользовательского интерфейса управления. Этот тип метода разработки «туда-обратно» широко используется.

  1. На странице сводной информации о прокси-сервере API нажмите « Разработать» .
  2. На странице «Разработка» выберите «Загрузить текущую версию» .
  3. Разархивируйте загруженный файл в вашей системе.

Вы можете импортировать пакет прокси обратно в Edge, выбрав «Импортировать в новую ревизию» в том же меню.

Вы также можете использовать API для развертывания прокси. Подробности см. в разделе «Развертывание прокси из командной строки» .

Следующие шаги

В следующем разделе « Добавление Node.js к существующему прокси-серверу API» мы объясним, как добавить приложение Node.js к существующему прокси-серверу в вашей файловой системе и развернуть его в Edge.