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

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

В этой теме объясняется, как развернуть приложение 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 Packaged Modules).
  • Импортирует пакет конфигурации прокси-сервера 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 Platform Tools с GitHub. Инструкции по установке см. в файле README в корневом каталоге репозитория.

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

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

$ apigeetool -h

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

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

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

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

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

  1. В разделе «Прокси-серверы» в навигаторе щелкните имя прокси-сервера (обычно оно называется default ).
  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.