您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件。 資訊
本主題說明您可能會使用 Edge Microgateway 的錯誤和警告。
一般應用程式錯誤
「HTTP 500, failed in errorHandler」:大多數錯誤都會包含這個數字,以及某些目標傳回的錯誤。特別是,microgateway-core 模組會使用 error-middleware.js。使用時,系統會使用 Edge Microgateway
logger object: logger.error(err, 'failed in error handler');
將 statusCodes 寫入記錄。針對從 100 到 300 之間的程式碼,error-middleware.js 會將 statusCode 重寫為 500,以便返回用戶端。HTTP 404 - 您可能會看到這個狀態做為堆疊追蹤,並附有
no match found for [API_path_name]
訊息。
模組錯誤和警告
您可以使用這項資訊來設定快訊,以監控及管理 Edge Microgateway 部署作業。
「Handler」(處理常式) 底下的錯誤參考資料中包含下列字詞,說明系統如何處理 Edge Microgateway 中的各項錯誤。
- assert:通常宣告評估失敗時,Edge Microgateway 就會停止。不過,不一定每次都會如此,因為「斷言」會擲回可能偵測到的例外狀況。
- throws:系統可能停止。
- 回呼:錯誤會傳遞至回呼,且系統可能會繼續。
類型 | 訊息 | Handler | 附註 |
---|---|---|---|
微閘道模組 |
|||
錯誤 | 必須提供機構 | 斷言 | 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") |
錯誤 | 必須提供機構 | 斷言 | 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") |
錯誤 | 必須提供機構 | 斷言 | assert(options.org,"org is required"); |
錯誤 | 必須選取 env | 斷言 | assert(options.env,"env is required") |
錯誤 | 必須提供機構 | 斷言 | 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'); |
錯誤 | 必須提供機構 | 斷言 | assert(options.org, 'org is required'); |
錯誤 | 必須選取 env | 斷言 | assert(options.env, 'env is required'); |
錯誤 | 都必須有指定的 目標檔案 | 斷言 | assert(targetFile, '必須具有指派的目標檔案') |
錯誤 | 必須有索引鍵 | 斷言 | assert(key, '必須擁有一個鍵'); |
錯誤 | 必須提供密鑰 | 斷言 | assert(secret, ' must have aSecret'); |
錯誤 | 必須先設定 dir | 斷言 | assert(dir, '必須先設定目錄') |
錯誤 | 回呼必須存在 | 斷言 | assert(回呼, '回呼必須存在') |
錯誤 | 必須提供使用者名稱 | 斷言 | assert(options.username, 'username is required'); |
錯誤 | 必須輸入密碼 | 斷言 | assert(options.password, 'password is required'); |
錯誤 | 必須提供機構 | 斷言 | 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") |
錯誤 | 必須有目標 | 斷言 | assert(options.target, 'must have target'); |
錯誤 | 未設定外掛程式 | 斷言 | assert(config.edgemicro.plugins, 'plugins not 完成設定'); |
錯誤 | pluginDir 外掛程式不存在:+ pluginDir | 斷言 | assert(fs.existsSync(pluginDir), 'plugin dir 不存在: ' + pluginDir); |
錯誤 | Plugin dir 不是目錄:+ pluginDir | 斷言 | assert(stat.isDirectory(), 'plugin dir is not a directory: ' + pluginDir); |
錯誤 | 讀取外掛程式 dir: + pluginDir 時發生錯誤 | 斷言 | assert(dirs, 'error read plugin dir: ' + pluginDir); |
錯誤 | 必須有權杖 | 斷言 | assert(token, 's have a token'); |
錯誤 | configpath 不得留空 | 斷言 | assert(config, 'configpath can’t be empty'); |
錯誤 | 必須具備 EDGEMICRO_KEY | 斷言 | assert(key, '必須擁有 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 | |
錯誤 | 「快取設定」 + 快取 + ' 不存在。即將退出。 | console.error | |
錯誤 | 無法寫入設定檔: | console.error | 設定失敗 |
錯誤 | 設定檔無法下載: | console.error | 設定失敗 |
錯誤 | 無法啟動 Edge micro | console.error | 不應在 |
錯誤 | Edgemicro 目前未運作。 | console.error | 不應列出檢查程序 |
錯誤 | 必須選取 env | console.error | 執行所需的環境變數 |
錯誤 | 錯誤 - 編輯 apiproxy callout.xml | console.error | 檔案存取權 |
錯誤 | 錯誤 - 編輯 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 | 參數 |
錯誤 | 必須提供機構 | console.error | 參數 |
錯誤 | 則無法使用通訊埠。 | console.error | 參數 |
錯誤 | 必須提供 Secret | console.error | 參數 |
錯誤 | 不支援此網址通訊協定: | console.error | 設定資訊指出某個網際網路通訊協定不在 Edge Microgateway 的範圍內 |
錯誤 | 驗證 Analytics (分析) 陰性案例:失敗 | console.error | 可能當機/失敗 |
錯誤 | 使用酬載驗證數據分析:失敗 | console.error | 可能當機/失敗 |
錯誤 | 確認啟動網址可用性:FAIL | console.error | 可能當機/失敗 |
錯誤 | 驗證 jwt_public_key 可用性:FAIL | 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 初始化') |
錯誤 | 必須有設定 | 斷言 | assert(config, '必須含有設定') |
錯誤 | 都必須設定 | 斷言 | assert(config, '必須具有 config') |
錯誤 | 設定必須擁有 uid | 斷言 | assert(config.uid, 'config must have uid'); |
錯誤 | 設定中必須含有 config.edgemicro.logging | 斷言 | assert(logConfig, '必須包含 config.edgemicro.logging in config'); |
錯誤 | 必須具備要求方法 | 斷言 | assert(httpLibrary.request, 'must have request method'); |
錯誤 | 必須在記憶體 | 斷言 | assert(options.plugin, "必須載入記憶體中的外掛程式"); |
錯誤 | init 必須是函式 | 斷言 | assert(_.isFunction(options.plugin.init), 'init is a function'); |
錯誤 | 必須有外掛程式名稱 | 斷言 | assert(options.pluginName, "must have plugin name"); |
錯誤 | 忽略無效的外掛程式處理常式 + 名稱 | 斷言 | assert(_.isObject(中介軟體), 「忽略無效的外掛程式處理常式」+ name); |
錯誤 | 選項必須包含 | 斷言 | assert(config, '選項必須包含 config') |
錯誤 | 外掛程式的名稱 | 斷言 | assert(name,"plugin 必須具有名稱") |
錯誤 | 名稱必須是字串 | 斷言 | assert(_.isString(name),"name 必須是字串"); |
錯誤 | 外掛程式必須為函式 | 斷言 | assert(_.isFunction(plugin),"外掛程式必須是一個函式(config,logger,stats){return {onresponse:function(req,res,data,next){}}}"); |
錯誤 | 必須有索引鍵 | 斷言 | assert(key, '必須擁有一個鍵'); |
錯誤 | 必須提供密鑰 | 斷言 | assert(secret, ' must have aSecret'); |
錯誤 | 必須具備來源設定目錄 | 斷言 | assert(source, 's have a source config Directory'); |
錯誤 | 載入外掛程式時發生錯誤 | console.error | 未載入外掛程式 |
錯誤 | 失敗處理常式失敗 | 回呼 | HTTP server.on() 函式 |
錯誤 | 標題長度超過允許的大小上限 | HTTP 錯誤 | 不執行外掛程式 |
錯誤 | 在工作尚未處理完成前已完成回應 | logger.error | 無法執行目標外掛程式 |
錯誤 | 處理常式擲回例外狀況 | 回呼 | 從外掛程式擷取錯誤 (catch) |
錯誤 | 啟動 Edge Microcros 時發生錯誤 | 回呼 | Edge Microgateway 無法啟動 |
錯誤 | 外掛程式必須為函式 | 擲回 | |
警告 | console.error | 警告 | 記錄檔寫入 |
警告 | targetRequest 錯誤 | 叫用目標錯誤處理機制 | 與目標連線時發生 HTTP 用戶端錯誤 |
警告 | targetResponse 錯誤 | 叫用目標錯誤處理機制 | 與用戶端中顯示的目標連線發生 HTTP 目標伺服器錯誤 |
microgateway-config 模組 |
|||
錯誤 | allow_message | 斷言 | assert(+config.quota.allow > 0, allow_message); |
錯誤 | 設定不存在 | 擲回 | 設定 yaml 檔案 |
錯誤 | 設定中沒有內容 | 擲回 | 設定 yaml 檔案 |
錯誤 | 設定檔不是檔案 | 擲回 | 設定 yaml 檔案 |
錯誤 | 未定義 Config | 斷言 | assert(config, 'config 未定義'); |
錯誤 | 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 不是數字'); |
錯誤 | 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 不是數字'); |
錯誤 | 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 不是「dummy」'); |
錯誤 | 未定義 config.analytics.proxy | 斷言 | assert(config.analytics.proxy, 'config.analytics.proxy not 定義'); |
錯誤 | config.analytics.proxy_revision 不是數字 | 斷言 | assert(typeof config.analytics.proxy_revision === 'number', 'config.analytics.proxy_revision 不是數字'); |
錯誤 | 未定義 config.analytics.proxy_revision | 斷言 | assert(config.analytics.proxy_revision, 'config.analytics.proxy_revision notdefined'); |
錯誤 | config.analytics.source 不是「microgateway」 | 斷言 | assert(config.analytics.source === 'microgateway', 'config.analytics.source 不是 "microgateway"'); |
錯誤 | 未定義 config.analytics.source | 斷言 | assert(config.analytics.source, 'config.analytics.source 未定義'); |
錯誤 | config.analytics.uri 不是字串 | 斷言 | assert(typeof config.analytics.uri === 'string', 'config.analytics.uri 不是字串'); |
錯誤 | 未定義 config.analytics.uri | 斷言 | assert(config.analytics.uri, 'config.analytics.uri not 定義'); |
錯誤 | 未定義 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 未定義'); |
錯誤 | 未定義 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 未定義'); |
錯誤 | 如果已定義 config.edge_config.proxy_tunnel,就必須定義 config.edge_config.proxy | 斷言 | assert(typeof config.edge_config.proxy !== 'undefined', 'config.edge_config.proxy, 在已定義 config.edge_config.proxy_tunnel 時必須定義'); |
錯誤 | config.edge_config.proxy_tunnel 不是布林值 | 斷言 | assert(typeof config.edge_config.proxy_tunnel === 'boolean', 'config.edge_config.proxy_tunnel 不是 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」過小 (至少 1h)'); |
錯誤 | config.edge_config.retry_interval 不是數字 | 斷言 | assert(typeof config.edge_config.retry_interval === 'number', 'config.edge_config.retry_interval 不是數字'); |
錯誤 | config.edge_config.retry_interval 太小 (至少 5 秒) | 斷言 | assert(config.edge_config.retry_interval >= 5000, 'config.edge_config.retry_interval 太小 (至少 5 秒)'); |
錯誤 | 未定義 config.edgemicro | 斷言 | assert(config.edgemicro, 'config.edgemicro 未定義) |
錯誤 | 未定義 config.edgemicro.logging | 斷言 | assert(config.edgemicro.logging, 'config.edgemicro.logging not 定義'); |
錯誤 | 未定義 config.edgemicro.logging.dir | 斷言 | if (!config.edgemicro.logging.to_console) assert(config.edgemicro.logging.dir, 'config.edgemicro.logging.dir notdefined'); |
錯誤 | 未定義 config.edgemicro.logging.level | 斷言 | assert(config.edgemicro.logging.level, 'config.edgemicro.logging.level not 定義'); |
錯誤 | config.edgemicro.max_connections 不是數字 | 斷言 | assert(typeof config.edgemicro.max_connections === 'number', 'config.edgemicro.max_connections 不是數字'); |
錯誤 | 未定義 config.edgemicro.max_connections | 斷言 | assert(config.edgemicro.max_connections, 'config.edgemicro.max_connections 未定義'); |
錯誤 | config.edgemicro.plugins.sequence 不是陣列 | 斷言 | assert(Array.isArray(config.edgemicro.plugins.sequence), 'config.edgemicro.plugins.sequence 並非陣列'); |
錯誤 | 未定義 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 未定義'); |
錯誤 | 未定義 config.oauth.allowNoAuthorization | 斷言 | assert(typeof config.oauth.allowNoAuthorization === 'boolean', 'config.oauth.allowNoAuthorization 未定義'); |
錯誤 | 未定義 config.oauth.public_key | 斷言 | assert(typeof config.oauth.public_key === 'string', 'config.oauth.public_key'未定義'); |
錯誤 | 未定義 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 未定義'); |
錯誤 | 未定義 config.proxy[ + index + ].base_path | 斷言 | assert(proxy.base_path, 'config.proxy[' + index + '].base_path 未定義'); |
錯誤 | config.proxy[ + index + ].max_connections 並非數字 | 斷言 | assert(typeof Proxy.max_connections === '數字', 'config.proxy[' + index + '].max_connections 不是數字'); |
錯誤 | 未定義 config.proxy[ + index + ].max_connections | 斷言 | assert(proxy.max_connections, 'config.proxy[' + index + '].max_connections 未定義) |
錯誤 | 未定義 config.proxy[ + index + ].name | 斷言 | assert(proxy.name, 'config.proxy[' + index + '].name 未定義'); |
錯誤 | 未定義 config.proxy[ + index + ].proxy_name | 斷言 | assert(proxy.target_name, 'config.proxy[' + index + '].proxy_name 未定義'); |
錯誤 | 未定義 config.proxy[ + index + ].revision | 斷言 | assert(proxy.revision, 'config.proxy[' + index + '].revision 未定義') |
錯誤 | 未定義 config.proxy[ + index + ].url | 斷言 | assert(proxy.url, 'config.proxy[' + index + '].url 未定義'); |
錯誤 | config.quota.allow 不是數字 | 斷言 | assert(typeof config.quota.allow === 'number', 'config.quota.allow 不是數字'); |
錯誤 | 未定義 config.quota.allow | 斷言 | assert(config.quota.allow, 'config.quota.allow) 未定義'); |
錯誤 | config.quota.interval 不是數字 | 斷言 | assert(typeof config.quota.interval === 'number', 'config.quota.interval is is a number'); |
錯誤 | 未定義 config.quota.interval | 斷言 | assert(config.quota.interval, 'config.quota.interval is not defined'); |
錯誤 | 未定義 config.spikearrest | 斷言 | assert(config.spikearrest, 'config.spikearrest' is notdefined'); |
錯誤 | 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 不是數字'); |
錯誤 | 未定義 config.spikearrest.allow | 斷言 | assert(config.spikearrest.allow, 'config.spikearrest.allow not 定義'); |
錯誤 | 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 未定義'); |
錯誤 | 嚴重錯誤:剖析下載的產品清單時發生錯誤 | 回呼 | |
錯誤 | 嚴重錯誤:剖析下載的 Proxy 清單時發生錯誤 | 回呼 | |
錯誤 | 偵測到產品設定有誤的錯誤 | console.error | 遵循 console.warn('使用舊的快取設定'); |
錯誤 | 從 | 擲回 | 設定 yaml 檔案 |
錯誤 | 將設定儲存至 | 回呼 | 設定 yaml 檔案 |
錯誤 | fatal:無法使用快取設定,無法繼續 | 回呼 | |
錯誤 | interval_message | 斷言 | assert(+config.quota.interval > 0, 間隔_message); |
錯誤 | config.edge_config.proxy 的通訊協定無效 (預期 http: 或 https:: + Proxy_url.protocol) | 斷言 | assert(proxy_url.protocol === 'http:' || Proxy_url.protocol === 'https:', '無效的通訊協定 config.edge_config.proxy (預期 http: 或 https:):' + Proxy_url.protocol); |
錯誤 | config.edge_config.proxy 的無效 Proxy 主機 | 斷言 | assert(proxy_url.hostname, 'invalid Proxy host for config.edge_config.proxy: ' + Proxy_url.hostname); |
錯誤 | 似乎尚未設定 Edge micro,請參閱管理員指南 | 回呼 | 結果:無法載入設定 |
錯誤 | 缺少鍵 | 斷言 | assert(keys.key, '找不到金鑰'); |
錯誤 | 必須具備 configDir | 斷言 | assert(configDir, '必須有 configDir') |
錯誤 | 必須有選項 | 斷言 | assert(選項, '必須有選項'); |
錯誤 | 必須有來源 | 斷言 | assert(source, 's have source') |
錯誤 | 必須有一定來源的 | 斷言 | assert(options.source, 'must have source to load from') |
錯誤 | 必須具備 targetFile | 斷言 | assert(fileName, '必須有 targetFile') |
錯誤 | 選項不得為空值 | 斷言 | assert(options, 'options cannot be null'); |
錯誤 | options.keys 不得為空值 | 斷言 | assert(options.keys, 'options.keys cannot null'); |
錯誤 | port_message | 斷言 | assert(+config.edgemicro.port < 65536, port_message); |
錯誤 | 產品應為陣列 | 斷言 | assert(Array.isArray(products), '產品應該是陣列'); |
錯誤 | 「產品 + 產品 + 的 Proxy 應為陣列」 | 斷言 | assert(Array.isArray(product.proxies),「proxies for product 」 + product + ' is a 陣列'); |
錯誤 | 缺少密鑰 | 斷言 | assert(keys.secret, 'Secret is missing'); |
錯誤 | 未設定目標 | 斷言 | assert(target, '目標未設定') |
警告 | 下載設定時發生錯誤,請檢查 Bootstrap 設定 | console.warn | |
警告 | 無法下載 jwt_public_key | console.warn | |
警告 | 未啟用 jwk 金鑰 | console.warn | |
警告 | 訊息, 'download from', url, 'returned' | console.warn | 搜尋:(.*)\sdownload from\s(.*)\sreturned |
警告 | 回應中找不到任何邊緣微產品 | console.warn | |
警告 | 在機構中找不到邊緣微型 Proxy | console.warn | |
警告 | 回應中沒有邊緣微型 Proxy | 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 | |
警告 | 忽略 err | console.warn | apikeys、OAuth 和 oauthv2 外掛程式 |
警告 | 剖析 jwt 時發生錯誤: | console.warn | |
警告 | Oath 回應物件缺少 setHeader | console.warn | OAuth 參數錯誤表示不會回報某些錯誤。 |
警告 | 執行階段未提供 Oath 回應物件 | console.warn | OAuth 參數錯誤 |
警告 | 執行階段未提供 OathStats 物件。 | console.warn | OAuth 參數錯誤 |
apigeetool-node 模組 |
|||
錯誤 | 無法刪除快取,狀態碼為 %d',res.statusCode | 回呼 | 在 deletecache.js 中擲回。Apigee Edge 的狀態碼。傳遞給回呼堆疊追蹤錯誤的訊息:已完成(new Error(errMsg)); |
錯誤 | 無法刪除產品,狀態碼為 %d',res.statusCode | 回呼 | 擲回 in deleteproduct.js。Apigee Edge 的狀態碼。傳遞給回呼堆疊追蹤錯誤的訊息:已完成(new Error(errMsg)); |
錯誤 | 機構、API 和修訂版本全部都必須指定! | 回呼 | 在擷取 Proxy.js 中。設定發生錯誤。 |
錯誤 | 擷取 Proxy 時收到 %d 錯誤:%j | 回呼 | 在擷取 Proxy.js 中。200 以外的狀態碼。 |
錯誤 | 無法建立應用程式,狀態碼為 %d | 回呼 | 在 createapp.js 中擲回。將所有錯誤傳回回呼,做為堆疊追蹤錯誤。沒有任何主控台列印或記錄項目。 |
錯誤 | 指令 + ' 失敗,狀態碼為 %d | 回呼 | 在 command-utils.js 中擲回。以剖析並傳遞至這個模組的任何指令來說,非 200 或 201 的程式碼都會產生錯誤訊息。格式化這則訊息,但不會列印。將含有訊息的堆疊追蹤錯誤傳回回呼。 |
錯誤 | 擷取共用流程時接收 %d 錯誤:%s | 回呼 | 在 Fetchsharedflow.js 中擲回。非 200 的任何 HTTP 狀態。如果成功,但無法寫入檔案,該檔案會寫入控制台: 無法寫入檔案 錯誤訊息:[stack_trace_error] |
錯誤 | 無法建立 KeySecret,狀態碼為 %d',res.statusCode | 回呼 | 在 createappkey.js 中擲回。適用於 Apigee Edge 非 200 或 201 的 HTTP 狀態碼。 |
錯誤 | 無法建立快取,狀態碼為 %d',res.statusCode | 回呼 | 在 createcache.js 中擲回。適用於 Apigee Edge 非 200 或 201 的 HTTP 狀態碼。 |
錯誤 | 無法建立產品,狀態碼為 %d',res.statusCode | 回呼 | 在 createproduct.js 中。適用於 Apigee Edge 非 201 的 HTTP 狀態碼。如果 HTTP 狀態為 201,但回應包含錯誤的 JSON,系統會將錯誤 JSON 轉送至回呼。 |
錯誤 | 無法刪除應用程式,狀態碼為 %d',res.statusCode | 回呼 | 在 deleteapp.js 中擲回。適用於 Apigee Edge 非 200 的 HTTP 狀態碼。如果 HTTP 狀態為 200,但回應包含錯誤的 JSON,系統會將錯誤 JSON 轉送至回呼。 |
錯誤 | 無法建立開發人員,狀態碼為 %d',res.statusCode | 回呼 | 在 createdeveloper.js 中擲回。適用於 Apigee Edge 非 201 的 HTTP 狀態碼。如果 HTTP 狀態為 201,但回應包含錯誤的 JSON,系統會將錯誤 JSON 轉送至回呼。 |
錯誤 | 無法刪除開發人員,狀態碼為 %d',res.statusCode | 回呼 | 擲回 in deletedeveloper.js。適用於 Apigee Edge 非 200 的 HTTP 狀態碼。如果 HTTP 狀態為 200,但回應包含錯誤的 JSON,系統會將錯誤 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.