本頁面說明如何解決使用 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
:觸發條件 ID 或完整修飾 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 主題的健康狀態:
Eventarc 觸發條件
本節提供觸發事件問題的疑難排解提示。
權限遭拒錯誤
如果您遇到
Failed to load service details: permission denied
錯誤,請確認觸發事件權限設定正確無誤,且 Pub/Sub 服務帳戶已獲授iam.serviceAccountTokenCreator
角色。詳情請參閱「存取權控管」。如果在嘗試建立觸發條件時遇到下列錯誤,請稍候幾分鐘 (最多 7 分鐘),然後再試一次:
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 服務的識別碼。詳情請參閱「服務代理」,並查看 Eventarc 服務代理角色 (
roles/eventarc.serviceAgent
) 的權限。如要確認Google Cloud 專案中是否有 Eventarc 服務代理,且該代理具有必要的角色,請完成下列步驟:
前往 Google Cloud 控制台的「IAM」頁面。
在「權限」分頁中,勾選「包含 Google 提供的角色授予項目」核取方塊。
在「Principals」清單中,找出 Eventarc 服務代理程式,其格式如下:
service-PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
確認服務代理人是否具備 Eventarc 服務代理人角色。如果服務代理沒有角色,請授予角色。
如果您嘗試使用跨專案服務帳戶,但發生
iam.serviceAccounts.getAccessToken
或iam.serviceAccounts.actAs
的權限遭拒錯誤,或是收到類似...cross-project service accounts are disabled
或Failed to impersonate...
的錯誤訊息,請確認權限設定正確無誤。詳情請參閱「使用跨專案服務帳戶」一文。
Pub/Sub 主題未顯示 CMEK 金鑰
使用客戶管理的加密金鑰 (CMEK) 啟用 Eventarc 管道,可保護 Eventarc Standard 用來做為傳輸層的 Pub/Sub 主題。不過,Google Cloud 控制台不會顯示 CMEK 金鑰。您可以使用 Google Cloud CLI,確認 Pub/Sub 主題是否已啟用 CMEK 金鑰:
說明 Eventarc 觸發條件:
gcloud eventarc triggers describe TRIGGER_ID \ --location=LOCATION
更改下列內容:
TRIGGER_ID
:Eventarc 觸發事件的 IDLOCATION
:觸發條件的地點系統會傳回 Pub/Sub 主題 ID。例如:
topic: projects/PROJECT_ID/topics/TOPIC_ID
說明 Pub/Sub 主題:
gcloud pubsub topics describe TOPIC_ID
將
TOPIC_ID
替換為上一個步驟中擷取的 Pub/Sub 主題 ID。系統會傳回 CMEK 金鑰名稱。例如:
kmsKeyName: projects/PROJECT_ID/locations/LOCATION/keyRings/RING_NAME/cryptoKeys/KEY_NAME/grants/GRANT_ID
使用 Eventarc 時產生未預期的費用
建立觸發條件時,請檢查設定的篩選器是否會導致觸發條件無限期啟動。為避免帳單產生非預期的費用,請使用 Google Cloud的帳單資訊主控台設定預算和快訊。詳情請參閱「建立預算」。
相關資訊
- 如要進一步瞭解 Eventarc,請參閱總覽。
- 如需 Eventarc 疑難排解教學課程,請參閱「使用 Eventarc 針對 Cloud Run 服務進行偵錯」。
- 如要瞭解事件發布問題,請參閱排解事件發布問題。
- 如需進一步協助,請參閱「取得支援」。