Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
Ограничения для переменных среды
В Hosted Targets действуют ограничения на размер и количество переменных среды, которые можно задать в среде выполнения Hosted Targets.
- 1000 – максимальная длина одной переменной среды.
- 100 – максимальное количество переменных среды, которые можно задать.
Информацию о том, как задавать переменные среды, можно найти в разделе Файл манифеста.
Переменные среды, заданные во время выполнения приложения
При развертывании приложения Hosted Targets задаются следующие переменные среды, которые доступны приложению во время выполнения:
APIGEE_ENVIRONMENT– среда, в которой развернут прокси-сервер Hosted Target.APIGEE_ORGANIZATION– организация, в которой развернут прокси-сервер Hosted Target.PORT– порт, который должно прослушивать размещенное целевое приложение.
Распределение системных ресурсов
Каждый экземпляр Hosted Targets получает следующие ресурсы:
- 256 МБ памяти
- ЦП с частотой 1,2 ГГц
Масштабирование
В этом разделе рассказывается, как масштабируются приложения Hosted Targets в зависимости от типа аккаунта Edge.- В пробной версии Apigee Edge для каждого прокси-сервера можно использовать только один размещенный целевой сервис.
- В платных аккаунтах 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 содержит следующие элементы:
- runtime – (обязательно) указывает тип развертываемого приложения.
Вы должны указать свойство
node. - runtimeVersion – (необязательно) версия среды выполнения, которую использует ваше приложение. По умолчанию: Node.js LTS (версия 10.x). Другие варианты можно найти в официальном репозитории Docker для Node.
- command – (необязательно) позволяет указать команду, отличную от команды по умолчанию, используемой для запуска приложения. По умолчанию:
Node.js=npm - args – (необязательный параметр) массив аргументов командной строки, которые будут переданы приложению (указывается в стандартном синтаксисе массива YAML). Обычно они добавляются в команду по умолчанию.
По умолчанию задано значение start. Например, по умолчанию приложению Node.js будет передана команда
npm start. - env – (необязательно) массив переменных среды (пары "имя/значение"), которые нужно задать в среде выполнения размещенных целевых объектов. Эти переменные доступны в развернутом приложении Hosted Targets.
- name – название переменной.
- value | valueRef – у вас есть два варианта. Вы можете задать литеральное значение или указать значение, хранящееся в карте пар "ключ-значение". Карта пар "ключ-значение" должна уже существовать в вашей среде Edge. Подробнее о работе с картами ключей-значений…
- Если вы используете value, то должны указать переменную
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
- Если вы используете value, то должны указать переменную
- apigeetool – инструмент командной строки для развертывания прокси-серверов Edge.
- get_token – инструмент командной строки для получения токена авторизации, необходимого для apigeetool.
- В браузере перейдите на страницу https://github.com/apigee/api-platform-samples.
- Нажмите Clone or download (Клонировать или скачать) и перенесите репозиторий в локальную систему удобным для вас способом.
- Перейдите в каталог <your install dir>/api-platform-samples/doc-samples/hosted-targets с помощью команды cd.
- После скачивания репозитория вы можете перейти в любой из каталогов с примерами и следовать инструкциям в файле README, чтобы развернуть пример прокси в Edge. Команда для развертывания приведена ниже. Просто замените указанные параметры на параметры своего аккаунта Apigee:
- Задержки в сети. Поскольку приложение Node.js больше не выполняется в JVM MP, между MP и развертыванием теперь есть сетевой переход. Конечно, это требует дополнительных затрат, но, согласно предварительным тестам, они вполне разумны.
- Медленные ответы API. Инфраструктура, на которой работают ваши приложения, автоматически масштабируется в зависимости от потребностей. Это означает, что ваше приложение может быть масштабировано до нуля экземпляров, и в этом случае следующий запрос к API будет выполняться немного дольше, чем обычно, поскольку инфраструктура запускает экземпляры для обработки запроса.
- Ошибка развертывания. Если при развертывании прокси-сервера Hosted Targets возникает ошибка, попробуйте развернуть прокси-сервер ещё раз. В некоторых случаях время ожидания развертывания может истечь, и при повторном развертывании проблема будет устранена.
Примеры файлов манифеста
В этом разделе приведены примеры файлов манифеста для приложений 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
Пример, в котором указана ссылка на карту пар "ключ-значение":
Подробнее о файле манифеста…
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, чтобы развернуть любой из прокси-серверов.
Требования
Чтобы развернуть примеры, на вашем компьютере должны быть установлены два инструмента:
Если вы хотите тестировать примеры локально, вам также потребуется установить Node.js.
Как получить образец репозитория
get_token && apigeetool deployproxy \ -o YOUR_ORGANIZATION \ -e YOUR_ENVIRONMENT \ --json \ --token "$(< ~/.sso-cli/valid_token.dat)"\ --api NAME_OF_THE_PROXY \ --directory .
Пример: выполнение примера приложения
Как клонировать репозиторий с примерами
cd ~/myhomegit clone https://github.com/apigee/api-platform-samples.gitcd ~/myhome/api-platform-samples/doc-samples/hosted-targetscd node-hosted-hello
Как протестировать приложение локально
Для локального тестирования необходимо установить Node.js.
PORT=8081 node apiproxy/resources/hosted/index.jscurl 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 .
Как проверить развертывание
Развертывание может занять несколько минут. Если при развертывании возникнет ошибка, выполните команду deploy ещё раз.
curl http://myorg-test.apigee.net/node-hosted-hello
Примеры результатов:
{"date":"2018-03-23T18:59:18.668Z","msg":"Hello, World!"