מבוא לטיפול בשגיאות

ב-Application Integration, יכולות להתרחש שגיאות כשבודקים ומפרסמים שילוב, או במהלך ההפעלה של שילוב. השגיאות האלה יכולות להתרחש בגלל בעיות שונות בצד הלקוח ובצד השרת, והן מסווגות באופן כללי באופן הבא:

  • שגיאות קבועות: כל השגיאות בצד הלקוח, כמו כשלים באימות ושגיאות באימות נתונים, נחשבות לשגיאות קבועות. שגיאות קבועות גורמות לכשלים קבועים במשימות.
  • שגיאות זמניות: כל השגיאות בצד השרת, כמו HTTP 503 (השירות לא זמין), HTTP 400 (בקשה שגויה), נחשבות לשגיאות זמניות. שגיאות זמניות גורמות לכשלים זמניים במשימות.

הודעות השגיאה מופיעות במיקומים הבאים:

  • דף יומני הביצוע: מוצגות בו שגיאות שנתקלו בהן במהלך הביצוע של שילוב. לכל הפעלה של שילוב יש רשומה נפרדת ביומן. מידע על הדף 'יומני הרצה' זמין במאמר יומני הרצה.
  • דף עורך השילובים: מוצגות בו שגיאות שמתגלות כשמפרסמים שילוב. השגיאות מוצגות בחלק התחתון של דף כלי העריכה של השילוב. מידע על דף עורך האינטגרציות זמין במאמר עורך האינטגרציות.

מידע על רשימת קודי השגיאה שאתם עשויים להיתקל בהם זמין במאמר קודי שגיאה.

שיטות לטיפול בשגיאות

הכלי Application Integration תומך בשיטות הבאות לטיפול בשגיאות, כדי להפעיל, לזהות, לנסות שוב ולהתאים אישית את השגיאות שמתגלות בשילוב:

  • אסטרטגיות לטיפול בשגיאות: אסטרטגיית הטיפול בשגיאות של משימה מציינת את הפעולה שיש לבצע אם המשימה נכשלת בגלל שגיאה זמנית. אפשר לציין אסטרטגיות שונות לטיפול בשגיאות במצבי ביצוע סינכרוניים ואסינכרוניים.
  • Error catcher: Error catcher מגדיר דרך מותאמת אישית לטיפול בכשל של טריגר, משימה או תנאי קצה שזוהו בשילוב. אפשר להגדיר שומר שגיאות אחד או יותר בשילוב יחיד כדי לטפל בשגיאות במשימות או בכשלים בהרצה. אפשר להפעיל כל כלי לזיהוי שגיאות באמצעות טריגר שנקרא Error Catcher trigger, כדי להריץ את קבוצת משימות השילוב שהוגדרו בהתאמה אישית לטיפול בשגיאה.

אפשר להשתמש בשיטות לטיפול בשגיאות במצבים סינכרוניים ואסינכרוניים של הפעלת אינטגרציה:

  • הפעלות סינכרוניות: במצב סינכרוני, תוצאת ההפעלה של השילוב זמינה זמן קצר אחרי שהשילוב פועל. מצב סינכרוני שימושי בתרחישים שבהם רוצים לקבל את תוצאת ההרצה מיד אחרי שהשילוב פועל. הטריגרים שמפעילים את השילוב במצב סינכרוני כוללים את האפשרויות הבאות:
  • הפעלות אסינכרוניות: הפעלות אסינכרוניות משתמשות במודל 'הפעלה ושכחה'. מצב אסינכרוני שימושי בתרחישים שבהם יכול לקחת הרבה זמן להפעיל שילובים, או שלא נדרשת תוצאת הביצוע מיד אחרי הפעלת השילוב. הטריגרים שמפעילים את השילוב במצב אסינכרוני כוללים את הטריגרים הבאים:

שיטה מומלצת

מומלץ להשתמש באסטרטגיה לטיפול בשגיאות ובכלי לזיהוי שגיאות באינטגרציה. במקרה של שגיאה, השילוב פועל לפי האסטרטגיה שמוגדרת בקטע בנושא טיפול בשגיאות. אחרי שמיצינו את אסטרטגיית הטיפול בשגיאות שהוגדרה, מופעלת לוגיקה של לוכד שגיאות. משתמשים במשתני מערכת כדי לתעד את הערך של קוד השגיאה והודעת השגיאה ולשלוח אותם לזרימת העבודה של לוכד השגיאות.

דוגמה

נניח שיש לכם תהליך שילוב ליצירת הזמנה. הזמנות חדשות נוצרות ב-Cloud SQL ל-MySQL. בתהליך נעשה שימוש במשימת מחבר (יצירת הזמנה בדוגמה הזו) כדי להתחבר ל-Cloud SQL ל-MySQL. במקרה של הפסקת פעולה במסד הנתונים, משימת המחבר מחזירה שגיאות בזמן הוספת הזמנות חדשות למסד הנתונים. מומלץ להשתמש גם באסטרטגיה לטיפול בשגיאות וגם בכלי לזיהוי שגיאות בשילוב.

כדי להוסיף את אסטרטגיית הטיפול בשגיאות, לוחצים על משימת המחבר בכלי לעיצוב שילובים כדי לפתוח את חלונית הגדרת המשימה. בתרשים הבא מוצגת אסטרטגיית הטיפול בשגיאות שהוגדרה למשימת המחבר Create an order:

אסטרטגיה לטיפול בשגיאות במשימה של מחבר ליצירת הזמנה אסטרטגיה לטיפול בשגיאות במשימה של מחבר ליצירת הזמנה

כדי להוסיף את אסטרטגיית הטיפול בשגיאות, לוחצים על המשימה Call REST Endpoint (קריאה לנקודת קצה של REST) בכלי לעיצוב שילובים כדי לפתוח את חלונית הגדרת המשימה. התרשים הבא מציג את אסטרטגיית הטיפול בשגיאות שהוגדרה למשימה Call REST Endpoint:

אסטרטגיה לטיפול בשגיאות במשימה Call REST Endpoint (התקשרות לנקודת קצה של REST) אסטרטגיה לטיפול בשגיאות במשימה Call REST Endpoint

כדי להוסיף את הכלי לזיהוי שגיאות, לוחצים על המשימה Call REST Endpoint (התקשרות לנקודת קצה של REST) בכלי לעיצוב שילובים כדי לפתוח את חלונית הגדרת המשימה. בקטע Error Catcher, מוסיפים את פרטי ה-Error Catcher. בדיאגרמה הבאה מוצג רכיב ללכידת שגיאות שהוגדר למשימה Call REST Endpoint:

רכיב לזיהוי שגיאות במשימה Call REST Endpoint (התקשרות לנקודת קצה של REST) רכיב לזיהוי שגיאות במשימה Call REST Endpoint (התקשרות לנקודת קצה של REST)

קודי שגיאה

בטבלה הבאה מתוארות השגיאות שבהן אתם עשויים להיתקל והסיבות לשגיאות האלה. ‫Application Integration משתמש בקודי השגיאה הקנוניים שמוגדרים ב-google.rpc.Code.

מידע על שגיאות ב-Application Integration ועל אסטרטגיות שונות לטיפול בשגיאות זמין במאמר שגיאות וטיפול בשגיאות.

סוג חריגה רגיל קוד קנוני קוד HTTP תיאור
FailedPreconditionException FAILED_PRECONDITION 400 לא ניתן לבצע את הבקשה במצב הנוכחי של המערכת.
BadRequestException INVALID_ARGUMENT 400 הלקוח ציין ארגומנט לא חוקי. כדי לקבל מידע נוסף, אפשר לקרוא את הודעת השגיאה ואת פרטי השגיאה.
UnauthenticatedException UNAUTHENTICATED 401 הבקשה לא אומתה עקב טוקן OAuth חסר, לא חוקי או שתוקפו פג.
ForbiddenException PERMISSION_DENIED 403 ללקוח אין הרשאה מספיקה. יכול להיות שהסיבה לכך היא שלטוקן ה-OAuth אין את היקפי ההרשאות הנכונים, ללקוח אין את ההרשאות הנדרשות או שה-API לא הופעל.
NotFoundException NOT_FOUND 404 המשאב שצוין לא נמצא.
AlreadyExistsException ALREADY_EXISTS 409 המשאב שהלקוח ניסה ליצור כבר קיים.
InternalError INTERNAL 500 שגיאת שרת פנימית. בדרך כלל באג בשרת. הבעיה הזו יכולה לקרות אם אחת מהמשימות או מהטריגרים מוגדרת בצורה שגויה.
UnimplementedException UNIMPLEMENTED 501 שיטת ה-API לא הוטמעה על ידי השרת.
ServiceUnavailableException UNAVAILABLE 503 השירות לא זמין. בדרך כלל השרת מושבת.
AbortedException ABORTED 409 התשובה גדולה מדי.