Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
Пределы переменных среды
Hosted Targets ограничивает размер и количество переменных среды, которые вы можете установить в среде выполнения Hosted Targets.
- 1000: максимальная длина одной переменной среды.
- 100: Максимальное количество переменных среды, которые вы можете установить.
Сведения о настройке переменных среды см. в файле манифеста .
Переменные среды, заданные во время выполнения приложения.
При развертывании приложения Hosted Targets устанавливаются следующие переменные среды, которые доступны вашему приложению во время выполнения:
-
APIGEE_ENVIRONMENT
— среда, в которой развернут размещенный целевой прокси. -
APIGEE_ORGANIZATION
— организация, в которой развернут размещенный целевой прокси. -
PORT
— порт, который должно прослушивать приложение Hosted Target.
Распределение системных ресурсов
Каждый экземпляр Hosted Targets получает следующие ресурсы:
- 256 МБ памяти
- Процессор 1,2 ГГц
Масштабирование
В этом разделе описывается, как масштабируются приложения Hosted Targets, в зависимости от типа вашей учетной записи Edge.- Пробная версия Apigee Edge ограничена одним экземпляром Hosted Targets на каждый прокси.
- Платные учетные записи Apigee Edge получают автоматическое масштабирование в зависимости от частоты запросов, задержек ответов и других показателей приложения для каждого прокси.
- Приложения Hosted Targets, развернутые как в платных, так и в пробных версиях Apigee Edge, масштабируются до нуля в периоды бездействия. В этом случае вы можете заметить замедление времени ответа на короткое время. См. также Известные проблемы
Файл манифеста
Чтобы собрать информацию о времени выполнения для создания и развертывания размещенного приложения, Edge ищет файл манифеста с именем app.yaml в каталоге resources/hosted . Этот файл содержит информацию, необходимую для сборки и развертывания приложения Hosted Targets.
Самый манифестный синтаксис файла
runtime: node runtimeVersion: version_number command: command_name args: argument_array env: - name: variable_name value: literal_value - name: variable_name valueRef: name: kvm_name key: kvm_value
Элементы файла манифеста
Файл манифеста app.yaml включает следующие элементы:
- время выполнения — (обязательно) Указывает тип развертываемого приложения. Вы должны указать
node
. - runtimeVersion — (необязательно) версия среды выполнения, которую использует ваше приложение. По умолчанию: Node.js LTS (v10.x). Дополнительные параметры можно найти в официальном репозитории Docker для Node .
- команда — (необязательно) позволяет указать команду для запуска, отличную от команды по умолчанию, используемой для запуска вашего приложения. По умолчанию:
Node.js=npm
- args — (необязательно) Массив аргументов командной строки для передачи приложению (указанный в стандартном синтаксисе массива YAML). Обычно они добавляются к команде по умолчанию. По умолчанию — старт . Например, по умолчанию приложению Node.js будет передана команда
npm start
. - env — (необязательно) Массив переменных среды (пары имя/значение), которые необходимо установить в среде выполнения Hosted Targets. Эти переменные доступны для развернутого приложения Hosted Targets.
- имя — имя переменной.
- ценность | valueRef — у вас есть два варианта. Вы можете установить буквальное значение или ссылаться на значение, хранящееся в карте ключевых значений . Карта ключевых значений уже должна существовать в вашей среде Edge. См. раздел «Работа с картами ключевых значений».
- Если вы используете значение , вы должны указать
name
переменной и буквальноеvalue
. Например:runtime: node env: - name: NODE_ENV value: production
- Если вы используете valueRef , вам необходимо указать имя карты значений ключей (KVM), которую вы ранее создали в Edge, и ключ . Например:
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
- Если вы используете значение , вы должны указать
Примеры файлов манифеста
В этом разделе содержатся примеры файлов манифеста для приложений Node.js. Файл манифеста необходим для развертывания приложения Hosted Targets и должен находиться в каталоге apiproxy/resources/hosted
, а имя файла должно быть app.yaml
.
Ниже приведены примеры файлов app.yaml
(манифеста) для приложений Node.js.
Пример, в котором указывается литеральная переменная среды:
runtime: node env: - name: NODE_ENV value: production
Пример с командой запуска, аргументами командной строки и переменной среды.
runtime: node command: ./node_modules/pm2/bin/pm2 env: - name: NODE_ENV value: production args: - app.js
Пример, в котором указана ссылка на карту значений ключей (KVM):
Дополнительную информацию о доступе к KVM см. в файле манифеста .
runtime: node env: - name: DB_ENV value: production - name: DB_PASSWORD valueRef: name: hosted-kvm key: db-password
Примеры приложений Hosted Targets на GitHub
Apigee предоставляет на GitHub примеры прокси-серверов с приложениями Hosted Targets, написанными на Node.js. Вы можете клонировать этот репозиторий и следовать инструкциям README для развертывания любого из прокси.
Предварительные условия
Для развертывания примеров в вашей системе должны быть установлены два инструмента:
- apigeetool — инструмент командной строки для развертывания Edge-прокси.
- get_token — инструмент командной строки для получения токена авторизации, необходимого apigeetool.
Если вы хотите тестировать образцы локально, у вас также должен быть установлен Node.js.
Получение образца репозитория
- В браузере перейдите по адресу https://github.com/apigee/api-platform-samples .
- Нажмите «Клонировать» или загрузите и перенесите репозиторий в свою локальную систему, используя предпочитаемый вами метод.
- перейдите в <ваш каталог установки>/api-platform-samples/doc-samples/hosted-targets
- После загрузки репозитория вы можете перейти в любой из каталогов с образцами и следовать инструкциям README, чтобы развернуть образец прокси-сервера в Edge. Команда развертывания показана ниже. Просто замените указанные параметры на параметры для вашей учетной записи Apigee:
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
Пример: выполнение примера приложения
Клонировать репозиторий образцов
cd ~/myhome
git clone https://github.com/apigee/api-platform-samples.git
cd ~/myhome/api-platform-samples/doc-samples/hosted-targets
cd node-hosted-hello
Протестируйте приложение локально
Для проведения этого локального теста у вас должен быть установлен Node.js.
PORT=8081 node apiproxy/resources/hosted/index.js
curl http://localhost:8081
Пример вывода:
{"date":"2018-03-12T21:45:22.161Z","msg":"Hello, World!"}
Развертывание прокси
get_token && apigeetool deployproxy \ -o myorg \ -e test \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api node-hosted-hello \ --directory .
Тестирование развертывания
Развертывание может занять несколько минут. Если вы получили ошибку развертывания, выполните команду развертывания еще раз.
curl http://myorg-test.apigee.net/node-hosted-hello
Пример вывода:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"
Известные проблемы
- Задержки в сети . Теперь, когда приложение Node.js больше не работает в JVM MP, между MP и развертыванием существует сетевой переход. Конечно, за это приходится платить, но первоначальные тесты показывают, что эта сумма находится в разумных пределах.
- Медленные ответы API . Инфраструктура, на которой работают ваши приложения, автоматически масштабируется в зависимости от необходимости. Это означает, что ваше приложение может фактически масштабироваться до нуля экземпляров, и в этом случае следующий запрос API займет немного больше времени, чем обычные запросы API, поскольку инфраструктура запускает экземпляр(ы) для обработки запроса(ов).
- Ошибка развертывания . Если при развертывании прокси-сервера Hosted Targets вы получаете сообщение об ошибке, попробуйте повторно развернуть прокси-сервер. В некоторых случаях время развертывания может истечь, и если вы выполните повторное развертывание, проблема исчезнет сама собой.