워크플로를 실행한 후 Google Cloud 콘솔 또는 Google Cloud CLI를 사용하여 워크플로 실행 결과에 액세스할 수 있습니다.
콘솔
Google Cloud 콘솔에서 Workflows 페이지로 이동합니다.
워크플로 실행 결과에 액세스하려면 워크플로 이름을 클릭하여 워크플로 세부정보 페이지로 이동합니다.
특정 실행에 대한 자세한 내용을 확인하려면 실행 탭의 목록에서 실행 ID를 클릭하여 실행 세부정보 페이지로 이동합니다.
요약 탭에서 각 실행에는 다음 정보가 포함됩니다.
- 실행 ID: 워크플로 실행의 고유 식별자입니다.
- 실행 상태: 현재 또는 최종 워크플로 단계를 포함하여 워크플로의 종료 상태를 나타냅니다.
- 실행 생성: 실행이 시작된 시간입니다.
- 실행 시작: 실행이 시작되어 단계를 실행하기 시작한 시간입니다.
- 실행 종료: 실행이 종료된 시간입니다.
- 실행 기간: 경과된 총 시간입니다. 이 정보는 네트워크 오류나 연결 문제가 있음을 나타낼 수 있습니다.
- 워크플로 이름: 워크플로 이름입니다.
- 워크플로 버전: 실행 시점의 현재 버전입니다.
- 호출 로그 수준: 실행 중에 적용되는 호출 로깅 수준입니다. 자세한 내용은 통화 로깅을 참고하세요.
- 입력: 워크플로에 전달된 런타임 인수입니다(있는 경우).
- 출력: 워크플로의 출력입니다. 실행이 실패하면 실행 오류로 이어진 예외가 포함됩니다. 이 문서에서 실행 오류 맵을 참고하세요.
워크플로 실행 기록을 단계 항목 목록으로 보려면 단계 탭을 클릭합니다. 자세한 내용은 실행 단계 기록 보기를 참조하세요.
워크플로 실행 로그를 보려면 로그 탭을 클릭합니다.
실행 로그를 필터링하려면 테이블 상단의 필터 필드를 사용합니다. 예를 들어 실패한 실행 시도만 표시하려면 필터의 텍스트 필드에
failed
를 입력합니다.
gcloud
워크플로 실행에 대한 전체 목록을 보려면 다음 명령어를 입력합니다.
gcloud workflows executions list WORKFLOW_NAME
WORKFLOW_NAME
을 워크플로 이름으로 바꿉니다. 관심 있는 실행의 실행 ID를 복사합니다.워크플로 실행 로그를 보려면 다음 명령어를 입력합니다.
gcloud workflows executions describe \ --workflow=WORKFLOW_NAME \ EXECUTION_ID
다음을 바꿉니다.
WORKFLOW_NAME
: 워크플로의 이름EXECUTION_ID
: 실행의 고유 ID입니다.
이 명령어는 다음과 유사한 출력을 반환합니다.
argument: 'null' endTime: '2022-07-19T12:40:07.070039707Z' error: context: |- The argument of 'in' must be a dict or an array; got: null in step "checkSearchTermInInput", routine "main", line: 12 payload: "{"message":"The argument of 'in' must be a dict or an array; got: null"
,"tags":["TypeError"]}" stackTrace: elements: - position: column: '26' length: '24' line: '12' routine: main step: checkSearchTermInInput name: projects/1051295516635/locations/us-central1/workflows/myFirstWorkflow/executions/17ffc89c-0a27-4d2f-8356-e681d949a3d3 startTime: '2022-07-19T12:40:07.024823663Z' state: FAILED status: currentSteps: - routine: main step: checkSearchTermInInput workflowRevisionId: 000001-ac2argument
: 워크플로에 전달된 런타임 인수입니다(있는 경우).endTime
: 실행이 종료된 시간입니다.error
: 실행 실패를 일으킨 예외의 일부로 발생한 오류 메시지입니다.name
: 프로젝트 이름, 워크플로 위치, 워크플로 이름, 실행 ID를 포함한 실행의 전체 이름입니다.startTime
: 실행이 시작된 시간입니다.state
: 워크플로의 종료 상태를 나타냅니다.status
: 실행의 현재 또는 최종 워크플로 단계입니다.workflowRevisionID
: 실행 시점의 현재 버전입니다.
실행 오류 맵
실행 중 워크플로에서 try/except
블록으로 포착되지 않은 오류가 발생하면 실행이 실패하고 오류를 설명하는 오류 맵(JSON 딕셔너리)이 반환됩니다.
워크플로 실행 중 발생한 오류에는 오류 원인을 파악하는 데 도움이 되는 태그가 포함됩니다. 예를 들어 커넥터에서 반환된 오류에는 다음과 비슷한 두 개의 키(tags
및 message
)가 있을 수 있습니다.
{'tags': ['SystemError'], 'message': 'an error has occurred'}
둘 이상의 태그가 있을 수 있습니다. 특정 태그를 확인하려면 표현식을 사용하면 됩니다. 예를 들면 다음과 같습니다.
${'SystemError' in e.tags}
문자열로 반환된 오류 데이터에 액세스
일부 커넥터 및 HTTP API는 오류를 반환하기 전에 오류를 문자열로 직렬화합니다. 표준 라이브러리 함수를 사용하여 페이로드를 원래 오류로 복원할 수 있습니다. 예를 들어 오류 문자열을 맵으로 변환하려면 json.decode
및 text.encode
함수를 사용하면 됩니다.
json.decode(text.encode(ERROR_FROM_API))
오류 태그
다음 표에서는 여러 오류 태그의 의미를 설명합니다.
태그 | 설명 |
---|---|
AuthError | HTTP 요청에 대한 사용자 인증 정보 생성이 실패할 때 발생합니다. |
ConnectionError | 엔드포인트와 연결이 성공적으로 설정되었지만 데이터 전송 중에 연결에 문제가 있는 경우 발생합니다. 전체 응답이 수신되기 전에 연결이 종료되며 메시지가 엔드포인트로 전송되지 않았을 수 있습니다. 재시도가 멱등적이지 않을 수 있습니다. |
ConnectionFailedError | API 엔드포인트와 연결이 설정되지 않으면 예를 들어 잘못된 도메인 이름, DNS 변환 문제 또는 기타 네트워크 문제로 인해 발생합니다. 재시도가 멱등적입니다. |
HttpError | HTTP 오류 상태와 함께 HTTP 요청이 실패할 때 발생합니다. 이 예외가 발생하면 응답은 다음 요소가 포함된 지도입니다.
|
IndexError | 시퀀스 하위 스크립트가 정수 범위를 벗어날 때 발생합니다. |
KeyError | 지도 키가 기존 키 집합에 없을 때 발생합니다. |
OperationError | 장기 실행 작업이 실패로 종료되면 발생합니다. |
ParallelNestingError | 병렬 단계를 중첩할 수 있는 최대 깊이가 초과될 때 발생합니다. |
RecursionError | 인터프리터에서 최대 호출 스택 깊이 초과를 감지하면 발생합니다. |
ResourceLimitError | 일부 리소스 한도가 소진될 때 발생합니다. 내부적으로 발생할 때 이러한 유형의 오류는 포착될 수 없으며, 즉각적인 실행 실패를 일으킵니다. |
ResponseTypeError | 장기 실행 작업이 잘못된 유형의 응답을 반환할 때 발생합니다. |
SystemError | 인터프리터에서 내부 오류가 발견될 때 발생합니다. |
TimeoutError | 시스템 함수가 시스템 수준에서 시간 초과될 때 발생합니다. |
TypeError | 작업 또는 함수가 호환되지 않는 유형의 객체에 적용될 때 발생합니다. 연결된 값은 유형 불일치에 대한 세부정보를 제공하는 문자열입니다. |
UnhandledBranchError | 하나 이상의 브랜치 또는 반복에서 처리되지 않은 런타임 오류가 최대 개수까지 발생할 때 발생합니다. |
ValueError | 작업 또는 함수에 유형이 올바르지만 값이 잘못된 인수가 수신될 때 발생하며, IndexError 와 같이 보다 정확한 예외로 상황이 설명되지 않습니다. |
ZeroDivisionError | 나누기 또는 모듈로 연산의 두 번째 인수가 0일 때 발생합니다. 연결된 값은 피연산자 유형 및 연산을 나타내는 문자열입니다. |
raise
구문을 사용하여 커스텀 예외를 발생시킬 수도 있습니다.