Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
В этой статье описаны ошибки и предупреждения, которые могут возникать при работе с Edge Microgateway.
Общие ошибки приложения
HTTP 500, сбой в обработчике ошибок – большинство ошибок будут иметь этот номер, как и некоторые ошибки, возвращаемые целевыми объектами. В частности, errors-middleware.js используется во всем модуле microgateway-core. При использовании этого параметра коды статуса записываются в журнал с помощью Edge Microgateway
logger object: logger.error(err, 'failed in error handler');. Для кодов, полученных от целевых объектов в диапазоне от 100 до 300, файл errors-middleware.js переписывает statusCode на 500 для возврата клиенту.HTTP 404 – этот статус может быть указан в трассировке стека с сообщением
no match found for [API_path_name].
Ошибки и предупреждения в модулях
Эту информацию можно использовать для настройки оповещений, которые помогут вам отслеживать и контролировать развертывание Edge Microgateway.
В разделе "Обработчик" справочника по ошибкам используются следующие термины, которые указывают, как различные ошибки обрабатываются в Edge Microgateway.
- assert: обычно Edge Microgateway останавливается, когда не удается выполнить проверку утверждения. Однако это не всегда так, поскольку утверждения могут вызывать исключения, которые можно перехватить.
- throws: возможна остановка системы.
- callback – ошибка передается в функцию обратного вызова, и система может продолжить работу.
| Тип | Сообщение | Обработчик | Примечания |
|---|---|---|---|
модуль microgateway |
|||
| ошибка | Требуется указать домен org | заявлять [права] | assert(options.org,"org is required"); |
| ошибка | Требуется указать env. | заявлять [права] | assert(options.env,"env is required") |
| ошибка | Требуется указать имя пользователя. | заявлять [права] | assert(options.username || options.token,"username is required"); |
| ошибка | требуется пароль; | заявлять [права] | assert(options.password || options.token,"password is required") |
| ошибка | Требуется указать домен org | заявлять [права] | assert(options.org,"org is required"); |
| ошибка | Требуется указать env. | заявлять [права] | assert(options.env,"env is required") |
| ошибка | Требуется указать имя пользователя. | заявлять [права] | assert(options.username || options.token,"username is required"); |
| ошибка | требуется пароль; | заявлять [права] | assert(options.password || options.token,"password is required") |
| ошибка | Требуется указать домен org | заявлять [права] | assert(options.org,"org is required"); |
| ошибка | Требуется указать env. | заявлять [права] | assert(options.env,"env is required") |
| ошибка | Требуется указать домен org | заявлять [права] | assert(options.org,"org is required"); |
| ошибка | Требуется указать env. | заявлять [права] | assert(options.env,"env is required") |
| ошибка | Требуется указать имя пользователя. | заявлять [права] | assert(options.username, 'username is required'); |
| ошибка | требуется пароль; | заявлять [права] | assert(options.password, 'password is required'); |
| ошибка | Требуется указать домен org | заявлять [права] | assert(options.org, 'org is required'); |
| ошибка | Требуется указать env. | заявлять [права] | assert(options.env, 'env is required'); |
| ошибка | должен иметь назначенный целевой файл; | заявлять [права] | assert(targetFile, 'must have an assigned target file') |
| ошибка | должен иметь ключ; | заявлять [права] | assert(key, 'must have a key'); |
| ошибка | должен иметь секрет; | заявлять [права] | assert(secret, 'must have a secret'); |
| ошибка | Необходимо настроить параметр dir | заявлять [права] | assert(dir, 'dir must be configured') |
| ошибка | callback must be present | заявлять [права] | assert(callback, 'callback must be present') |
| ошибка | Требуется указать имя пользователя. | заявлять [права] | assert(options.username, 'username is required'); |
| ошибка | требуется пароль; | заявлять [права] | assert(options.password, 'password is required'); |
| ошибка | Требуется указать домен org | заявлять [права] | assert(options.org, 'org is required'); |
| ошибка | Требуется указать env. | заявлять [права] | assert(options.env, 'env is required'); |
| ошибка | Требуется runtimeUrl | заявлять [права] | assert(options.runtimeUrl, 'runtimeUrl is required'); |
| ошибка | Требуется указать mgmtUrl. | заявлять [права] | assert(options.mgmtUrl, 'mgmtUrl is required'); |
| ошибка | Требуется файл. | заявлять [права] | assert(options.file,"file is required") |
| ошибка | должен иметь цель; | заявлять [права] | assert(options.target, 'must have target'); |
| ошибка | Плагины не настроены | заявлять [права] | assert(config.edgemicro.plugins, 'plugins not configured'); |
| ошибка | Каталог плагинов не существует: + pluginDir | заявлять [права] | assert(fs.existsSync(pluginDir), 'plugin dir does not exist: ' + pluginDir); |
| ошибка | plugin dir is not a directory: + pluginDir (каталог плагинов не является каталогом: + pluginDir) | заявлять [права] | assert(stat.isDirectory(), 'plugin dir is not a directory: ' + pluginDir); |
| ошибка | error reading plugin dir: + pluginDir | заявлять [права] | assert(dirs, 'error reading plugin dir: ' + pluginDir); |
| ошибка | должен содержать токен; | заявлять [права] | assert(token, 'must have a token'); |
| ошибка | configpath не может быть пустым | заявлять [права] | assert(config, 'configpath can't be empty'); |
| ошибка | должен содержать ключ EDGEMICRO_KEY; | заявлять [права] | assert(key, 'must have EDGEMICRO_KEY'); |
| ошибка | должен содержать переменную EDGEMICRO_SECRET; | заявлять [права] | assert(secret, 'must have EDGEMICRO_SECRET'); |
| ошибка | Конфигурация не существует. | бросает; | связанные с файлом YAML; |
| ошибка | Похоже, edgemicro уже запущен. | console.error | попытка перезаписать файл .sock; |
| ошибка | Не удалось проверить изменения в конфигурации. Повторная попытка через | console.error | проблема с подключением к пограничному устройству; |
| ошибка | Если сервер не запущен, возможно, предыдущий запуск был завершен некорректно. | console.error | |
| ошибка | Не хватает %s. Запустите | console.error | Отсутствует (.*). Запустите |
| ошибка | Не удалось перезагрузить edgemicro | console.error | уровень команды; |
| ошибка | Не удалось остановить edgemicro | console.error | Уровень команды |
| ошибка | Попробуйте удалить " + ipcPath + " и начать заново" | console.error | |
| ошибка | 'cache configuration ' + cache + ' не существует. Выход.' | console.error | |
| ошибка | Не удалось записать файл конфигурации: | console.error | Настройка завершится неудачно |
| ошибка | Файл конфигурации не скачан: | console.error | Настройка завершится неудачно |
| ошибка | Не удалось запустить микросервис Edge | console.error | Он не должен работать |
| ошибка | edgemicro не запущен. | console.error | Проверьте, нет ли его в списке. |
| ошибка | Требуется указать env. | console.error | Переменные среды, необходимые для запуска |
| ошибка | error - editing apiproxy Callout.xml | console.error | Доступ к файлам |
| ошибка | error - editing apiproxy default.xml | console.error | Доступ к файлам |
| ошибка | Ошибка при проверке сертификата. Установка нового сертификата. | console.error | Невозможно использовать открытый ключ |
| ошибка | Ошибка при получении региона для организации | console.error | key-gen.js, cert-lib.js и private.js |
| ошибка | ошибка при загрузке учетных данных; | console.error | Не удается синхронизировать открытый ключ с Edge |
| ошибка | ошибка | console.error | key-gen.js |
| ошибка | Не удалось инициализировать файл configpath %s | console.error | Не загружается конфигурация |
| ошибка | Недопустимый ответ от API региона | console.error | key-gen.js, cert-lib.js и private.js |
| ошибка | Укажите ключ. | console.error | Параметр |
| ошибка | Требуется указать домен org | console.error | Параметр |
| ошибка | порт недоступен. | console.error | Параметр |
| ошибка | Требуется секрет. | console.error | Параметр |
| ошибка | Протокол URL не поддерживается: | console.error | Информация о конфигурации указывает на интернет-протокол, не входящий в область действия Edge Microgateway |
| ошибка | verifying analytics negative case: FAIL | console.error | Возможный сбой |
| ошибка | Проверка аналитики с полезной нагрузкой: НЕУДАЧА | console.error | Возможный сбой |
| ошибка | Проверка доступности URL начальной загрузки:СБОЙ | console.error | Возможный сбой |
| ошибка | verifying jwt_public_key availability: FAIL (проверка доступности jwt_public_key: НЕУДАЧА) | console.error | Возможный сбой |
| ошибка | Проверка наличия товаров: НЕУДАЧА | console.error | Возможный сбой |
| ошибка | Проверка квоты с настроенными продуктами: СБОЙ | console.error | Возможный сбой |
| предупреждать; | Не удалось получить конфигурацию от шлюза. Продолжаем работу, используя кешированную копию. | console.error | |
| предупреждать; | KVM уже существует в вашей организации | console.log | |
| предупреждать; | уже развернуто | console.log | |
| предупреждать; | Плагин с последовательным выполнением не найден: | console.warn | |
| предупреждать; | pluginDir %s не существует | console.log | pluginDir (.*) не существует |
Модуль microgateway-core |
|||
| ошибка | Конфигурация не инициализирована | заявлять [права] | assert(config, 'config not initialized') |
| ошибка | должен иметь конфигурацию; | заявлять [права] | assert(config, ' must have a config') |
| ошибка | обязательная конфигурация; | заявлять [права] | assert(config, 'must have config') |
| ошибка | В конфигурации должен быть указан идентификатор пользователя | заявлять [права] | assert(config.uid, 'config must have uid'); |
| ошибка | в конфигурации должен быть элемент config.edgemicro.logging | заявлять [права] | assert(logConfig, 'must have config.edgemicro.logging in config'); |
| ошибка | обязательный метод запроса; | заявлять [права] | assert(httpLibrary.request, 'must have request method'); |
| ошибка | плагин должен быть загружен в память; | заявлять [права] | assert(options.plugin, "must have plugin loaded in memory"); |
| ошибка | init должен быть функцией | заявлять [права] | assert(_.isFunction(options.plugin.init), 'init must be a function'); |
| ошибка | должно быть указано название плагина; | заявлять [права] | assert(options.pluginName, "must have plugin name"); |
| ошибка | игнорирование недопустимых обработчиков плагинов + название | заявлять [права] | assert(_.isObject(middleware), 'ignoring invalid plugin handlers ' + name); |
| ошибка | В параметрах должен быть указан файл конфигурации. | заявлять [права] | assert(config, 'options must contain config') |
| ошибка | У плагина должно быть название | заявлять [права] | assert(name,"plugin must have a name") |
| ошибка | name должно быть строкой | заявлять [права] | assert(_.isString(name),"name must be a string"); |
| ошибка | plugin должен быть функцией | заявлять [права] | assert(_.isFunction(plugin),"plugin must be a function(config,logger,stats){return {onresponse:function(req,res,data,next){}}}"); |
| ошибка | должен иметь ключ; | заявлять [права] | assert(key, 'must have a key'); |
| ошибка | должен иметь секрет; | заявлять [права] | assert(secret, 'must have a secret'); |
| ошибка | должен иметь каталог конфигурации источника; | заявлять [права] | assert(source, 'must have a source config directory'); |
| ошибка | Ошибка при загрузке плагина | console.error | Плагин не загружен |
| ошибка | не удалось обработать ошибку | обратный вызов | Функция HTTP-сервера on() |
| ошибка | Длина заголовка превышает допустимый размер. | Ошибка HTTP | Не запускает плагин |
| ошибка | Ответ получен до того, как можно было выполнить действие. | logger.error | Плагин Target не запускается |
| ошибка | Обработчик отправил сообщение об исключении | обратный вызов | Захват ошибки из плагина (catch) |
| ошибка | error starting edge micro | обратный вызов | Edge Microgateway не запускается |
| ошибка | plugin должен быть функцией | бросает; | |
| предупреждать; | console.error | предупреждает | ведение журнала; |
| предупреждать; | Ошибка targetRequest | вызвать обработку ошибок целевого объекта; | Ошибка клиента HTTP при подключении к целевому объекту |
| предупреждать; | Ошибка targetResponse | вызвать обработку ошибок целевого объекта; | Ошибка целевого сервера HTTP при подключении к целевому серверу, как показано в клиенте |
модуль microgateway-config |
|||
| ошибка | allow_message | заявлять [права] | assert(+config.quota.allow > 0, allow_message); |
| ошибка | Конфигурация не существует. | бросает; | YAML-файл конфигурации |
| ошибка | Файл конфигурации пуст. | бросает; | YAML-файл конфигурации |
| ошибка | config не является файлом | бросает; | YAML-файл конфигурации |
| ошибка | config is not defined (Конфигурация не определена) | заявлять [права] | assert(config, 'config is not defined'); |
| ошибка | Недопустимое значение параметра config.analytics.batchSize | заявлять [права] | assert(+config.analytics.batchSize > 0, 'config.analytics.batchSize is invalid'); |
| ошибка | config.analytics.batchSize не является числом | заявлять [права] | assert(typeof config.analytics.batchSize === 'number', 'config.analytics.batchSize is not a number'); |
| ошибка | Недопустимое значение параметра config.analytics.bufferSize | заявлять [права] | assert(+config.analytics.bufferSize > 0, 'config.analytics.bufferSize is invalid'); |
| ошибка | config.analytics.bufferSize не является числом | заявлять [права] | assert(typeof config.analytics.bufferSize === 'number', 'config.analytics.bufferSize is not a number'); |
| ошибка | Недопустимое значение config.analytics.flushInterval | заявлять [права] | assert(+config.analytics.flushInterval > 0, 'config.analytics.flushInterval is invalid'); |
| ошибка | config.analytics.flushInterval не является числом | заявлять [права] | assert(typeof config.analytics.flushInterval === 'number', 'config.analytics.flushInterval is not a number'); |
| ошибка | config.analytics.proxy не имеет значения dummy | заявлять [права] | assert(config.analytics.proxy === 'dummy', 'config.analytics.proxy is not "dummy"'); |
| ошибка | config.analytics.proxy не определено | заявлять [права] | assert(config.analytics.proxy, 'config.analytics.proxy is not defined'); |
| ошибка | config.analytics.proxy_revision не является числом | заявлять [права] | assert(typeof config.analytics.proxy_revision === 'number', 'config.analytics.proxy_revision is not a number'); |
| ошибка | Свойство config.analytics.proxy_revision не определено | заявлять [права] | assert(config.analytics.proxy_revision, 'config.analytics.proxy_revision is not defined'); |
| ошибка | config.analytics.source не равно "microgateway" | заявлять [права] | assert(config.analytics.source === 'microgateway', 'config.analytics.source is not "microgateway"'); |
| ошибка | config.analytics.source не определен | заявлять [права] | assert(config.analytics.source, 'config.analytics.source is not defined'); |
| ошибка | config.analytics.uri не является строкой | заявлять [права] | assert(typeof config.analytics.uri === 'string', 'config.analytics.uri is not a string'); |
| ошибка | config.analytics.uri не определено | заявлять [права] | assert(config.analytics.uri, 'config.analytics.uri is not defined'); |
| ошибка | config.apikeys.public_key не определено | заявлять [права] | assert(typeof config.apikeys.public_key === 'string', 'config.apikeys.public_key is not defined'); |
| ошибка | config.edge_config не определено | заявлять [права] | assert(config.edge_config, 'config.edge_config is not defined'); |
| ошибка | config.edge_config.bootstrap не определено | заявлять [права] | assert(config.edge_config.bootstrap, 'config.edge_config.bootstrap is not defined'); |
| ошибка | config.edge_config.jwt_public_key не определено | заявлять [права] | assert(config.edge_config.jwt_public_key, 'config.edge_config.jwt_public_key is not defined'); |
| ошибка | Если определен параметр config.edge_config.proxy_tunnel, необходимо также определить параметр config.edge_config.proxy. | заявлять [права] | assert(typeof config.edge_config.proxy !== 'undefined', 'config.edge_config.proxy must be defined if config.edge_config.proxy_tunnel is defined'); |
| ошибка | config.edge_config.proxy_tunnel не является логическим значением | заявлять [права] | assert(typeof config.edge_config.proxy_tunnel === 'boolean', 'config.edge_config.proxy_tunnel is not a boolean'); |
| ошибка | config.edge_config.refresh_interval не является числом | заявлять [права] | assert(typeof config.edge_config.refresh_interval === 'number', 'config.edge_config.refresh_interval is not a number'); |
| ошибка | config.edge_config.refresh_interval слишком мал (минимум 1 час) | заявлять [права] | assert(config.edge_config.refresh_interval >= 3600000, 'config.edge_config.refresh_interval is too small (min 1h)'); |
| ошибка | config.edge_config.retry_interval не является числом | заявлять [права] | assert(typeof config.edge_config.retry_interval === 'number', 'config.edge_config.retry_interval is not a number'); |
| ошибка | Значение config.edge_config.retry_interval слишком мало (минимальное значение – 5 с) | заявлять [права] | assert(config.edge_config.retry_interval >= 5000, 'config.edge_config.retry_interval is too small (min 5s)'); |
| ошибка | config.edgemicro не определено | заявлять [права] | assert(config.edgemicro, 'config.edgemicro is not defined'); |
| ошибка | config.edgemicro.logging не определено | заявлять [права] | assert(config.edgemicro.logging, 'config.edgemicro.logging is not defined'); |
| ошибка | config.edgemicro.logging.dir не определен | заявлять [права] | if (!config.edgemicro.logging.to_console) assert(config.edgemicro.logging.dir, 'config.edgemicro.logging.dir is not defined'); |
| ошибка | config.edgemicro.logging.level не определен | заявлять [права] | assert(config.edgemicro.logging.level, 'config.edgemicro.logging.level is not defined'); |
| ошибка | Параметр config.edgemicro.max_connections не является числом | заявлять [права] | assert(typeof config.edgemicro.max_connections === 'number', 'config.edgemicro.max_connections is not a number'); |
| ошибка | Свойство config.edgemicro.max_connections не определено | заявлять [права] | assert(config.edgemicro.max_connections, 'config.edgemicro.max_connections is not defined'); |
| ошибка | config.edgemicro.plugins.sequence не является массивом | заявлять [права] | assert(Array.isArray(config.edgemicro.plugins.sequence), 'config.edgemicro.plugins.sequence is not an array'); |
| ошибка | config.edgemicro.port не определено | заявлять [права] | assert(config.edgemicro.port, 'config.edgemicro.port is not defined'); |
| ошибка | config.oauth.allowInvalidAuthorization не определено | заявлять [права] | assert(typeof config.oauth.allowInvalidAuthorization === 'boolean', 'config.oauth.allowInvalidAuthorization is not defined'); |
| ошибка | config.oauth.allowNoAuthorization не определено | заявлять [права] | assert(typeof config.oauth.allowNoAuthorization === 'boolean', 'config.oauth.allowNoAuthorization is not defined'); |
| ошибка | config.oauth.public_key не определен | заявлять [права] | assert(typeof config.oauth.public_key === 'string', 'config.oauth.public_key is not defined'); |
| ошибка | config.oauthv2.public_key не определен | заявлять [права] | assert(typeof config.oauthv2.public_key === 'string', 'config.oauthv2.public_key is not defined'); |
| ошибка | config.proxies не определено | заявлять [права] | assert(config.proxies, 'config.proxies is not defined'); |
| ошибка | config.proxy[ + index + ].base_path не определено | заявлять [права] | assert(proxy.base_path, 'config.proxy[' + index + '].base_path is not defined'); |
| ошибка | config.proxy[ + index + ].max_connections не является числом | заявлять [права] | assert(typeof proxy.max_connections === 'number', 'config.proxy[' + index + '].max_connections is not a number'); |
| ошибка | config.proxy[ + index + ].max_connections не определено | заявлять [права] | assert(proxy.max_connections, 'config.proxy[' + index + '].max_connections is not defined'); |
| ошибка | config.proxy[ + index + ].name не определено | заявлять [права] | assert(proxy.name, 'config.proxy[' + index + '].name is not defined'); |
| ошибка | config.proxy[ + index + ].proxy_name не определено | заявлять [права] | assert(proxy.target_name, 'config.proxy[' + index + '].proxy_name is not defined'); |
| ошибка | config.proxy[ + index + ].revision не определено | заявлять [права] | assert(proxy.revision, 'config.proxy[' + index + '].revision is not defined'); |
| ошибка | config.proxy[ + index + ].url is not defined | заявлять [права] | assert(proxy.url, 'config.proxy[' + index + '].url is not defined'); |
| ошибка | config.quota.allow не является числом | заявлять [права] | assert(typeof config.quota.allow === 'number', 'config.quota.allow is not a number'); |
| ошибка | Свойство config.quota.allow не определено | заявлять [права] | assert(config.quota.allow, 'config.quota.allow is not defined'); |
| ошибка | config.quota.interval не является числом | заявлять [права] | assert(typeof config.quota.interval === 'number', 'config.quota.interval is not a number'); |
| ошибка | config.quota.interval не определено | заявлять [права] | assert(config.quota.interval, 'config.quota.interval is not defined'); |
| ошибка | config.spikearrest не определено | заявлять [права] | assert(config.spikearrest, 'config.spikearrest is not defined'); |
| ошибка | Параметр config.spikearrest.allow имеет недопустимое значение | заявлять [права] | assert(+config.spikearrest.allow > 0, 'config.spikearrest.allow is invalid'); |
| ошибка | config.spikearrest.allow не является числом | заявлять [права] | assert(typeof config.spikearrest.allow === 'number', 'config.spikearrest.allow is not a number'); |
| ошибка | config.spikearrest.allow не определено | заявлять [права] | assert(config.spikearrest.allow, 'config.spikearrest.allow is not defined'); |
| ошибка | Недопустимое значение параметра config.spikearrest.bufferSize | заявлять [права] | assert(+config.spikearrest.bufferSize > 0, 'config.spikearrest.bufferSize is invalid'); |
| ошибка | config.spikearrest.bufferSize не является числом | заявлять [права] | assert(typeof config.spikearrest.bufferSize === 'number', 'config.spikearrest.bufferSize is not a number'); |
| ошибка | config.spikearrest.timeUnit не определено | заявлять [права] | assert(config.spikearrest.timeUnit, 'config.spikearrest.timeUnit is not defined'); |
| ошибка | КРИТИЧЕСКАЯ ОШИБКА: ошибка при обработке скачанного списка товаров | обратный вызов | |
| ошибка | КРИТИЧЕСКАЯ ОШИБКА: ошибка при анализе скачанного списка прокси-серверов | обратный вызов | |
| ошибка | ОШИБКА НЕПРАВИЛЬНОЙ НАСТРОЙКИ ТОВАРА | console.error | Затем console.warn('using old cached configuration'); |
| ошибка | Ошибка при чтении конфигурации из | бросает; | YAML-файл конфигурации |
| ошибка | Не удалось сохранить конфигурацию в | обратный вызов | YAML-файл конфигурации |
| ошибка | fatal: cached config not available, unable to continue (фатальная ошибка: кешированная конфигурация недоступна, продолжить невозможно) | обратный вызов | |
| ошибка | interval_message | заявлять [права] | assert(+config.quota.interval > 0, interval_message); |
| ошибка | Недопустимый протокол для config.edge_config.proxy (ожидается http: или https:: + proxy_url.protocol) | заявлять [права] | assert(proxy_url.protocol === 'http:' || proxy_url.protocol === 'https:', 'invalid protocol for config.edge_config.proxy (expected http: or https:): ' + proxy_url.protocol); |
| ошибка | Недопустимый хост прокси-сервера для config.edge_config.proxy | заявлять [права] | assert(proxy_url.hostname, 'invalid proxy host for config.edge_config.proxy: ' + proxy_url.hostname); |
| ошибка | Похоже, Edge Micro не настроен. См. руководство администратора. | обратный вызов | Результат: не удалось загрузить конфигурацию |
| ошибка | отсутствует ключ; | заявлять [права] | assert(keys.key, 'key is missing'); |
| ошибка | обязательно должен быть указан configDir; | заявлять [права] | assert(configDir, 'must have configDir') |
| ошибка | обязательные варианты; | заявлять [права] | assert(options, 'must have options'); |
| ошибка | должен иметь источник; | заявлять [права] | assert(source, 'must have source') |
| ошибка | должен иметь источник для загрузки; | заявлять [права] | assert(options.source, 'must have source to load from') |
| ошибка | обязательно должен быть указан targetFile; | заявлять [права] | assert(fileName, 'must have targetFile') |
| ошибка | Параметры не могут быть нулевыми. | заявлять [права] | assert(options, 'options cannot be null'); |
| ошибка | options.keys не может быть нулевым | заявлять [права] | assert(options.keys, 'options.keys cannot be null'); |
| ошибка | port_message | заявлять [права] | assert(+config.edgemicro.port < 65536, port_message); |
| ошибка | products должен быть массивом | заявлять [права] | assert(Array.isArray(products), 'products should be an array'); |
| ошибка | "proxies for product ' + product + ' should be an array" (Прокси для товара "[название товара]" должны быть массивом). | заявлять [права] | assert(Array.isArray(product.proxies), 'proxies for product ' + product + ' should be an array'); |
| ошибка | Отсутствует секрет | заявлять [права] | assert(keys.secret, 'secret is missing'); |
| ошибка | Цель не задана | заявлять [права] | assert(target, 'target is not set'); |
| предупреждать; | Не удалось скачать конфигурацию. Проверьте конфигурацию начальной загрузки. | console.warn | |
| предупреждать; | Не удалось скачать открытый ключ JWT | console.warn | |
| предупреждать; | Ключи JWK не включены | console.warn | |
| предупреждать; | message, 'download from', url, 'returned' | console.warn | Искать: (.*)\sdownload from\s(.*)\sreturned |
| предупреждать; | В ответе не найдены микропродукты Edge | console.warn | |
| предупреждать; | В организации не найдены микропрокси-серверы Edge | console.warn | |
| предупреждать; | В ответе не найдены прокси-серверы микросервисов на границе сети | console.warn | |
| предупреждать; | В организации не найдены продукты | console.warn | |
| предупреждать; | В ответе не найдены товары | console.warn | |
| предупреждать; | используя старую конфигурацию из кеша; | console.warn | |
Модуль microgateway-plugins |
|||
| ошибка | Конфигурация не существует. | бросает; | Связанные с файлом YAML |
| ошибка | apikey | HTTP-ответ | Сбои в плагине apiky |
| ошибка | bauth | HTTP-ответ | Сбои в плагине bauth |
| ошибка | extauth | HTTP-ответ | Сбои в работе плагина extauth |
| ошибка | OAuth | HTTP-ответ | Сбои в плагине OAuth |
| предупреждать; | При обработке данных аналитики Apigee произошла ошибка. Разрешение на продолжение обработки запроса | logger.error | |
| предупреждать; | игнорирование ошибки; | console.warn | Плагины apikeys, oauth и oauthv2 |
| предупреждать; | Ошибка при анализе JWT: | console.warn | |
| предупреждать; | В объекте ответа OAuth отсутствует setHeader | console.warn | Ошибка параметра oauth означает, что некоторые ошибки не будут регистрироваться. |
| предупреждать; | Объект ответа OAuth не предоставляется во время выполнения | console.warn | Ошибка параметра OAuth |
| предупреждать; | Объект статистики OATH не предоставляется средой выполнения | console.warn | Ошибка параметра OAuth |
Модуль apigeetool-node |
|||
| ошибка | Не удалось удалить кеш с кодом статуса %d', res.statusCode | обратный вызов | Возникает в deletecache.js. Код статуса из Apigee Edge. Передает в обратный вызов ошибку трассировки стека с этим сообщением: done(new Error(errMsg)); |
| ошибка | Не удалось удалить товар с кодом статуса %d', res.statusCode | обратный вызов | Возникает в файле deleteproduct.js. Код статуса из Apigee Edge. Передает в обратный вызов ошибку трассировки стека с этим сообщением: done(new Error(errMsg)); |
| ошибка | Необходимо указать все три параметра: org, api и revision. | обратный вызов | Вызвано в fetchproxy.js. Ошибка конфигурации. |
| ошибка | При получении прокси-сервера произошла ошибка %d: %j | обратный вызов | Вызвано в fetchproxy.js. Код статуса отличается от 200. |
| ошибка | Не удалось создать приложение с кодом статуса %d | обратный вызов | Возникает в createapp.js. Передает все ошибки в обратные вызовы в виде ошибок трассировки стека. Не выводит данные в консоль и не создает записи в журнале. |
| ошибка | Команда + " завершилась с кодом статуса %d | обратный вызов | Возникает в command-utils.js. Для любой команды, которая анализируется и передается в этот модуль, любой код, отличный от 200 или 201, будет генерировать сообщение об ошибке. Форматирует сообщение, но не печатает его. Передает ошибку трассировки стека с сообщением обратно в обратные вызовы. |
| ошибка | При получении общего процесса возникла ошибка %d: %s | обратный вызов | Возникает в fetchsharedflow.js. Для любого статуса HTTP, кроме 200. Если операция выполнится успешно, но не удастся записать файл, в консоль будет выведено следующее сообщение: Не удалось записать файл Текст ошибки: [stack_trace_error] |
| ошибка | Не удалось создать KeySecret. Код статуса: %d', res.statusCode | обратный вызов | Возникает в createappkey.js. Для кодов статуса HTTP из Apigee Edge, отличных от 200 или 201. |
| ошибка | Не удалось создать кеш. Код статуса: %d', res.statusCode | обратный вызов | Возникает в createcache.js. Для кодов статуса HTTP из Apigee Edge, которые не равны 200 или 201. |
| ошибка | Не удалось создать продукт с кодом статуса %d', res.statusCode | обратный вызов | Возникает в файле createproduct.js. Для кодов статуса HTTP из Apigee Edge, отличных от 201. Если статус HTTP – 201, но в ответе есть JSON с ошибкой, этот JSON пересылается в обратный вызов. |
| ошибка | Не удалось удалить приложение с кодом статуса %d', res.statusCode | обратный вызов | Возникает в файле deleteapp.js. Для кодов статуса HTTP из Apigee Edge, отличных от 200. Если статус HTTP – 200, но в ответе есть ошибка JSON, она пересылается в функцию обратного вызова. |
| ошибка | Не удалось создать аккаунт разработчика. Код статуса: %d', res.statusCode | обратный вызов | Возникает в createdeveloper.js. Для кодов статуса HTTP из Apigee Edge, отличных от 201. Если статус HTTP – 201, но в ответе есть JSON с ошибкой, этот JSON пересылается в обратный вызов. |
| ошибка | Не удалось удалить разработчика с кодом статуса %d', res.statusCode | обратный вызов | Возникает в файле deletedeveloper.js. Для кодов статуса HTTP из Apigee Edge, отличных от 200. Если статус HTTP – 200, но в ответе есть ошибка JSON, она пересылается в функцию обратного вызова. |
Ошибки плагинов
accesscontrol plug-in
This section describes the error codes and messages that are returned by the
accesscontrol plug-in with descriptions of possible causes.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| Not printed | Forbidden | 403 | Access control rule |
accumulate-request plug-in
This section describes the error codes and messages that are returned by the
accumulate-request plug-in with descriptions of possible causes.
No errors generated.
accumulate-resopnse plug-in
This section describes the error codes and messages that are returned by the
accumulate-response plug-in with descriptions of possible causes.
No errors generated.
analytics plug-in
This section describes the error codes and messages that are returned by the
analytics plug-in with descriptions of possible causes.
Errors encountered processing Apigee analytics are written to the Edge Microgateway log. Edge Microgateway processing continues.
apikeys plug-in
This section describes the error codes and messages that are returned by the
apikeys plug-in with descriptions of possible causes.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| invalid_request | Invalid Request | 400 | allowNoAuthorization == false
No Authorization header in the HTTP request allowOAuthOnly == true |
| invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header. |
| access_denied | Copy service message | 403 | In response to the auth service timeout |
| missing_authorization | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization |
| invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
| gateway_timeout | Copy service message | 504 | In response to the auth timeout |
| default | 500 | All other not categorized |
bauth plug-in
This section describes the error codes and messages that are returned by the
bauth plug-in with descriptions of possible causes.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| missing_authorization | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization |
| invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
| gateway_timeout | Copy service message | 504 | In response to the auth timeout |
| default | 500 | All other not categorized |
cloud-foundry-route-service plug-in
This section describes the error codes and messages that are returned by the
cloud-foundry-route-service plug-in with descriptions of possible causes.
No errors generated.
cors plug-in
This section describes the error codes and messages that are returned by the
cors plug-in with descriptions of possible causes.
No errors generated.
eurekaclient plug-in
This section describes the error codes and messages that are returned by the
eurekaclient plug-in with descriptions of possible causes.
The eurekaclient plug-in throws a few console errors only, including a stack trace error on failed start and a warning about the target endpoint from Eureka not found.
extauth plug-in
This section describes the error codes and messages that are returned by the
extauth plug-in with descriptions of possible causes.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| invalid_request | Invalid Request | 400 | allowNoAuthorization == false
No Authorization header in the HTTP request allowOAuthOnly == true |
| invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header. |
| access_denied | Copy service message | 403 | In response to the auth service timeout |
| missing_authorization | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization |
| invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
| gateway_timeout | Copy service message | 504 | In response to the auth timeout |
| default | 500 | All other not categorized |
header-uppercase plug-in
This section describes the error codes and messages that are returned by the
header-uppercase plug-in with descriptions of possible causes.
No errors generated.
healthcheck plug-in
This section describes the error codes and messages that are returned by the
healthcheck plug-in with descriptions of possible causes.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| 503 | Too busy. No messages in HTTP or console | ||
| default | Application is not running on specified application port | 500 | All other not categorized |
invalidHeader plug-in
This section describes the error codes and messages that are returned by the
invalidHeader plug-in with descriptions of possible causes.
No errors generated.
json2xml plug-in
This section describes the error codes and messages that are returned by the
json2xml plug-in with descriptions of possible causes.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| default | 500 | All other not categorized |
monitor plug-in
This section describes the error codes and messages that are returned by the
monitor plug-in with descriptions of possible causes.
No errors generated.
oauth plug-in (v1)
This section describes the error codes and messages that are returned by the
oauth plug-in (v1) with descriptions of possible causes.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| invalid_request | Invalid Authorization Header | 400 |
|
| invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header. |
| Access_denied | Copy service message | 403 | In response to the auth service timeout |
| invalid_token | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization is set |
| invalid_token | token could not be parsed | 401 | allowAPIKeyOnly == true
Bad token delivered |
| missing_authorization | Missing Authorization header | 401 | allowNoAuthorization == false
Authorization-header in HTTP allowOAuthOnly == true |
| invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
| gateway_timeout | Copy service message | 504 | In response to the auth timeout |
| default | 500 | All other uncategorized responses |
oauthv2 plug-in
This section describes the error codes and messages that are returned by the
oauthv2 plug-in with descriptions of possible causes.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| invalid_request | Invalid Authorization Header | 400 |
|
| invalid_request | API Key Verification URL not configured | 400 | Verification API service not in header |
| access_denied | Copy service message | 403 | In response to the auth service timeout |
| invalid_token | Missing API Key header | 401 | allowAPIKeyOnly == true
Unless allowInvalidAuthorization is set |
| invalid_token | token could not be parsed | 401 | allowAPIKeyOnly == true
Bad token delivered |
| missing_authorization | Missing Authorization header | 401 | allowNoAuthorization == false
Authorization-header in HTTP allowOAuthOnly == true |
| invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
| gateway_timeout | Copy service message | 504 | In response to the auth timeout |
| default | 500 | All other uncategorized responses |
quota plug-in
This section describes the error codes and messages that are returned by the
quota plug-in with descriptions of possible causes.
Defers to volos quota/apigee.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
| gateway_timeout | Not authorized to call the remote proxy. Check the "key" parameter. | 404 | In response to the auth timeout |
| default | 500 | All other not categorized | |
| throw | uri parameter must be specified | apigeequota.js | |
| throw | key parameter must be specified | apigeequota.js | |
| callback | Apigee Remote Proxy not found at: ' + self.uri + '. Check your configuration | apigeequota.js | |
| callback | HTTP error getting proxy version: %d. Check the "uri" parameter. | apigeequota.js | |
| callback | Quotas with a fixed starting time are not supported | apigeequota.js | |
| callback | Error updating remote quota: %d %s', resp.statusCode, body | apigeequota.js |
If there is an error on an entry in the product list, the product list will stop being processed.
quota-memory plug-in
This section describes the error codes and messages that are returned by the
quota-memory plug-in with descriptions of possible causes.
Defers to volos quota/apigee.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| invalid_authorization | Invalid Authorization header | 401 | allowOAuthOnly == true
Authorization-header not in HTTP |
| gateway_timeout | Not authorized to call the remote proxy. Check the "key" parameter. | 404 | In response to the auth timeout |
| default | 500 | All other not categorized | |
| throw | start time not allowed for month time units | quota.js. volos error on time format. | |
| throw | Invalid start time %s | quota.js. volos error on time format. | |
| throw | Invalid timeUnit %s | quota.js. volos error on time format. |
If there is an error on an entry in the product list, the product list will stop being processed.
spikearrest plug-in
This section describes the error codes and messages that are returned by the
spikearrest plug-in with descriptions of possible causes.
Defers to volos spikearrest/memory.
| Error | Message | HTTP status | Possible Causes |
|---|---|---|---|
| SpikeArrest engaged | 503 | Traffic spike. This is expected behavior. | |
| throw | Invalid timeUnit %s | spikearrest.js | |
| callback | key must be a string | spikearrest.js | |
| throw | %s must be a number', name | spikearrest.js |
transform-uppercase plug-in
This section describes the error codes and messages that are returned by the
transform-uppercase plug-in with descriptions of possible causes.
No errors generated.