Вы просматриваете документацию по 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.
- Введите учетные данные и нажмите Войти.
- В меню навигации слева выберите Develop (Разработка) > API Proxies (Прокси API).
- Выберите прокси, для которого хотите посмотреть журналы.
- Нажмите на вкладку Разработка.
- Чтобы посмотреть журнал сборки, нажмите Журналы сборки.
- Чтобы посмотреть журнал выполнения, нажмите Журналы выполнения.
Как получить доступ к журналам с помощью API
Вы также можете использовать Edge API для получения журналов размещенных целевых объектов. Подробнее о том, как получить кешированные журналы Node.js…
Как использовать частный репозиторий npm
В этом разделе рассказывается, как развернуть прокси-сервер Node.js в размещенных целевых сервисах, если в среде разработки используется частный репозиторий NPM.
Что нужно знать об использовании частного репозитория
Когда вы развертываете приложение Node.js в Edge, все зависимости проекта автоматически импортируются в рамках процесса развертывания.
По сути, Hosted Targets запускает npm install в вашем коде при его развертывании.
Однако если в среде разработки вы используете частное хранилище NPM, частные зависимости не могут быть разрешены в облаке. В этом случае при использовании утилиты развертывания apigeetool нужно выбрать вариант --bundled-dependencies. См. также Как развернуть Node.js из системы в Edge.
Если вы используете флаг --bundled-dependencies в apigeetool, ваше приложение Node.js будет загружено в размещенные целевые платформы, а все локальные или частные файлы, перечисленные в массиве bundledDependencies в package.json, будут заархивированы и загружены вместе с пакетом.
Хотя это и не очень распространенная ситуация, имейте в виду, что если вы создадите внутреннее зеркало общедоступного репозитория NPM, развертывание завершится неудачно, если в пакет развертывания входит файл .npmrc или package-lock.json, указывающий на ваше частное зеркало. В этом случае не включайте в пакет прокси-серверов, который вы собираетесь развернуть, .npmrc или package-lock.json.
Развертывание с помощью частного хранилища NPM
Чтобы использовать модули из частного хранилища NPM, выполните следующие действия:
- Войдите в npm:
npm login
- Получите токен аутентификации npm:
- Найдите файл .npmrc (он должен находиться в каталоге ~/.npmrc).
- В файле .npmrc найдите токен в конце строки, которая выглядит следующим образом:
//registry.npmjs.org/:_authToken=**** - Или используйте команды
npm token <list | create | revoke>, чтобы создать, отозвать или посмотреть список токенов авторизации. Подробная информация приведена в документации по npm-token. - Откройте страницу конфигурации карт "Ключ-значение", как описано ниже.
Edge
Чтобы перейти на страницу конфигурации карт "ключ-значение" в интерфейсе Edge:
- Войдите в аккаунт на сайте apigee.com/edge.
- На панели навигации слева выберите Admin (Администратор) > Environments (Среды) > Key Value Maps (Карты значений ключей).
Классическая версия Edge (частное облако)
Чтобы перейти на страницу конфигурации карт значений ключей в классическом интерфейсе Edge:
- Войдите в
http://ms-ip:9000, где ms-ip – это IP-адрес или DNS-имя узла сервера управления. - На панели навигации вверху страницы выберите API > Конфигурация среды > Карты пар "ключ-значение".
- Нажмите + Карта пар "ключ-значение".
- В диалоговом окне New Key Value Map (Новое сопоставление пар "ключ-значение") введите название и выберите вариант Encrypted (Зашифровано).
- Нажмите Добавить.
- Добавьте токен авторизации, который вы нашли или создали ранее, в качестве новой записи в каждую из созданных вами карт KVM.
- В файле app.yaml добавьте запись, которая ссылается на хранилище пар "ключ-значение" и ключ, связанные с токеном аутентификации npm. Он выглядит примерно так:
- Атрибут name верхнего уровня соответствует названию переменной среды, которая будет создана.
- Параметр name в разделе valueRef соответствует созданной ранее карте "ключ-значение".
- Атрибут key соответствует ключу, который сопоставляется с токеном npm, добавленным в хранилище пар "ключ-значение".
- Создайте файл .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. Если да:
- На вкладке develop (Разработка) убедитесь, что файл .npmrc присутствует.
- Убедитесь, что токен действителен (попробуйте установить модуль локально с токеном, присутствующим в kvm).
- Если вы используете собственный набор областей действия, убедитесь, что он задан.
env:
- name: NPM_TOKEN
valueRef:
name: npm_store
key: private_tokenГде:
Как указать версию NPM для встроенных зависимостей
По умолчанию для установки зависимостей, входящих в пакет, в среде Hosted Targets используется NPM версии 4.
Однако, если вы хотите использовать другую версию NPM, ее можно указать в переменной среды NPM_VERSION. Вы можете задать эту переменную в файле манифеста приложения. Подробнее об элементах файла манифеста…
Если вы используете пакетные зависимости и не указываете NPM_VERSION, Hosted Targets по умолчанию использует NPM версии 4. Если вы не используете встроенные зависимости, будет использоваться версия NPM, включенная в указанную среду выполнения Node.js.
Пример пакета зависимостей
Пример использования встроенных зависимостей с размещенными целями можно найти в статье Как создать приложение Node.js с размещенными функциями, используя пользовательские модули.Как добавить конечную точку проверки состояния
Вы можете реализовать конечную точку проверки работоспособности для приложения Node.js. Apigee использует эту конечную точку, когда ваше приложение Node.js запускается, чтобы проверить, работает ли оно в контейнере.
По умолчанию конечная точка, которую ожидает Apigee, – /health. Вы можете изменить конечную точку по умолчанию, указав ее в переменной среды с именем HOSTED_TARGET_HEALTH_CHECK_PATH. Вы можете задать эту переменную в файле манифеста приложения. Подробнее об элементах файла манифеста…
Реализовывать конечную точку проверки работоспособности не обязательно. Однако, если вы реализуете конечную точку проверки работоспособности, обратите внимание на следующее:
- Если приложение завершает работу, когда Apigee обращается к конечной точке, оно не запускается должным образом.
- Если конечная точка возвращает код статуса HTTP 404 (Не найдено), это допустимо.
/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 – это всего лишь пример.