
گردشکار مدیریت خطای n8n: دسترسی به دادههای اجرا
6 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۷
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 2349 · منبع: کاتالوگ Axeto
دسترسی به دادههای اجرای گردشکارهای ناموفق
این راهنما نحوه ساخت یک گردشکار n8n را نشان میدهد که رویدادهای خطا را از سایر گردشکارها دریافت کرده و دادههای اجرای خاصی مانند محمولههای وبهوک را از اجرای ناموفق بازیابی میکند. این امر برای پیادهسازی استراتژیهای پیچیده مدیریت خطا و اصلاح که به زمینه دادههای اصلی بستگی دارند، حیاتی است.
شما میتوانید این گردشکار و موارد دیگر را در کاتالوگ Axeto پیدا کنید: گردشکارهای n8n Axeto.
نمای کلی گردشکار
این گردشکار برای موارد زیر طراحی شده است:
1. تشخیص خطاها: گوش دادن به هر اجرای گردشکاری که با شکست مواجه میشود.
2. بازیابی جزئیات اجرا: دریافت دادههای جامع در مورد اجرای ناموفق، از جمله وضعیت تمام گرهها در زمان شکست.
3. استخراج دادههای خاص: تجزیه و تحلیل دادههای بازیابی شده برای شناسایی و استخراج اطلاعات از گرههای خاص، مانند محموله یک وبهوک که گردشکار ناموفق را راهاندازی کرده است.
گردشکار به سه بلوک منطقی اصلی تقسیم شده است:
- دریافت تریگر خطا: رویداد خطا را از هر اجرای گردشکار دریافت میکند.
- بازیابی دادههای اجرا: از گره API n8n برای دریافت دادههای دقیق از اجرای ناموفق استفاده میکند.
- استخراج دادههای وبهوک: دادههای اجرای بازیابی شده را برای استخراج محموله از گرههای وبهوک پردازش میکند.
جزئیات گرهها
۱. دریافت تریگر خطا
- هدف: این گره به عنوان نقطه ورود برای مدیریت خطا عمل میکند. این گره به طور سراسری به هر اجرای گردشکاری که منجر به خطا میشود، گوش میدهد.
- نوع گره:
Error Trigger(n8n-nodes-base.errorTrigger) - پیکربندی: هیچ پارامتر خاصی لازم نیست؛ به طور پیشفرض برای دریافت تمام خطاها پیکربندی شده است.
- خروجی: دادههایی حاوی
execution.idاجرای ناموفق را منتشر میکند. - وابستگیها: به نسخه ۰.۱۴۰ یا بالاتر n8n نیاز دارد.
۲. بازیابی دادههای اجرا
- هدف: این گره API داخلی n8n را برای بازیابی دادههای اجرای کامل برای گردشکار ناموفق خاص که با
execution.idآن شناسایی شده است، پرسوجو میکند. این امکان بازرسی تمام خروجیهای گره در نقطه شکست را فراهم میکند. - نوع گره:
n8n(گره API n8n) (n8n-nodes-base.n8n) - پیکربندی:
* عملیات: get
* منبع: execution
* شناسه اجرا (Execution ID): با استفاده از عبارتی که به execution.id از گره Error Trigger ارجاع میدهد، تنظیم میشود: ={{ $json.execution.id }}.
* گزینهها (Options): activeWorkflows را میتوان روی true تنظیم کرد (اختیاری).
- اعتبارنامهها (Credentials): به اعتبارنامه
n8nApiنیاز دارد که با دسترسی به API داخلی نمونه n8n شما پیکربندی شده باشد. - ورودی: دادهها را از گره
Error Triggerدریافت میکند. - خروجی: دادههای اجرای دقیق را به گره بعدی منتقل میکند.
- مشکلات احتمالی: خطاهای احراز هویت در صورت نامعتبر بودن اعتبارنامهها، یا اگر شناسه اجرا یافت نشد یا پاک شده باشد.
۳. استخراج دادههای وبهوک
- هدف: این گره دادههای اجرای دقیق به دست آمده از مرحله قبل را پردازش میکند. از جاوا اسکریپت سفارشی برای شناسایی گرههای وبهوک در ساختار گردشکار ناموفق و استخراج محمولههای ورودی آنها استفاده میکند.
- نوع گره:
Code(JavaScript) (n8n-nodes-base.code) - پیکربندی:
* حالت (Mode): Run Once For Each Item
* کد سفارشی (Custom Code):
```javascript
const webhook_node_names = $json.workflowData.nodes.filter(x => x.type === 'n8n-nodes-base.webhook').map(x => x.name);
const webhook_data_array = webhook_node_names.map(n => {
// Safely access runData, checking for existence at each level
const nodeRunData = $json.data.resultData.runData && $json.data.resultData.runData[n];
if (nodeRunData && nodeRunData[0] && nodeRunData[0].data && nodeRunData[0].data.main && nodeRunData[0].data.main[0] && nodeRunData[0].data.main[0][0] && nodeRunData[0].data.main[0][0].json) {
return nodeRunData[0].data.main[0][0].json;
}
return null;
}).filter(x => x !== null);
let webhook_data = null;
if (webhook_data_array.length > 0) {
webhook_data = webhook_data_array[0]; // Take the first webhook payload found
}
return {
'webhook_node_names': webhook_node_names,
'webhook_node_payload': webhook_data
};
```
- توضیح کد:
* ابتدا تمام گرههای موجود در متادیتای گردشکار را که از نوع n8n-nodes-base.webhook هستند شناسایی کرده و نام آنها را جمعآوری میکند.
* سپس، از طریق این نامهای گره وبهوک تکرار میشود و سعی میکند دادههای محموله مربوطه را از runData در جزئیات اجرا بازیابی کند.
* برای جلوگیری از خطا در صورت عدم وجود داده، به طور ایمن به خصوصیات تودرتو دسترسی پیدا میکند.
* در نهایت، یک شیء حاوی لیستی از نامهای گره وبهوک و محموله اولین گره وبهوک یافت شده (در صورت وجود) را برمیگرداند.
- ورودی: دادههای اجرای دقیق را از گره API
n8nدریافت میکند. - خروجی: نامهای گره وبهوک استخراج شده و محمولههای آنها را برای پردازش بیشتر در منطق مدیریت خطای شما ارائه میدهد.
- مشکلات احتمالی: اگر ساختار دادههای اجرا در نسخههای آینده n8n تغییر کند، کد ممکن است با شکست مواجه شود. اگر هیچ گره وبهوک وجود نداشته باشد یا دادهای دریافت نکرده باشند، محموله
nullخواهد بود.
جدول خلاصه
| نام گره (Node Name) | نوع گره (Node Type) | نقش عملکردی (Functional Role) | گره(های) ورودی (Input Node(s)) | گره(های) خروجی (Output Node(s)) | نکات (Notes) |
|---|---|---|---|---|---|
| Error Trigger | errorTrigger | خطاهای اجرای سراسری گردشکار را دریافت میکند. | None | Get execution data | |
| Get execution data | n8n (API Node) | دادههای دقیق اجرای ناموفق را دریافت میکند. | Error Trigger | Extract webhook data | به اعتبارنامه n8nApi نیاز دارد. |
| Extract webhook data | code (JavaScript) | دادههای اجرا را برای استخراج محمولههای وبهوک تجزیه و تحلیل میکند. | Get execution data | None | محمولههای وبهوک را برای استفاده در منطق اصلاح خطا استخراج میکند. |
بازتولید گردشکار
1. افزودن گره Error Trigger:
* گره ای از نوع Error Trigger اضافه کنید. هیچ پیکربندی لازم نیست.
2. افزودن گره API n8n:
* گره ای از نوع n8n اضافه کنید.
* منبع (Resource) را روی execution تنظیم کنید.
* عملیات (Operation) را روی get تنظیم کنید.
* برای پارامتر شناسه اجرا (Execution ID)، عبارت زیر را وارد کنید: ={{ $json.execution.id }}.
* به صورت اختیاری، activeWorkflows را در بخش گزینهها (Options) فعال کنید.
* اعتبارنامههای n8nApi خود را پیکربندی کنید.
* خروجی گره Error Trigger را به این گره متصل کنید.
3. افزودن گره Code:
* گره ای از نوع Code اضافه کنید.
* حالت (Mode) را روی Run Once For Each Item تنظیم کنید.
* کد جاوا اسکریپت ارائه شده را در فیلد کد (Code) جایگذاری کنید.
* خروجی گره API n8n را به این گره Code متصل کنید.
4. اتصال گرهها: اطمینان حاصل کنید که اتصالات به صورت زیر هستند: Error Trigger → Get execution data → Extract webhook data.
5. ذخیره و فعالسازی: گردشکار را ذخیره کرده و آن را فعال کنید.
6. تست: برای تست، عمداً خطایی را در گردشکار دیگری که شامل گره وبهوک است، ایجاد کنید. گردشکار خطا باید فعال شود، دادههای اجرا را دریافت کند و محموله وبهوک را استخراج کند.
منابع
- مستندات گره Error Trigger: مستندات گره Error Trigger n8n
- گره API n8n: این گره امکان تعامل با API REST n8n را برای عملیات پیشرفته فراهم میکند.
- سفارشیسازی: کد جاوا اسکریپت در گره
Codeرا میتوان برای استخراج دادهها از انواع دیگر گرهها یا پیادهسازی منطق تجزیه پیچیدهتر در صورت نیاز برای الزامات خاص مدیریت خطای شما، اصلاح کرد.
Nodeهای استفادهشده
سوالات متداول
چگونه میتوانم خطاهای گردشکارهای دیگر در n8n را دریافت کنم؟▾
شما میتوانید با استفاده از گره `Error Trigger` یک گردشکار n8n بسازید که به طور خودکار هر اجرای گردشکاری که با شکست مواجه میشود را شناسایی کرده و دادههای مربوط به آن خطا را دریافت کند.
چگونه میتوانم دادههای اجرای خاصی مانند محموله وبهوک را از یک اجرای ناموفق بازیابی کنم؟▾
پس از دریافت شناسه اجرای ناموفق از طریق `Error Trigger`، میتوانید از گره `n8n` (با عملیات `get` روی منبع `execution`) برای بازیابی تمام دادههای اجرا استفاده کنید. سپس، با استفاده از گره `Code` (جاوا اسکریپت)، میتوانید دادههای مورد نظر مانند محموله وبهوک را از ساختار دادههای بازیابی شده استخراج کنید.
چه نسخهای از n8n برای استفاده از گره `Error Trigger` لازم است؟▾
برای استفاده از گره `Error Trigger`، به نسخه ۰.۱۴۰ یا بالاتر n8n نیاز دارید.
workflowهای مرتبط
- خودکارسازی بهروزرسانی n8n با Coolify و API گیتهابDevOps
- حسابرسی استفاده از اعتبارنامهها در n8n و ارسال به Google Sh…DevOps
- نظارت بر تازگی پشتیبانگیری Google Drive با اسنک و Google Sh…DevOps
- ممیزی خودکار پرچمهای ویژگی اندروید از گیتهاب به اسلکDevOps
- تحلیل خودکار عملکرد ساخت اپلیکیشن موبایل با n8n و هوش مصنوعیDevOps
- تحلیل خودکار حوادث با n8n، OpenAI و SlackDevOps
