오류 처리
플로우 로직을 설계할 때, 잠재적인 오류를 고려하고 우아하게 처리하는 방법을 설정하는 것이 좋은 습관입니다. 실패한 실행을 조사하려면 다음을 수행할 수 있습니다: 각 워크플로에 대해 Workflow Settings에서 오류 워크플로를 설정할 수 있습니다.
플로우 로직을 설계할 때, 잠재적인 오류를 고려하고 우아하게 처리하는 방법을 설정하는 것이 좋은 습관입니다. 오류 워크플로를 사용하면 워크플로 실행 실패 시 n8n이 어떻게 응답하는지 제어할 수 있습니다.
실패한 실행을 조사하려면 다음을 수행할 수 있습니다:
- 단일 워크플로 또는 접근 가능한 모든 워크플로에 대한 실행 기록을 검토합니다. 이전 실행의 데이터를 현재 워크플로에 로드할 수 있습니다.
- 로그 스트리밍을 활성화합니다.
오류 워크플로 생성 및 설정#
각 워크플로에 대해 Workflow Settings에서 오류 워크플로를 설정할 수 있습니다. 실행이 실패하면 오류 워크플로가 실행됩니다. 즉, 워크플로 실행에 오류가 발생할 때 이메일이나 Slack 알림을 보내는 등의 작업을 수행할 수 있습니다. 오류 워크플로는 Error Trigger로 시작해야 합니다.
여러 워크플로에 동일한 오류 워크플로를 사용할 수 있습니다.
- Error Trigger를 첫 번째 노드로 사용하는 새 워크플로우를 만듭니다.
- 워크플로우에 이름을 지정합니다(예:
Error Handler). - Save를 선택합니다.
- 이 에러 워크플로우를 사용하려는 워크플로우에서:
- Options
> Settings를 선택합니다. - Error workflow에서 방금 생성한 워크플로우를 선택합니다. 예를 들어 Error Handler라는 이름을 사용했다면 Error handler를 선택합니다.
- Save를 선택합니다. 이제 이 워크플로우에서 오류가 발생하면 관련 에러 워크플로우가 실행됩니다.
- Options
오류 데이터#
Error Trigger가 수신하는 기본 오류 데이터는 다음과 같습니다:
[
{
"execution": {
"id": "231",
"url": "https://n8n.example.com/execution/231",
"retryOf": "34",
"error": {
"message": "Example Error Message",
"stack": "Stacktrace"
},
"lastNodeExecuted": "Node With Error",
"mode": "manual"
},
"workflow": {
"id": "1",
"name": "Example Workflow"
}
}
]
다음을 제외하고 모든 정보가 항상 존재합니다:
execution.id: 실행이 데이터베이스에 저장되어야 합니다. 오류가 메인 워크플로우의 트리거 노드에 있는 경우 워크플로우가 실행되지 않으므로 존재하지 않습니다.execution.url: 실행이 데이터베이스에 저장되어야 합니다. 오류가 메인 워크플로우의 트리거 노드에 있는 경우 워크플로우가 실행되지 않으므로 존재하지 않습니다.execution.retryOf: 실행이 실패한 실행의 재시도인 경우에만 존재합니다.
오류가 이후 단계가 아닌 메인 워크플로우의 트리거 노드에서 발생한 경우, 오류 워크플로우로 전송되는 데이터가 다릅니다. execution{}의 정보는 더 적고 trigger{}의 정보는 더 많습니다:
{
"trigger": {
"error": {
"context": {},
"name": "WorkflowActivationError",
"cause": {
"message": "",
"stack": ""
},
"timestamp": 1654609328787,
"message": "",
"node": {
. . .
}
},
"mode": "trigger"
},
"workflow": {
"id": "",
"name": ""
}
}
Stop And Error를 사용하여 워크플로 실행 실패 유도#
오류 워크플로를 생성하고 설정하면, n8n은 실행이 실패할 때 오류 워크플로를 실행합니다. 일반적으로 이는 노드 설정 오류나 워크플로의 메모리 부족과 같은 문제로 인해 발생합니다.
워크플로에 Stop And Error 노드를 추가하여 선택한 상황에서 강제로 실행을 실패시키고 오류 워크플로를 트리거할 수 있습니다.
