排解 Pub/Sub 連接器問題

本節提供疑難排解指南,說明使用 Pub/Sub 來源連接器Pub/Sub 接收器連接器時,常見問題的解決方法。

缺少 Pub/Sub 權限

如果代管 Kafka 服務帳戶沒有權限存取 Pub/Sub 資源,就會發生下列錯誤:

PERMISSION_DENIED: User not authorized to perform this action.

造成這項錯誤的可能原因如下:

  • Pub/Sub 來源連接器:Managed Kafka 服務帳戶可能沒有權限存取 Pub/Sub 訂閱項目。如要解決這個問題,請將下列兩個 Identity and Access Management (IAM) 角色授予代管 Kafka 服務帳戶:

    • Pub/Sub 訂閱者 (roles/pubsub.subscriber)
    • Pub/Sub 檢視器 (roles/pubsub.viewer)

    詳情請參閱「授予從 Pub/Sub 訂閱項目讀取資料的權限」。

  • Pub/Sub Sink 連接器:Managed Kafka 服務帳戶可能沒有權限發布至 Pub/Sub 主題。如要解決這個問題,請授予 Managed Kafka 服務 Pub/Sub 發布者 (roles/pubsub.publisher) IAM 角色。

    詳情請參閱「授予發布至 Pub/Sub 主題的權限」。

驗證訂閱項目時發生錯誤

如果 Pub/Sub 來源連接器找不到 Pub/Sub 訂閱項目,連接器就會失敗,並顯示類似下列的錯誤訊息:

org.apache.kafka.connect.errors.ConnectException: Error verifying the subscription SUBSCRIPTION for project PROJECT

如要解決這個問題,請確認連接器的cps.subscription設定指定正確的訂閱項目,且該訂閱項目存在於您的專案中。

連接器工作無法轉換記錄

如果連接器的鍵轉換器或值轉換器與記錄的資料類型不相容,連接器就會失敗,並顯示類似下列的錯誤:

org.apache.kafka.connect.errors.DataException: Invalid schema type for
CONVERTER_NAME: DATA_FORMAT

如要解決這個問題,請將鍵轉換器或值轉換器變更為正確的類別,以支援結構定義資料類型。

舉例來說,如果您將金鑰轉換器設為 ByteArrayConverter,可能會看到 "Invalid schema type for ByteArrayConverter: STRING" 錯誤。發生這項錯誤的原因是 ByteArrayConverter 不支援 STRING 類型。請改用 org.apache.kafka.connect.storage.StringConverter

後續步驟