Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Отмена развертывания прокси-сервера Hosted Targets
При отмене развертывания прокси-сервера Edge, который включает приложение Hosted Targets, соответствующее приложение Hosted Targets отменяется, но базовый образ приложения не удаляется. Если вы повторно развернете прокси-сервер, приложение Hosted Targets будет повторно развернуто.
Удаление прокси-сервера Hosted Targets
После удаления прокси-сервера Hosted Targets базовые экземпляры среды выполнения перестанут работать через некоторое время. Однако код приложения сохранится.
Доступ к файлам журналов
Файлы журналов полезны для отладки и устранения неполадок. Вы можете просмотреть два типа файлов журналов для развертывания размещенных целевых объектов:
- Журнал сборки — показывает результаты, связанные с развертыванием и созданием приложения Hosted Targets.
- Журнал выполнения . Показывает выходные данные, связанные с запущенным приложением Hosted Targets. Журналы времени выполнения привязаны к среде и отображают информацию журнала для развернутой в данный момент версии прокси.
Доступ к журналам из пользовательского интерфейса Edge
- Перейдите по адресу: apigee.com/edge.
- Введите свои учетные данные для входа и нажмите «Войти» .
- В боковом меню навигации выберите «Разработка» > «Прокси API» .
- Выберите прокси, для которого вы хотите просмотреть логи.
- Откройте вкладку «Разработка» .
- Чтобы просмотреть журнал сборки, нажмите «Журналы сборки» .
- Чтобы просмотреть журнал времени выполнения, нажмите «Журналы выполнения» .
Доступ к журналам с помощью 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, выполните следующие действия:
- Войдите в нпм:
npm login
- Получите токен аутентификации npm:
- Найдите свой .npmrc (должен находиться в ~/.npmrc ).
- В вашем .npmrc обратите внимание на токен в конце строки, который выглядит следующим образом:
//registry.npmjs.org/:_authToken=****
- Или используйте
npm token <list | create | revoke>
командыnpm token <list | create | revoke>
для просмотра, создания или отзыва токена аутентификации. Дополнительную информацию см. в документации npm-token . - Откройте страницу конфигурации карт значений ключей, как описано ниже.
Край
Чтобы получить доступ к странице конфигурации карт значений ключей с помощью пользовательского интерфейса Edge:
- Войдите на сайт apigee.com/edge .
- Выберите «Администрирование» > «Среды» > «Карты значений ключей» на левой панели навигации.
Классический Edge (частное облако)
Чтобы получить доступ к странице конфигурации карт значений ключей с помощью классического пользовательского интерфейса Edge:
- Войдите в систему по
http:// ms-ip :9000
, где ms-ip — это IP-адрес или DNS-имя узла сервера управления. - Выберите API > Конфигурация среды > Карты значений ключей на верхней панели навигации.
- Нажмите + Карта значений ключей .
- В диалоговом окне «Новая карта значений ключей» введите имя и выберите «Зашифровано» .
- Нажмите Добавить .
- Добавьте токен аутентификации, который вы ранее нашли или создали, в качестве новой записи в каждой из только что созданных KVM.
- В файле app.yaml добавьте запись, которая ссылается на KVM и ключ, связанный с токеном аутентификации npm. Это должно выглядеть примерно так:
- Атрибут имени верхнего уровня соответствует имени создаваемой переменной среды.
- Имя под valueRef соответствует созданному вами ранее KVM.
- Атрибут key соответствует ключу, который соответствует токену npm, который вы добавили в KVM.
- Создайте файл .npmrc в том же каталоге, что и ваш package.json. Этот файл должен выглядеть примерно так:
//registry.npmjs.org/:_authToken=${NPM_TOKEN}
или, если вы не используетеregistry.npmjs.org
вы можете установить область действия в файле .npmrc, добавив такую строку@myscope:registry=https://mycustomregistry.example.org
См. также документацию npmrc . - Загрузите или обновите свой прокси-сервер Node.js, включив в него файл .npmrc и файлы app.yaml .
- Убедитесь, что ваш новый или обновленный прокси развернут и работает с нужным модулем частного репозитория.
- Если прокси-сервер не развертывается, проверьте журналы сборки, чтобы узнать, не удалось ли установить частный модуль npm. Если так:
- На вкладке «Разработка» убедитесь, что присутствует файл .npmrc .
- Убедитесь, что ваш токен действителен (попробуйте установить модуль локально, используя токен, присутствующий в KVM).
- Если вы используете пользовательскую область, убедитесь, что она установлена.
env: - name: NPM_TOKEN valueRef: name: npm_store key: private_token
Где:
Указание версии 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
— это всего лишь пример.