Apigee Edge 문서입니다.
Apigee X 문서로 이동 정보
이 주제에서는 Edge Microgateway에서 발생할 수 있는 오류와 경고를 설명합니다.
일반적인 애플리케이션 오류
HTTP 500, 오류 핸들러에서 실패 - 대부분의 오류에는 이 번호가 있으며 대상에서 반환된 일부 오류에도 이 번호가 있습니다. 특히 errors-middleware.js는 microgateway-core 모듈 전체에서 사용됩니다. 사용하면 Edge Microgateway
logger object: logger.error(err, 'failed in error handler');
를 사용하여 로그에 statusCode를 기록합니다. 타겟에서 수신된 코드가 100~300 사이인 경우 errors-middleware.js는 클라이언트로 반환하기 위해 statusCode를 500으로 재작성합니다.HTTP 404 - 이 상태는
no match found for [API_path_name]
메시지와 함께 스택 트레이스로 표시될 수 있습니다.
모듈 오류 및 경고
이 정보를 사용하여 Edge Microgateway 배포를 모니터링하고 관리하는 데 도움이 되는 알림을 구성할 수 있습니다.
'핸들러' 아래의 오류 참조에 표시되는 다음 용어는 Edge Microgateway에서 다양한 오류가 처리되는 방식을 나타냅니다.
- assert: 일반적으로 assert 평가가 실패하면 Edge Microgateway가 중지됩니다. 그러나 '어설션'은 포착될 수 있는 예외를 발생시키므로 항상 그런 것은 아닙니다.
- 예외 발생: 시스템이 중지될 수 있습니다.
- 콜백: 오류가 콜백에 전달되고 시스템이 계속될 수 있습니다.
유형 | 메시지 | Handler | 참고 |
---|---|---|---|
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') |
오류 | 콜백이 있어야 함 | 주장하다 | 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); |
오류 | 플러그인 디렉터리가 디렉터리가 아님: + pluginDir | 주장하다 | assert(stat.isDirectory(), 'plugin dir is not a directory: ' + pluginDir); |
오류 | 플러그인 디렉터리 읽기 오류: + 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 + ' does not exist. exiting.' | 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 | 구성이 로드되지 않음 |
오류 | region 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 범위에 속하지 않는 인터넷 프로토콜을 나타냅니다. |
오류 | 분석 부정적 케이스 확인: 실패 | console.error | 비정상 종료/실패 가능성 |
오류 | 페이로드로 분석 확인: 실패 | console.error | 비정상 종료/실패 가능성 |
오류 | 부트스트랩 URL 사용 가능 여부 확인:실패 | console.error | 비정상 종료/실패 가능성 |
오류 | jwt_public_key 사용 가능 여부 확인: 실패 | console.error | 비정상 종료/실패 가능성 |
오류 | 제품 재고 확인: 실패 | console.error | 비정상 종료/실패 가능성 |
오류 | 구성된 제품으로 할당량 확인: 실패 | console.error | 비정상 종료/실패 가능성 |
warn | 게이트웨이에서 구성을 가져올 수 없습니다. 계속 진행 중이며 캐시된 사본을 시도할 예정입니다. | console.error | |
warn | 조직에 KVM이 이미 있습니다. | console.log | |
warn | 이미 배포됨 | console.log | |
warn | 시퀀스 플러그인을 찾을 수 없음: | console.warn | |
warn | pluginDir %s가(이) 존재하지 않음 | console.log | pluginDir (.*)이(가) 존재하지 않음 |
microgateway-core 모듈 |
|||
오류 | 구성이 초기화되지 않음 | 주장하다 | assert(config, 'config not initialized') |
오류 | 구성이 있어야 함 | 주장하다 | assert(config, ' must have a config') |
오류 | 구성이 있어야 함 | 주장하다 | assert(config, 'must have config') |
오류 | 구성에 uid가 있어야 함 | 주장하다 | 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); |
오류 | 옵션에 config가 포함되어야 함 | 주장하다 | assert(config, 'options must contain config') |
오류 | 플러그인에 이름이 있어야 합니다. | 주장하다 | assert(name,"plugin must have a name") |
오류 | 이름은 문자열이어야 합니다. | 주장하다 | assert(_.isString(name),"name must be a string"); |
오류 | 플러그인은 함수여야 합니다. | 주장하다 | 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 server.on() 함수 |
오류 | 헤더 길이가 허용된 크기보다 큼 | HTTP 오류 | 플러그인이 실행되지 않음 |
오류 | 작업을 완료하기 전에 응답이 완료됨 | logger.error | 타겟 플러그인이 실행되지 않음 |
오류 | 핸들러가 예외를 발생시켰습니다. | 콜백 | 플러그인에서 오류 캡처 (포착) |
오류 | 에지 마이크로 시작 오류 | 콜백 | Edge Microgateway가 시작되지 않음 |
오류 | 플러그인은 함수여야 합니다. | 발생 | |
warn | console.error | 경고 | 로그 작성 |
warn | targetRequest 오류 | 대상 오류 처리 호출 | 타겟 연결의 HTTP 클라이언트 오류 |
warn | targetResponse 오류 | 대상 오류 처리 호출 | 클라이언트에서 확인한 대상 연결의 HTTP 대상 서버 오류 |
microgateway-config 모듈 |
|||
오류 | allow_message | 주장하다 | assert(+config.quota.allow > 0, allow_message); |
오류 | 구성이 존재하지 않음 | 발생 | 구성 yaml 파일 |
오류 | config가 비어 있음 | 발생 | 구성 yaml 파일 |
오류 | config가 파일이 아님 | 발생 | 구성 yaml 파일 |
오류 | config가 정의되지 않음 | 주장하다 | 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가 '더미'가 아님 | 주장하다 | 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_tunnel이 정의된 경우 config.edge_config.proxy를 정의해야 합니다.'); |
오류 | 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이 정의되지 않음 | 주장하다 | 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'); |
오류 | 심각한 오류: 다운로드한 제품 목록을 파싱하는 중에 오류가 발생함 | 콜백 | |
오류 | 심각한 오류: 다운로드한 프록시 목록을 파싱하는 중에 오류가 발생함 | 콜백 | |
오류 | DETECTED PRODUCT MISCONFIGURATION ERROR | console.error | 그 뒤에 console.warn('using old cached configuration');이 표시됩니다. |
오류 | 구성을 읽는 중에 오류가 발생했습니다. | 발생 | 구성 yaml 파일 |
오류 | 구성을 저장하는 중에 오류가 발생했습니다. | 콜백 | 구성 yaml 파일 |
오류 | fatal: 캐시된 구성을 사용할 수 없으므로 계속할 수 없음 | 콜백 | |
오류 | 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:', 'config.edge_config.proxy의 잘못된 프로토콜입니다 (예상: http: 또는 https:). ' + proxy_url.protocol); |
오류 | config.edge_config.proxy의 잘못된 프록시 호스트 | 주장하다 | assert(proxy_url.hostname, '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') |
오류 | options는 null이 될 수 없습니다. | 주장하다 | assert(options, 'options cannot be null'); |
오류 | options.keys는 null이 될 수 없습니다. | 주장하다 | 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'); |
오류 | '제품의 프록시 ' + 제품 + '는 배열이어야 합니다.' | 주장하다 | 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'); |
warn | 구성을 다운로드하는 중에 오류가 발생했습니다. 부트스트랩 구성을 확인하세요. | console.warn | |
warn | jwt_public_key를 다운로드하지 못했습니다. | console.warn | |
warn | jwk 키가 사용 설정되지 않음 | console.warn | |
warn | 메시지, '다운로드 위치', URL, '반환됨' | console.warn | 검색: (.*)\sdownload from\s(.*)\sreturned |
warn | 응답에 에지 마이크로 제품이 없음 | console.warn | |
warn | 조직에서 에지 마이크로 프록시를 찾을 수 없음 | console.warn | |
warn | 응답에서 에지 마이크로 프록시를 찾을 수 없음 | console.warn | |
warn | 조직에서 제품을 찾을 수 없음 | console.warn | |
warn | 응답에서 제품을 찾을 수 없음 | console.warn | |
warn | 이전에 캐시된 구성 사용 | console.warn | |
microgateway-plugins 모듈 |
|||
오류 | 구성이 존재하지 않음 | 발생 | yaml 파일과 관련된 문제 |
오류 | apikey | HTTP 응답 | apiky 플러그인 실패 |
오류 | bauth | HTTP 응답 | bauth 플러그인 실패 |
오류 | extauth | HTTP 응답 | extauth 플러그인 실패 |
오류 | Oauth | HTTP 응답 | OAuth 플러그인 실패 |
warn | Apigee 분석을 처리하는 중에 오류가 발생했습니다. 요청 처리 계속 허용 | logger.error | |
warn | err 무시 | console.warn | apikeys, oauth, oauthv2 플러그인 |
warn | jwt 파싱 오류: | console.warn | |
warn | oath 응답 객체에 setHeader가 없음 | console.warn | oauth 매개변수 오류는 일부 오류가 보고되지 않음을 나타냅니다. |
warn | oath 응답 객체가 런타임에서 제공되지 않음 | console.warn | oauth 매개변수 오류 |
warn | oath 통계 객체가 런타임에서 제공되지 않음 | console.warn | oauth 매개변수 오류 |
apigeetool-node 모듈 |
|||
오류 | 'Delete Cache failed with status code %d', res.statusCode | 콜백 | deletecache.js에서 발생합니다. Apigee Edge의 상태 코드입니다. 다음 메시지와 함께 스택 트레이스 오류를 콜백에 전달합니다. done(new Error(errMsg)); |
오류 | 제품 삭제 실패, 상태 코드 %d', res.statusCode | 콜백 | deleteproduct.js에서 발생합니다. Apigee Edge의 상태 코드입니다. 다음 메시지와 함께 스택 트레이스 오류를 콜백에 전달합니다. done(new Error(errMsg)); |
오류 | org, api, 버전을 모두 지정해야 합니다. | 콜백 | 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] |
오류 | Create KeySecret failed with status code %d', res.statusCode | 콜백 | createappkey.js에서 발생합니다. Apigee Edge의 HTTP 상태 코드 중 200 또는 201이 아닌 경우 |
오류 | Create Cache failed with status code %d', res.statusCode | 콜백 | createcache.js에서 발생합니다. Apigee Edge의 HTTP 상태 코드 중 200 또는 201이 아닌 경우 |
오류 | Create Product failed with status code %d', res.statusCode | 콜백 | createproduct.js에서 발생합니다. Apigee Edge의 HTTP 상태 코드 중 201이 아닌 경우 HTTP 상태가 201이지만 응답에 오류 JSON이 포함된 경우 오류 JSON이 콜백으로 전달됩니다. |
오류 | 앱 삭제 실패, 상태 코드 %d', res.statusCode | 콜백 | deleteapp.js에서 발생합니다. Apigee Edge의 HTTP 상태 코드 중 200이 아닌 경우 HTTP 상태가 200이지만 응답에 오류 JSON이 포함된 경우 오류 JSON이 콜백으로 전달됩니다. |
오류 | Create Developer failed with status code %d', res.statusCode | 콜백 | createdeveloper.js에서 발생합니다. Apigee Edge의 HTTP 상태 코드 중 201이 아닌 경우 HTTP 상태가 201이지만 응답에 오류 JSON이 포함된 경우 오류 JSON이 콜백으로 전달됩니다. |
오류 | 개발자 삭제 실패, 상태 코드 %d', res.statusCode | 콜백 | deletedeveloper.js에서 발생합니다. Apigee Edge의 HTTP 상태 코드 중 200이 아닌 경우 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.