Apigee Integration에서 통합을 테스트 및 게시할 때 또는 통합 실행 중에 오류가 발생할 수 있습니다. 이러한 오류는 다양한 클라이언트 측 및 서버 측 문제로 인해 발생할 수 있으며 일반적으로 다음과 같이 분류됩니다.
- 영구적인 오류: 인증 실패, 데이터 유효성 검사 오류와 같은 모든 클라이언트 측 오류는 영구적인 오류로 간주됩니다. 영구적인 오류가 발생하면 태스크가 영구적으로 실패합니다.
- 일시적인 오류: HTTP 503(서비스를 사용할 수 없음), HTTP 400(잘못된 요청)과 같은 모든 서버 측 오류가 일시적인 오류로 간주됩니다. 일시적인 오류가 발생하면 태스크가 일시적으로 실패합니다.
오류 메시지는 다음 위치에 표시됩니다.
- 실행 로그 페이지: 통합 실행 중 발생한 오류를 표시합니다. 통합을 실행할 때마다 개별 로그 항목이 지정됩니다. 실행 로그 페이지에 대한 자세한 내용은 실행 로그를 참조하세요.
- 통합 편집기 페이지: 통합을 게시할 때 발생한 오류를 표시합니다. 오류는 통합 편집기 페이지 하단에 표시됩니다. 통합 편집기 페이지에 대한 자세한 내용은 통합 편집기를 참조하세요.
발생할 수 있는 오류 코드 목록은 오류 코드를 참조하세요.
오류 처리 방법
Apigee Integration은 통합을 생성, 테스트, 게시, 실행할 때 발생하는 오류에 응답하고 복구하는 여러 오류 처리 방법을 제공합니다. 통합 실행의 동기 모드와 비동기 모드 모두에 오류 처리 방법을 사용할 수 있습니다.
-
동기 실행: 동기 모드에서는 통합 실행 직후에 통합 실행 결과를 사용할 수 있습니다. 동기 모드는 통합 실행 직후 실행 결과를 원하는 상황에 유용합니다. 동기 모드에서 통합을 실행하는 트리거에는 다음이 포함됩니다.
- 통합 테스트 또는 게시
projects.locations.integrations.execute
API 호출- 동기 모드의 하위 통합에서 통합 호출
-
비동기 실행: 비동기 실행은 파이어 앤 포겟(fire and forget) 모델을 사용합니다. 비동기 모드는 통합이 실행하는 데 오랜 시간이 걸릴 수 있거나 통합 실행 직후 실행 결과가 필요하지 않은 상황에 유용합니다. 비동기 모드에서 통합을 실행하는 트리거에는 다음이 포함됩니다.
- 동기식이 아닌 모든 실행은 비동기 모드로 실행됩니다. 일반적인 비동기 모드 중 일부에는 다음이 포함되지만 이에 국한되지 않습니다.
- 정지 또는 승인 태스크에서 다시 시작된 실행은 초기 실행이 동기 모드였더라도 동기 모드로 실행됩니다.
Apigee Integration은 통합에서 발생한 오류를 발생, 포착, 재시도, 맞춤설정하기 위해 다음 오류 처리 방법을 지원합니다.
오류 코드
다음 표에서는 발생 가능한 오류 및 그러한 오류의 해당 원인을 설명합니다. Apigee Integration은 google.rpc.Code
에 정의된 표준 오류 코드를 사용합니다.
Apigee Integration 오류 및 여러 다른 오류 처리 전략에 대한 자세한 내용은 오류 및 오류 처리를 참조하세요.
표준 예외 유형 | 표준 코드 | HTTP 코드 | 설명 |
---|---|---|---|
FailedPreconditionException | FAILED_PRECONDITION |
400 | 현재 시스템 상태에서는 요청을 실행할 수 없습니다. |
BadRequestException | INVALID_ARGUMENT |
400 | 클라이언트가 잘못된 인수를 지정했습니다. 자세한 내용은 오류 메시지와 오류 세부정보에서 확인하세요. |
UnauthenticatedException | UNAUTHENTICATED |
401 | OAuth 토큰이 누락되었거나, 잘못되었거나, 만료되어 요청을 인증할 수 없습니다. |
ForbiddenException | PERMISSION_DENIED |
403 | 클라이언트에게 충분한 권한이 없습니다. 이 오류는 OAuth 토큰의 범위가 잘못되었거나, 클라이언트에게 필요한 권한이 없거나, API가 사용 설정되지 않은 경우에 발생할 수 있습니다. |
NotFoundException | NOT_FOUND |
404 | 지정된 리소스를 찾을 수 없습니다. |
AlreadyExistsException | ALREADY_EXISTS |
409 | 클라이언트가 만들려고 했던 리소스가 이미 존재합니다. |
InternalError | INTERNAL |
500 | 내부 서버 오류가 발생하였습니다. 전형적인 서버 버그입니다. 태스크 또는 트리거가 잘못 구성된 경우 발생할 수 있습니다. |
UnimplementedException | UNIMPLEMENTED |
501 | 서버에서 API 메서드를 구현하지 않았습니다. |
ServiceUnavailableException | UNAVAILABLE |
503 | 서비스를 사용할 수 없습니다. 전형적인 서버 다운입니다. |
AbortedException | ABORTED |
409 | 응답 크기가 너무 큽니다. |