InfoGrab Docs

워크플로 오류 처리

요약

훌륭한 워크플로를 구축했지만 실행할 때 실패하는 경우가 있습니다. 하지만 당황하지 마세요. n8n은 워크플로 실행을 추적합니다. 워크플로 중 하나가 실패하면 실행 로그에서 무엇이 잘못되었는지 확인할 수 있습니다. 왼쪽 패널에서 Executions를 선택하여 실행 로그를 엽니다.

훌륭한 워크플로를 구축했지만 실행할 때 실패하는 경우가 있습니다. 워크플로 실행은 노드 설정 오류나 서드파티 서비스 장애와 같은 간단한 문제부터 더 불가사의한 오류까지 다양한 이유로 실패할 수 있습니다.

하지만 당황하지 마세요. 이 레슨에서는 워크플로를 최대한 빨리 정상 작동시키기 위해 오류를 트러블슈팅하는 방법을 배웁니다.

실패한 워크플로 확인#

n8n은 워크플로 실행을 추적합니다.

워크플로 중 하나가 실패하면 실행 로그에서 무엇이 잘못되었는지 확인할 수 있습니다. 실행 로그에는 저장된 워크플로의 최신 실행 시간, 상태, 모드, 실행 시간 목록이 표시됩니다.

왼쪽 패널에서 Executions를 선택하여 실행 로그를 엽니다.

목록에서 특정 실패한 실행을 조사하려면 해당 실행 행 위에 커서를 올릴 때 나타나는 이름이나 View 버튼을 선택합니다.

Executions log
실행 로그

이렇게 하면 각 노드의 실행을 볼 수 있는 읽기 전용 모드로 워크플로가 열립니다. 이 표현을 통해 워크플로가 어느 지점에서 문제에 봉착했는지 파악할 수 있습니다.

실행 보기와 에디터 간에 전환하려면 페이지 상단의 Editor | Executions 버튼을 선택합니다.

Workflow execution view
워크플로 실행 보기

오류가 발생한 워크플로 포착#

실패한 워크플로를 포착하려면 Error Trigger 노드가 있는 별도의 Error Workflow를 만드세요. 이 워크플로는 메인 워크플로 실행이 실패할 때만 실행됩니다.

이메일이나 Slack을 사용하여 실패한 워크플로와 그 오류에 대한 알림을 보내는 것과 같이 Error Workflow에 적합한 추가 노드를 사용하세요.

실패한 워크플로에 대한 오류 메시지를 받으려면 워크플로 설정에서 Error WorkflowError Trigger 노드를 사용하는 Error Workflow로 설정하세요.

일반 워크플로와 Error Workflow의 유일한 차이점은 후자에 Error Trigger 노드가 포함되어 있다는 것입니다. 이것을 다른 워크플로의 지정된 Error Workflow로 설정하기 전에 이 노드를 먼저 만들어야 합니다.

Error 워크플로
  • 워크플로가 Error Trigger 노드를 사용하는 경우 워크플로를 게시하지 않아도 됩니다.
  • 워크플로에 Error Trigger 노드가 포함되어 있으면 기본적으로 해당 워크플로 자체를 오류 워크플로로 사용합니다.
  • 워크플로를 수동으로 실행할 때는 오류 워크플로를 테스트할 수 없습니다. Error 트리거는 자동 워크플로에서 오류가 발생할 때만 실행됩니다.
  • 여러 워크플로에 동일한 Error Workflow를 설정할 수 있습니다.

연습 문제#

이전 챕터에서 여러 개의 작은 워크플로를 구축했습니다. 이제 모니터링하고 싶은 워크플로를 하나 선택하고 Error Workflow를 만드세요:

  1. 새 Error Workflow를 만듭니다.
  2. Error Trigger 노드를 추가합니다.
  3. Error Trigger 노드에 선택한 커뮤니케이션 플랫폼 노드를 연결합니다. 예를 들어 Slack, Discord, Telegram, Gmail 또는 더 일반적인 Send Email을 사용할 수 있습니다.
  4. 모니터링하려는 워크플로에서 워크플로 설정을 열고 방금 만든 새 Error Workflow를 선택합니다. 오류 워크플로를 트리거하려면 이 워크플로가 자동으로 실행되어야 합니다.
정답 보기
이 연습의 워크플로는 다음과 같이 보입니다:

<figure><img src="/images/docs/n8n/_images/courses/level-two/chapter-four/exercise_errors_errortriggernode_workflow.png" alt="" style="width:100%"><figcaption align = "center"><i>오류 워크플로</i></figcaption></figure>

노드 설정을 확인하려면 아래 JSON 워크플로 코드를 복사하여 Editor UI에 붙여넣을 수 있습니다:

```json
{
	"nodes": [
		{
			"parameters": {},
			"name": "Error Trigger",
			"type": "n8n-nodes-base.errorTrigger",
			"typeVersion": 1,
			"position": [
				720,
				-380
			]
		},
		{
			"parameters": {
				"channel": "channelname",
				"text": "=This workflow {{$(\"Error Trigger\").item.json[\"workflow\"][\"name\"]}}failed.\nHave a look at it here: {{$(\"Error Trigger\").item.json[\"execution\"][\"url\"]}}",
				"attachments": [],
				"otherOptions": {}
			},
			"name": "Slack",
			"type": "n8n-nodes-base.slack",
			"position": [
				900,
				-380
			],
			"typeVersion": 1,
			"credentials": {
				"slackApi": {
					"id": "17",
					"name": "slack_credentials"
				}
			}
		}
	],
	"connections": {
		"Error Trigger": {
			"main": [
				[
					{
						"node": "Slack",
						"type": "main",
						"index": 0
					}
				]
			]
		}
	}
}
```

워크플로에서 예외 발생시키기#

워크플로를 트러블슈팅하는 또 다른 방법은 워크플로에 Stop and Error 노드를 포함하는 것입니다. 이 노드는 오류를 발생시킵니다. 오류 유형을 지정할 수 있습니다:

  • Error Message: 오류에 대한 사용자 정의 메시지를 반환합니다.
  • Error Object: 오류 유형을 반환합니다.

Stop and Error 노드는 워크플로의 마지막 노드로만 사용할 수 있습니다.

오류를 발생시켜야 할 때

Stop and Error 노드로 예외를 발생시키는 것은 노드의 데이터(또는 데이터에 대한 가정)를 확인하고 사용자 정의 오류 메시지를 반환하는 데 유용합니다.

서드파티 서비스의 데이터를 사용하는 경우 다음과 같은 문제가 발생할 수 있습니다:

  • 잘못된 형식의 JSON 출력
  • 잘못된 유형의 데이터(예: 숫자가 아닌 값을 가진 숫자 데이터)
  • 누락된 값
  • 원격 서버 오류

이러한 종류의 유효하지 않은 데이터가 워크플로를 즉시 실패하게 하지 않을 수 있지만, 나중에 문제를 일으킬 수 있으며 그때는 소스 오류를 추적하기 어려울 수 있습니다. 이것이 문제가 있을 수 있다는 것을 알 때 오류를 발생시키는 것이 더 나은 이유입니다.

Stop and Error node with error message
오류 메시지가 있는 Stop and Error 노드

워크플로 오류 처리

원문 보기
요약

훌륭한 워크플로를 구축했지만 실행할 때 실패하는 경우가 있습니다. 하지만 당황하지 마세요. n8n은 워크플로 실행을 추적합니다. 워크플로 중 하나가 실패하면 실행 로그에서 무엇이 잘못되었는지 확인할 수 있습니다. 왼쪽 패널에서 Executions를 선택하여 실행 로그를 엽니다.

훌륭한 워크플로를 구축했지만 실행할 때 실패하는 경우가 있습니다. 워크플로 실행은 노드 설정 오류나 서드파티 서비스 장애와 같은 간단한 문제부터 더 불가사의한 오류까지 다양한 이유로 실패할 수 있습니다.

하지만 당황하지 마세요. 이 레슨에서는 워크플로를 최대한 빨리 정상 작동시키기 위해 오류를 트러블슈팅하는 방법을 배웁니다.

실패한 워크플로 확인#

n8n은 워크플로 실행을 추적합니다.

워크플로 중 하나가 실패하면 실행 로그에서 무엇이 잘못되었는지 확인할 수 있습니다. 실행 로그에는 저장된 워크플로의 최신 실행 시간, 상태, 모드, 실행 시간 목록이 표시됩니다.

왼쪽 패널에서 Executions를 선택하여 실행 로그를 엽니다.

목록에서 특정 실패한 실행을 조사하려면 해당 실행 행 위에 커서를 올릴 때 나타나는 이름이나 View 버튼을 선택합니다.

Executions log
실행 로그

이렇게 하면 각 노드의 실행을 볼 수 있는 읽기 전용 모드로 워크플로가 열립니다. 이 표현을 통해 워크플로가 어느 지점에서 문제에 봉착했는지 파악할 수 있습니다.

실행 보기와 에디터 간에 전환하려면 페이지 상단의 Editor | Executions 버튼을 선택합니다.

Workflow execution view
워크플로 실행 보기

오류가 발생한 워크플로 포착#

실패한 워크플로를 포착하려면 Error Trigger 노드가 있는 별도의 Error Workflow를 만드세요. 이 워크플로는 메인 워크플로 실행이 실패할 때만 실행됩니다.

이메일이나 Slack을 사용하여 실패한 워크플로와 그 오류에 대한 알림을 보내는 것과 같이 Error Workflow에 적합한 추가 노드를 사용하세요.

실패한 워크플로에 대한 오류 메시지를 받으려면 워크플로 설정에서 Error WorkflowError Trigger 노드를 사용하는 Error Workflow로 설정하세요.

일반 워크플로와 Error Workflow의 유일한 차이점은 후자에 Error Trigger 노드가 포함되어 있다는 것입니다. 이것을 다른 워크플로의 지정된 Error Workflow로 설정하기 전에 이 노드를 먼저 만들어야 합니다.

Error 워크플로
  • 워크플로가 Error Trigger 노드를 사용하는 경우 워크플로를 게시하지 않아도 됩니다.
  • 워크플로에 Error Trigger 노드가 포함되어 있으면 기본적으로 해당 워크플로 자체를 오류 워크플로로 사용합니다.
  • 워크플로를 수동으로 실행할 때는 오류 워크플로를 테스트할 수 없습니다. Error 트리거는 자동 워크플로에서 오류가 발생할 때만 실행됩니다.
  • 여러 워크플로에 동일한 Error Workflow를 설정할 수 있습니다.

연습 문제#

이전 챕터에서 여러 개의 작은 워크플로를 구축했습니다. 이제 모니터링하고 싶은 워크플로를 하나 선택하고 Error Workflow를 만드세요:

  1. 새 Error Workflow를 만듭니다.
  2. Error Trigger 노드를 추가합니다.
  3. Error Trigger 노드에 선택한 커뮤니케이션 플랫폼 노드를 연결합니다. 예를 들어 Slack, Discord, Telegram, Gmail 또는 더 일반적인 Send Email을 사용할 수 있습니다.
  4. 모니터링하려는 워크플로에서 워크플로 설정을 열고 방금 만든 새 Error Workflow를 선택합니다. 오류 워크플로를 트리거하려면 이 워크플로가 자동으로 실행되어야 합니다.
정답 보기
이 연습의 워크플로는 다음과 같이 보입니다:

<figure><img src="/images/docs/n8n/_images/courses/level-two/chapter-four/exercise_errors_errortriggernode_workflow.png" alt="" style="width:100%"><figcaption align = "center"><i>오류 워크플로</i></figcaption></figure>

노드 설정을 확인하려면 아래 JSON 워크플로 코드를 복사하여 Editor UI에 붙여넣을 수 있습니다:

```json
{
	"nodes": [
		{
			"parameters": {},
			"name": "Error Trigger",
			"type": "n8n-nodes-base.errorTrigger",
			"typeVersion": 1,
			"position": [
				720,
				-380
			]
		},
		{
			"parameters": {
				"channel": "channelname",
				"text": "=This workflow {{$(\"Error Trigger\").item.json[\"workflow\"][\"name\"]}}failed.\nHave a look at it here: {{$(\"Error Trigger\").item.json[\"execution\"][\"url\"]}}",
				"attachments": [],
				"otherOptions": {}
			},
			"name": "Slack",
			"type": "n8n-nodes-base.slack",
			"position": [
				900,
				-380
			],
			"typeVersion": 1,
			"credentials": {
				"slackApi": {
					"id": "17",
					"name": "slack_credentials"
				}
			}
		}
	],
	"connections": {
		"Error Trigger": {
			"main": [
				[
					{
						"node": "Slack",
						"type": "main",
						"index": 0
					}
				]
			]
		}
	}
}
```

워크플로에서 예외 발생시키기#

워크플로를 트러블슈팅하는 또 다른 방법은 워크플로에 Stop and Error 노드를 포함하는 것입니다. 이 노드는 오류를 발생시킵니다. 오류 유형을 지정할 수 있습니다:

  • Error Message: 오류에 대한 사용자 정의 메시지를 반환합니다.
  • Error Object: 오류 유형을 반환합니다.

Stop and Error 노드는 워크플로의 마지막 노드로만 사용할 수 있습니다.

오류를 발생시켜야 할 때

Stop and Error 노드로 예외를 발생시키는 것은 노드의 데이터(또는 데이터에 대한 가정)를 확인하고 사용자 정의 오류 메시지를 반환하는 데 유용합니다.

서드파티 서비스의 데이터를 사용하는 경우 다음과 같은 문제가 발생할 수 있습니다:

  • 잘못된 형식의 JSON 출력
  • 잘못된 유형의 데이터(예: 숫자가 아닌 값을 가진 숫자 데이터)
  • 누락된 값
  • 원격 서버 오류

이러한 종류의 유효하지 않은 데이터가 워크플로를 즉시 실패하게 하지 않을 수 있지만, 나중에 문제를 일으킬 수 있으며 그때는 소스 오류를 추적하기 어려울 수 있습니다. 이것이 문제가 있을 수 있다는 것을 알 때 오류를 발생시키는 것이 더 나은 이유입니다.

Stop and Error node with error message
오류 메시지가 있는 Stop and Error 노드