פתרון בעיות

בדף הזה מוסבר איך לפתור בעיות שאתם עלולים להיתקל בהן במהלך השימוש ב-Eventarc.

לגבי בעיות ספציפיות ליעדים שאתם עשויים להיתקל בהן, אפשר לעיין במאמרים הבאים לפתרון בעיות:

ספק Eventarc

בקטע הזה מפורטים טיפים לפתרון בעיות במקור האירועים (הספק).

הספק לא קיים

בודקים שהספק קיים ושציינתם את מסנני הטריגר בצורה נכונה.

האירועים נוצרים מהספק, אבל לא מתקבלים ביעד

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

הטריגר לא מעביר אירועים

  1. מוודאים שהספק יוצר אירועים. בודקים את יומני הביקורת ב-Cloud ומוודאים שהשירות שנמצא במעקב כותב יומנים. אם היומנים נרשמים אבל האירועים לא מועברים, פנו לתמיכה.

  2. מוודאים שקיים נושא Pub/Sub עם אותו שם טריגר.

    1. כדי להציג רשימה של טריגרים בכל המיקומים, מריצים את הפקודה:

      gcloud eventarc triggers list --location=-
      
    2. כדי להציג רשימה של נושאי Pub/Sub, מריצים את הפקודה:

      gcloud pubsub topics list
      

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

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

      gcloud eventarc triggers describe TRIGGER_ID \
        --location=LOCATION
      

      מחליפים את מה שכתוב בשדות הבאים:

      • TRIGGER_ID: המזהה של הטריגר או מזהה מלא.
      • LOCATION: המיקום של טריגר Eventarc.
    4. הפקודה הקודמת מחזירה את התנאי של הטריגר. אם יש בעיה בנושא 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, מריצים שוב את הפקודה כדי לתאר את הטריגר.

      • אם הבעיה נמשכת, אפשר לפנות לתמיכה. מידע נוסף מופיע במאמר בנושא ניהול טריגרים.

  3. בודקים את תקינות הנושא ב-Pub/Sub:

    1. מאמתים את ההגדרות של נושא Pub/Sub. עוברים לדף נושאים.

      לדף Topics

    2. מעקב אם ההודעות מתפרסמות בנושא עם המדד: topic/send_message_operation_count. אם ההודעות לא מתפרסמות בנושא, כדאי לבדוק את יומני הביקורת של Cloud ולוודא שהשירות שבמעקב מפיק יומנים. אם היומנים נרשמים אבל האירועים לא מועברים, פנו לתמיכה.

    3. עוקבים אחרי המדד הבא כדי לוודא שההודעות נשלחות בהצלחה: 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 שלכם ושיש לו את התפקיד הנדרש:

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

      כניסה לדף IAM

    2. בכרטיסייה View by principals (הצגה לפי חשבונות משתמשים), מסמנים את התיבה Include Google-provided role grants (הכללה של תפקידים שניתנו על ידי Google).
    3. ברשימה של חשבונות המשתמשים, מחפשים את חשבון השירות של Eventarc, בפורמט הבא:

      service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com

    4. מוודאים שלסוכן השירות יש את התפקיד 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:

  1. מתארים את טריגר Eventarc:

      gcloud eventarc triggers describe TRIGGER_ID \
          --location=LOCATION
    

    מחליפים את מה שכתוב בשדות הבאים:

    • TRIGGER_ID: המזהה של טריגר Eventarc
    • LOCATION: המיקום של הטריגר

      מזהה הנושא ב-Pub/Sub מוחזר. לדוגמה: topic: projects/PROJECT_ID/topics/TOPIC_ID

  2. תאר את נושא 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. מידע נוסף זמין במאמר יצירת תקציב.