워크플로를 실행한 후에는 Google Cloud 콘솔에서 또는 Google Cloud CLI를 사용하여 워크플로 실행 결과에 액세스할 수 있습니다.
콘솔
- Google Cloud 콘솔에서 워크플로 페이지로 이동합니다. 
- 워크플로 실행 결과에 액세스하려면 워크플로 이름을 클릭하여 워크플로 세부정보 페이지로 이동합니다. 
- 특정 실행에 대한 자세한 내용을 확인하려면 실행 탭의 목록에서 실행 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-ac2- argument: 워크플로에 전달된 런타임 인수입니다(있는 경우).
- 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 구문을 사용하여 커스텀 예외를 발생시킬 수도 있습니다.