ניפוי באגים בתוסף

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

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

  • כלי המעקב של Apigee Edge הוא כלי שבו אפשר לבצע בדיקות חוזרות של קוד proxy של API ולערוך אותו בזמן הפיתוח שלו. הודעות מעקב כוללות שגיאות מקוד ה-proxy של ה-API, כולל שרת proxy של API ותצורת מדיניות.

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

  • תוספים יוצרים רשומות ביומן בזמן הריצה. (יומני תוספים זמינים רק למנהלי מערכת בארגון).

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

    היומנים כוללים גם רשומות מקוד תוסף פנימי. כשמעיינים ביומנים, חשוב לזכור שחלק מהערכים אינם רלוונטיים לשגיאה שאתם מתקנים. רשומות יומן שקשורות לתוספים בדרך כלל מתחילות במילה details, כמו ברשומת היומן הבאה מהתוסף Cloud Pub/Sub:

    details: 'Invalid resource name given (name=projects/example-test-123456/topic/extension-example). Refer to https://cloud.google.com/pubsub/docs/admin#resource_names for more information.'
    

סוגי שגיאות וגורמים להן

עיבוד הבקשות של תוסף עובר ממדיניות 'יתרונות מרכזיים של תוסף' בשרת proxy של API, דרך התוסף, אל המשאב החיצוני, וחזרה אליו. לכן יכולה להתרחש שגיאה בכל אחד מהמקומות האלה.

השגיאות שמוצגות עשויות להשתייך לקטגוריות הבאות.

שגיאות בהגדרת התוסף

זוהי ההגדרה שעושה מנהל מערכת בארגון כשהוא מוסיף תוסף לסביבה.

לדוגמה, אם מגדירים לתוסף Cloud Logging מזהה פרויקט שגוי ב-Google Cloud, השירות Google Cloud Logging יחזיר הודעת שגיאה לתוסף. פרטים על השגיאות האלה מופיעים בדרך כלל ביומן התוספים.

הוכחה בכלי המעקב

בעורך ה-proxy, השגיאות האלה יופיעו בדרך כלל כשגיאה ברמה 4xx או 5xx. עם זאת, עורך ה-proxy לא יציג פרטים ספציפיים על סיבת השגיאה, חוץ מהעובדה שהתוסף החזיר שגיאה.

{
  "fault": {
    "faultstring":"Execution of ConnectorCallout Logging-Extension failed. Reason: Connector returned error statuscode=500",
    "detail": {
      "errorcode":"steps.connectorcallout.ExecutionFailed"
    }
  }
}

הוכחה ביומני תוספים

אם יש פרטים על שגיאה מהסוג הזה, היא תופיע ברישומים ביומן של התוסף. הודעת השגיאה הבאה, שהוחזרה על ידי שירות Cloud Pub/Sub, נובעת ממזהה פרויקט שגוי.

details: 'Project does not exist: example-test-12345'

שגיאות בתצורת המדיניות של תוסף היתרונות המרכזיים

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

  • ערכים שגויים שהוערכו על ידי המשאב החיצוני

    המצב הזה עשוי להתרחש כששגיאת ההגדרה הופיעה כתקינה לתוסף, אבל לא הייתה חוקית עבור המשאב החיצוני. לדוגמה, אם התוסף מעביר מזהה מסד נתונים שגוי ל-Cloud Spanner, Cloud Spanner יחזיר שגיאה שתתועד ביומן התוספים:

    details: 'Database not found: projects/example-test-123456/instances/spanner-extension-example-db/databases/my-business-d'
    

    מצב כזה יכול לקרות גם במקרה של הגדרה שגויה של קובץ JSON ברכיב <Input> של המדיניות. בתוספים מסוימים, חלק מה-JSON מעובד על ידי התוסף וחלק מועבר למשאב. לדוגמה, תצורת JSON של התוסף Cloud Logging כוללת אובייקט metadata שהתוכן שלו מועבר אל Cloud Logging. שמות מפתחות שגויים, כמו typ במקום type, עלולים להחזיר שגיאות מהמשאב החיצוני שמופיעות כרשומות ביומן התוספים:

    details: 'Resource type cannot be empty'
    
  • ערכים שגויים שהתוסף העריך

    השגיאות האלה כוללות שגיאות תחביר בחלקים של רכיב JSON של <Input> שנבדקו בהתאם למדיניות, איות שגוי של שם הפעולה ברכיב <Action> וכן הלאה. השגיאות האלה יופיעו בדרך כלל בכלי המעקב, אבל לא ביומני התוספים.

הוכחה בכלי המעקב

בעורך ה-proxy, השגיאות האלה יופיעו בדרך כלל כשגיאה ברמה 4xx או 5xx. עם זאת, עורך ה-proxy לא יציג פרטים ספציפיים על סיבת השגיאה, חוץ מהעובדה שהתוסף החזיר שגיאה. השגיאה הבאה מופיעה בכלי המעקב כשאיות שגוי של שם הפעולה בתוסף של Cloud Firestore.

{
  "fault":{
    "faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404","detail":
    {
      "errorcode":"steps.connectorcallout.ExecutionFailed"
    }
  }
}

הוכחה ביומני תוספים

אם הגדרת המדיניות מובילה לשגיאת עיבוד במשאב החיצוני, השגיאה בדרך כלל תופיע ביומן.

זוהי שגיאה שבה הבקשה למשאב החיצוני לא הצליחה מסיבות שלא קשורות לתוסף.

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

הוכחה בכלי המעקב

בעורך ה-proxy, השגיאות האלה יופיעו בדרך כלל כשגיאה ברמה 4xx או 5xx. עם זאת, עורך ה-proxy לא יציג פרטים ספציפיים לגבי סיבת השגיאה, מלבד לומר שהתוסף החזיר שגיאה.

{
  "fault":{
    "faultstring":"Execution of ConnectorCallout Add-User-Data failed. Reason: Connector returned error statuscode=404",
    "detail":{
      "errorcode":"steps.connectorcallout.ExecutionFailed"
    }
  }
}

הוכחה ביומני תוספים

היומן יכלול בדרך כלל רשומות עם הודעות מהמשאב החיצוני עצמו. הודעת היומן הבאה מ-Cloud Spanner מתארת את השגיאה הקיימת בערך המפתח הראשי.

details: 'Row [jonesy42] in table user already exists'