בדף הזה מוסבר איך לפתור בעיות שאתם עלולים להיתקל בהן במהלך השימוש ב-Eventarc.
לגבי בעיות ספציפיות ליעדים שאתם עשויים להיתקל בהן, אפשר לעיין במאמרים הבאים לפתרון בעיות:
ספק Eventarc
בקטע הזה מפורטים טיפים לפתרון בעיות במקור האירועים (הספק).
הספק לא קיים
בודקים שהספק קיים ושציינתם את מסנני הטריגר בצורה נכונה.
האירועים נוצרים מהספק, אבל לא מתקבלים ביעד
בודקים שמסננים אירועים מספקים שנמצאים באזור נתמך ליעד. מידע נוסף זמין במאמרים מיקומים שנתמכים על ידי Eventarc והסבר על מיקומי Eventarc.
הטריגר לא מעביר אירועים
מוודאים שהספק יוצר אירועים. בודקים את יומני הביקורת ב-Cloud ומוודאים שהשירות שנמצא במעקב כותב יומנים. אם היומנים נרשמים אבל האירועים לא מועברים, פנו לתמיכה.
מוודאים שקיים נושא Pub/Sub עם אותו שם טריגר.
כדי להציג רשימה של טריגרים בכל המיקומים, מריצים את הפקודה:
gcloud eventarc triggers list --location=-כדי להציג רשימה של נושאי Pub/Sub, מריצים את הפקודה:
gcloud pubsub topics listמוודאים ששם הנושא ב-Pub/Sub כולל את השם של הטריגר שנוצר. אם נושא Pub/Sub חסר, יוצרים נושא כשיוצרים את הטריגר.
כדי לתאר טריגרים ולזהות בעיות בתנאי של הטריגר, מריצים את הפקודה:
gcloud eventarc triggers describe TRIGGER_ID \ --location=LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
TRIGGER_ID: המזהה של הטריגר או מזהה מלא. -
LOCATION: המיקום של טריגר Eventarc.
-
הפקודה הקודמת מחזירה את התנאי של הטריגר. אם יש בעיה בנושא Pub/Sub, אחד מהתנאים הבאים מוחזר:
conditions: transport.pubsub.topic: code: NOT_FOUND message: Pub/Sub topic not found. Try recreating the trigger.
או
conditions: transport.pubsub.topic: code: UNKNOWN message: Pub/Sub topic status is unknown. Try requesting the trigger description again.
אם רלוונטי, מבצעים את הפעולות הבאות:
אם מוחזרת התוצאה
Pub/Sub topic not found, צריך ליצור מחדש את הטריגר עבור ספק, סוג אירוע ויעד ספציפיים](/eventarc/standard/docs/event-providers-targets#triggers), ואז ליצור את הנושא.אם מוחזרת התוצאה
Pub/Sub topic status is unknown, מריצים שוב את הפקודה כדי לתאר את הטריגר.אם הבעיה נמשכת, אפשר לפנות לתמיכה. מידע נוסף מופיע במאמר בנושא ניהול טריגרים.
בודקים את תקינות הנושא ב-Pub/Sub:
מאמתים את ההגדרות של נושא Pub/Sub. עוברים לדף נושאים.
מעקב אם ההודעות מתפרסמות בנושא עם המדד:
topic/send_message_operation_count. אם ההודעות לא מתפרסמות בנושא, כדאי לבדוק את יומני הביקורת של Cloud ולוודא שהשירות שבמעקב מפיק יומנים. אם היומנים נרשמים אבל האירועים לא מועברים, פנו לתמיכה.עוקבים אחרי המדד הבא כדי לוודא שההודעות נשלחות בהצלחה:
subscription/push_request_countעל ידיresponse_code. אם מדווח על שגיאות בדחיפה, צריך לבדוק את יומני השירות. אם נקודת הקצה המקבלת מחזירה קוד סטטוס שאינו OK, זה מצביע על כך שהקוד של Cloud Run לא פועל כמצופה, ועליכם לפנות לתמיכה.
טריגר Eventarc
בקטע הזה מפורטים טיפים לפתרון בעיות שקשורות לטריגר.
שגיאות מסוג Permission denied
אם נתקלתם בשגיאה
Failed to load service details: permission denied, ודאו שההרשאות של הטריגר מוגדרות בצורה נכונה, ושלחשבון השירות של Pub/Sub הוקצה התפקידiam.serviceAccountTokenCreator. למידע נוסף אפשר לקרוא את המאמר בקרת גישה באמצעות IAM.אם מופיעה השגיאה הבאה כשמנסים ליצור טריגר, צריך לחכות כמה דקות (יכול להיות שבע) ואז לנסות שוב ליצור את הטריגר:
Permission denied while using the Eventarc Service Agent. If you recently started to use Eventarc, it may take a few minutes before all necessary permissions are propagated to the Service Agent. Otherwise, verify that it has Eventarc Service Agent role.
סוכן שירות פועל בתור הזהות של שירות מסוים Google Cloud בפרויקט מסוים. מידע נוסף זמין במאמר סוכני שירות. אפשר גם לעיין בהרשאות של ניהול זהויות והרשאות גישה (IAM) עבור תפקיד סוכן השירות של Eventarc (
roles/eventarc.serviceAgent).אם עדיין מופיעה השגיאה הקודמת אחרי שניסיתם ליצור מחדש את המשאב, צריך לבצע את השלבים הבאים כדי לוודא שסוכן השירות של Eventarc קיים בפרויקט Google Cloud שלכם ושיש לו את התפקיד הנדרש:
- נכנסים לדף IAM במסוף Google Cloud .
- בכרטיסייה View by principals (הצגה לפי חשבונות משתמשים), מסמנים את התיבה Include Google-provided role grants (הכללה של תפקידים שניתנו על ידי Google).
ברשימה של חשבונות המשתמשים, מחפשים את חשבון השירות של Eventarc, בפורמט הבא:
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com- מוודאים שלסוכן השירות יש את התפקיד Eventarc Service Agent. אם לסוכן השירות אין את התפקיד, צריך לתת לו את התפקיד.
אם אתם מנסים להשתמש בחשבון שירות חוצה-פרויקטים ונתקלים בשגיאה 'ההרשאה נדחתה' עבור
iam.serviceAccounts.getAccessTokenאוiam.serviceAccounts.actAs, או אם אתם מקבלים הודעת שגיאה שדומה ל-...cross-project service accounts are disabledאו ל-Failed to impersonate..., ודאו שההרשאות מוגדרות בצורה נכונה. מידע נוסף מופיע במאמר בנושא שימוש בחשבון שירות חוצה-פרויקטים.
מפתח CMEK לא מוצג בנושא Pub/Sub
הפעלת ערוץ Eventarc עם מפתח הצפנה בניהול הלקוח (CMEK) מגנה על נושא Pub/Sub שמשמש כשכבת תעבורה על ידי Eventarc Standard. עם זאת, מפתח ה-CMEK לא מוצג דרך מסוףGoogle Cloud . כדי לוודא שמפתח CMEK מופעל בנושא Pub/Sub, משתמשים ב-Google Cloud CLI:
מתארים את טריגר Eventarc:
gcloud eventarc triggers describe TRIGGER_ID \ --location=LOCATIONמחליפים את מה שכתוב בשדות הבאים:
-
TRIGGER_ID: המזהה של טריגר Eventarc
LOCATION: המיקום של הטריגרמזהה הנושא ב-Pub/Sub מוחזר. לדוגמה:
topic: projects/PROJECT_ID/topics/TOPIC_ID
-
תאר את נושא Pub/Sub:
gcloud pubsub topics describe TOPIC_IDמחליפים את
TOPIC_IDבמזהה של נושא Pub/Sub שאוחזר בשלב הקודם.השם של מפתח ה-CMEK מוחזר. לדוגמה:
kmsKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME/grants/GRANT_ID
חיובים לא צפויים כשמשתמשים ב-Eventarc
כשיוצרים גורם מפעיל, בודקים אם המסננים שהוגדרו עלולים לגרום להפעלה של גורמים מפעילים ללא הגבלת זמן. כדי להימנע מחיובים לא צפויים בחשבון, כדאי להגדיר תקציבים והתראות באמצעות מסוף החיוב של Google Cloud. מידע נוסף זמין במאמר יצירת תקציב.
מידע קשור
- מידע נוסף על Eventarc זמין בסקירה הכללית.
- למדריך על פתרון בעיות ב-Eventarc, ראו ניפוי באגים בשירות Cloud Run באמצעות Eventarc.
- לפתרון בעיות בפרסום אירועים, אפשר לעיין במאמר בנושא פתרון בעיות בפרסום אירועים.
- לקבלת עזרה נוספת, אפשר לעיין במאמר קבלת תמיכה.