פתרון בעיות בפתיחת מטען ייעודי (payload)

בדף הזה מוסבר איך לפתור בעיות שקשורות לפריסת מטען ייעודי (payload).

שגיאות בקוד סטטוס של HTTP

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

400 בקשה שגויה

השגיאה הבאה מתרחשת כש-Pub/Sub לא מצליח לעבד את הבקשה בגלל הגדרה שגויה או נתונים חסרים.

400 Bad Request

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

  • המטען הייעודי (נתוני ההודעה) לא תואם לפורמט הבקשה הצפוי שצוין על ידי נקודת הקצה של ה-HTTP.
  • חסרות הכותרות הנדרשות לעיבוד הבקשה.
  • נקודת קצה (endpoint) שגויה של HTTP מוגדרת למינוי.

כדי לפתור את הבעיה, אפשר לנסות את הפתרונות הבאים:

  • בודקים את הפורמט של מטען הייעודי (נתוני ההודעה). חשוב לוודא שהפורמט תואם לפורמט הבקשה הצפוי שצוין על ידי נקודת הקצה של HTTP.
  • בודקים שהבקשה מכילה את הכותרות הנדרשות. אם הכותרות חסרות, יכול להיות שתצטרכו להוסיף אותן במאפייני ההודעה. דוגמה לכך היא Content-Type, אבל יכול להיות שיהיה צורך גם בפריטים אחרים.
  • מוודאים שנקודת הקצה של ה-HTTP שהוגדרה למינוי תקפה.
  • מפעילים תור הודעות שלא ניתן להעביר (DLQ) במינוי דחיפה שלכם. ההגדרה הזו מפנה מחדש הודעות פרטיות שלא ניתן למסור. מומלץ להפעיל DLQ אם מופיע מספר קטן של שגיאות 400 שרוצים לבדוק.

401 unauthorized / 403 forbidden

השגיאה הבאה מתרחשת כש-Pub/Sub לא יכול לעבד את הבקשה בגלל פרטי כניסה שגויים או לא תקינים.

401 unauthorized / 403 forbidden

השגיאה הזו מתרחשת כי המינוי לדחיפה לא מאומת.

כדי לפתור את הבעיה, אפשר לנסות את הפתרונות הבאים:

  • מפעילים אימות באמצעות התראות Push. חשוב להשתמש באימות Push אם אתם משלבים עם Cloud Run או App Engine.

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

‫415 Unsupported Media Type

השגיאה הבאה מתרחשת כש-Pub/Sub לא יכול לעבד את הבקשה כי פורמט המטען הייעודי (payload) לא נתמך.

415 Unsupported Media Type

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

  • בנקודת הקצה חסרה כותרת חובה של סוג מדיה.

כדי לפתור את הבעיה, נסו את הפתרון הבא:

  • סביר להניח שנקודת הקצה שלכם דורשת כותרת Content-Type. כברירת מחדל, כשמבטלים את העטיפה של המטען הייעודי (payload), לא מוגדרת כותרת של סוג מדיה. אפשר להגדיר כותרת Content-Type על ידי צירוף שלה כמאפיין של הודעת פרסום.

‫431 כותרת הבקשה גדולה מדי / 413 תוכן גדול מדי

השגיאה הבאה מתרחשת כש-Pub/Sub לא יכול לעבד את הבקשה כי התוכן שנשלח בבקשה גדול מדי.

431 request header fields too Large / 413 content too large

השגיאה הזו מתרחשת אם המאפיינים בהודעת Pub/Sub חורגים ממגבלת הגודל של הכותרת בשרת.

כדי לפתור את הבעיות האלה, אפשר לנסות את הפתרונות הבאים:

  • משביתים את האפשרות כתיבת מטא-נתונים.
  • מפעילים תור הודעות שלא ניתן להעביר (DLQ) במינוי דחיפה. כך, הודעות פרטיות שלא ניתן להעביר מנותבות מחדש. לאחר מכן, המינוי ממשיך לפעול, אבל ההודעות עם השגיאות מנותבות מחדש לנושא נפרד לצורך ניתוח נוסף.

איך בודקים אם בוטלה העטיפה של מטען הייעודי (payload)

  1. נכנסים לדף Subscriptions במסוף Google Cloud .

    הרשמות פתוחות ל-Pub/Sub

  2. לוחצים על שם השירות.

    ייפתח דף הפרטים של השירות.

  3. בטבלת ההגדרות, מחפשים את הערכים הבאים: Message data unwrapping ו-Write message metadata.

    הסטטוס של עטיפת מטען הייעודי (מופעל או מושבת) מוצג בשורה המתאימה בטבלה.

המאמרים הבאים

  • אם אתם עדיין נתקלים בבעיות בפתיחת המטען הייעודי (payload), אפשר לעיין במאמר בנושא קבלת תמיכה.