本節提供疑難排解指南,說明使用 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 訂閱者 (
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。