Задачи размещенных целей

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

Отмена развертывания прокси-сервера Hosted Targets

При отмене развертывания прокси-сервера Edge, который включает приложение Hosted Targets, соответствующее приложение Hosted Targets отменяется, но базовый образ приложения не удаляется. Если вы повторно развернете прокси-сервер, приложение Hosted Targets будет повторно развернуто.

Удаление прокси-сервера Hosted Targets

После удаления прокси-сервера Hosted Targets базовые экземпляры среды выполнения перестанут работать через некоторое время. Однако код приложения сохранится.

Доступ к файлам журналов

Файлы журналов полезны для отладки и устранения неполадок. Вы можете просмотреть два типа файлов журналов для развертывания размещенных целевых объектов:

  • Журнал сборки — показывает результаты, связанные с развертыванием и созданием приложения Hosted Targets.
  • Журнал выполнения . Показывает выходные данные, связанные с запущенным приложением Hosted Targets. Журналы времени выполнения привязаны к среде и отображают информацию журнала для развернутой в данный момент версии прокси.

Доступ к журналам из пользовательского интерфейса Edge

  1. Перейдите по адресу: apigee.com/edge.
  2. Введите свои учетные данные для входа и нажмите «Войти» .
  3. В боковом меню навигации выберите «Разработка» > «Прокси API» .
  4. Выберите прокси, для которого вы хотите просмотреть логи.
  5. Откройте вкладку «Разработка» .
  6. Чтобы просмотреть журнал сборки, нажмите «Журналы сборки» .
  7. Чтобы просмотреть журнал времени выполнения, нажмите «Журналы выполнения» .

Доступ к журналам с помощью API

Вы также можете использовать Edge API для получения журналов размещенных целевых объектов. Подробности см. в разделе Получение кэшированных журналов Node.js.

Использование частного репозитория npm

В этом разделе объясняется, как развернуть прокси-сервер Node.js на размещенных целевых объектах в случаях, когда вы используете частный репозиторий NPM в своей среде разработки.

Что нужно знать об использовании частного репозитория

Когда вы развертываете приложение Node.js в Edge, все зависимости вашего проекта автоматически импортируются в рамках процесса развертывания. По сути, Hosted Targets запускает npm install в вашем коде при его развертывании. Однако если вы используете частный репозиторий NPM в своей среде разработки, частные зависимости невозможно разрешить в облаке. В этом случае решением является использование опции --bundled-dependencies при использовании утилиты развертывания apigeetool . См. также раздел «Развертывание Node.js из вашей системы в Edge».

Когда вы используете флаг --bundled-dependencies в apigeetool , ваше приложение Node.js будет загружено в Hosted Targets, а все локальные/частные файлы, перечисленные в массиве BundleDependities в package.json будут заархивированы и загружены вместе с пакетом.

Хотя это и не является распространенной ситуацией, имейте в виду, что если вы зеркалируете общедоступный репозиторий NPM внутри себя, ваше развертывание завершится неудачей, если ваш пакет развертывания включает файл .npmrc или package-lock.json , который указывает на ваше частное зеркало. В этом случае обязательно опустите .npmrc или package-lock.json из пакета прокси, который вы собираетесь развернуть.

Развертывание с помощью частного репозитория NPM

Чтобы использовать модули, предоставленные из частного репозитория NPM, выполните следующие действия:

  1. Войдите в нпм:
    npm login
  2. Получите токен аутентификации npm:
    1. Найдите свой .npmrc (должен находиться в ~/.npmrc ).
    2. В вашем .npmrc обратите внимание на токен в конце строки, который выглядит следующим образом:

      //registry.npmjs.org/:_authToken=****
    3. Или используйте npm token <list | create | revoke> команды npm token <list | create | revoke> для просмотра, создания или отзыва токена аутентификации. Дополнительную информацию см. в документации npm-token .
  3. Откройте страницу конфигурации карт значений ключей, как описано ниже.

    Край

    Чтобы получить доступ к странице конфигурации карт значений ключей с помощью пользовательского интерфейса Edge:

    1. Войдите на сайт apigee.com/edge .
    2. Выберите «Администрирование» > «Среды» > «Карты значений ключей» на левой панели навигации.

    Классический Edge (частное облако)

    Чтобы получить доступ к странице конфигурации карт значений ключей с помощью классического пользовательского интерфейса Edge:

    1. Войдите в систему по http:// ms-ip :9000 , где ms-ip — это IP-адрес или DNS-имя узла сервера управления.
    2. Выберите API > Конфигурация среды > Карты значений ключей на верхней панели навигации.
  4. Нажмите + Карта значений ключей .
  5. В диалоговом окне «Новая карта значений ключей» введите имя и выберите «Зашифровано» .
  6. Нажмите Добавить .
  7. Добавьте токен аутентификации, который вы ранее нашли или создали, в качестве новой записи в каждой из только что созданных KVM.
  8. В файле app.yaml добавьте запись, которая ссылается на KVM и ключ, связанный с токеном аутентификации npm. Это должно выглядеть примерно так:
  9. env:
    - name: NPM_TOKEN
     valueRef:
       name: npm_store
       key: private_token

    Где:

    • Атрибут имени верхнего уровня соответствует имени создаваемой переменной среды.
    • Имя под valueRef соответствует созданному вами ранее KVM.
    • Атрибут key соответствует ключу, который соответствует токену npm, который вы добавили в KVM.
  10. Создайте файл .npmrc в том же каталоге, что и ваш package.json. Этот файл должен выглядеть примерно так:
    //registry.npmjs.org/:_authToken=${NPM_TOKEN}
    или, если вы не используете registry.npmjs.org вы можете установить область действия в файле .npmrc, добавив такую ​​строку @myscope:registry=https://mycustomregistry.example.org См. также документацию npmrc .
  11. Загрузите или обновите свой прокси-сервер Node.js, включив в него файл .npmrc и файлы app.yaml .
  12. Убедитесь, что ваш новый или обновленный прокси развернут и работает с нужным модулем частного репозитория.
  13. Если прокси-сервер не развертывается, проверьте журналы сборки, чтобы узнать, не удалось ли установить частный модуль npm. Если так:
    1. На вкладке «Разработка» убедитесь, что присутствует файл .npmrc .
    2. Убедитесь, что ваш токен действителен (попробуйте установить модуль локально, используя токен, присутствующий в KVM).
    3. Если вы используете пользовательскую область, убедитесь, что она установлена.

Указание версии NPM для связанных зависимостей

По умолчанию NPM v4 используется для установки связанных зависимостей в среде размещенных целевых объектов. Однако если вы хотите использовать другую версию NPM, вы можете указать ее в переменной среды NPM_VERSION . Эту переменную можно установить в файле манифеста приложения. Подробности см. в разделе Элементы файла манифеста .

Если вы используете связанные зависимости и не указываете NPM_VERSION , Hosted Targets по умолчанию использует NPM v4. Если вы не используете связанные зависимости, используется версия NPM, включенная в указанную вами среду выполнения Node.js.

Пример связанных зависимостей

Пример, демонстрирующий функцию связанных зависимостей с размещенными целевыми объектами, см. в разделе Как создать приложение Node.js с размещенными функциями с использованием пользовательских модулей .

Добавить конечную точку проверки работоспособности

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

По умолчанию конечная точка, которую ожидает Apigee, — /health . Вы можете изменить конечную точку по умолчанию, указав конечную точку в переменной среды с именем HOSTED_TARGET_HEALTH_CHECK_PATH . Эту переменную можно установить в файле манифеста приложения. Подробности см. в разделе Элементы файла манифеста .

Реализация конечной точки проверки работоспособности не требуется. Однако если вы реализуете конечную точку проверки работоспособности, обратите внимание на следующее:

  • Если ваше приложение завершает работу, когда Apigee достигает конечной точки, приложение не запустится должным образом.
  • Ничего страшного, если ваша конечная точка возвращает статус HTTP 404 Not Found. /health или HOSTED_TARGET_HEALTH_CHECK_PATH используются только для проверки того, работает ли ваше приложение. Фактический ответ игнорируется.

Измените расположение кэша NPM

В более новых версиях Node.js используется версия NPM, в которой для кэша NPM используется /root/.npm . Это расположение представляет проблему для размещенных целевых объектов, поскольку это расположение каталога доступно только для чтения, поскольку среда выполнения размещенного целевого объекта использует файловую систему tmpfs, в которой для записи доступен только /tmp . Чтобы обойти эту проблему, вы можете установить переменную среды npm_config_cache в файле app.yaml вашего приложения (файл манифеста) в каталог внутри /tmp . Например:

  runtime: node
  application: my-express-app
  env:
    - name: npm_config_cache
      value: /tmp/.npm
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

Запустите свое приложение без NPM

По умолчанию Hosted Targets использует npm start для запуска вашего приложения Hosted Target. Но в предыдущей задаче мы обсуждали проблему с использованием NPM, поскольку более новые версии будут пытаться использовать /root/.npm для кэша NPM, который недоступен для записи и приводит к сбою запуска размещенной цели. Хотя предыдущая задача поможет решить эту проблему, другим вариантом может быть запуск вашего приложения без NPM. Для этого вы можете использовать значения command и args в файле app.yaml вашего приложения (файле манифеста) для запуска размещенной цели напрямую с помощью node index.js . Например:

  runtime: node
  application: my-express-app
  command: node
  args:
    - index.js
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  
Конечно, вы можете использовать любую команду, которую считаете подходящей, и node index.js — это всего лишь пример.