Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
我嘗試使用 Amazon MSK Connect 建立連接器而發生錯誤時,如何疑難排解?
我嘗試使用 Amazon Managed Streaming for Apache Kafka (Amazon MSK) Connect 以建立連接器時,收到錯誤訊息。
簡短說明
您使用 MSK Connect 建立連接器時,可能會收到下列其中一種錯誤訊息:
- 連接器程式碼發生問題: UnknownError.UnknownMessage: 最後一個操作失敗。再嘗試操作一次。
- 無效參數 connectorConfiguration: 遺漏下列必要欄位或其中包含無效值:tasks.max
- 無效參數 serviceExecutionRoleArn: 無法提供服務連結角色 ARN 作為服務執行角色 ARN
- org.apache.kafka.connect.errors.ConnectException: 找不到任何名稱相符的實作連接器類別...
- org.apache.kafka.common.errors.TimeoutException: 等待傳送呼叫逾時。呼叫:fetchMetadata
- org.apache.kafka.common.errors.SaslAuthenticationException: 連線次數太多
- org.apache.kafka.connect.errors.ConnectException: com.amazonaws.SdkClientException: 無法執行 HTTP 要求: 無法連線至 s3.eu-central-1.amazonaws.com:443 [s3.eu-central-1.amazonaws.com/52.219.47.235 ]:連線逾時
- org.apache.kafka.connect.errors.ConnectException: com.amazonaws.SdkClientException: 無法執行 HTTP 要求: 無法連線至 firehose.us-east-2.amazonaws.com:443 [firehose.us-east-2.amazonaws.com/52.95.23.168 ]:連線逾時
- 連線至節點 - 1 (代理程式端點) 驗證失敗,原因: 拒絕存取
- 錯誤:連線至節點 -3 (b-1.<cluster>.<region>.amazonaws.com/INTERNAL_IP) 驗證失敗,原因: 發生錯誤:(java.security .PrivilegedActionException: javax.security .sasl.SaslException: 找不到 AWS IAM 憑證 [原因:aws_msk_iam_auth_shadow.com.amazonaws.SdkClientException: 無法載入 AWS 憑證 ...........無法從環境變數載入 AWS 憑證(AWS_ACCESS_KEY_ID (或 AWS_ACCESS_KEY) 和 AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY))
解決方法
連接器程式碼發生問題: UnknownError.UnknownMessage: 最後一個操作失敗。再嘗試操作一次。
MSK Connect 無法建立連接器,且連接器變為失敗狀態時,您會收到此錯誤訊息。
要找出失敗的根本原因,檢閱 MSK Connect 的日誌事件。MSK Connect 會寫入日誌事件,供您進行連接器偵錯。建立連接器時,您可以不指定日誌目的地,或指定下列其中一個日誌目的地:
- Amazon CloudWatch 日誌
- Amazon Simple Storage Service (Amazon S3)
- Amazon Kinesis Data Firehose
無效參數 connectorConfiguration: 遺漏下列必要欄位或其中包含無效值:tasks.max
如果在組態的尾端使用歸位 (/r) 字元,則您會收到下列錯誤:
Invalid parameter connectorConfiguration: The following required field is missing or has invalid value: tasks.max
要解決此錯誤,嘗試下列疑難排解步驟:
- 在連接器組態對話方塊,手動輸入組態資訊,而不是從文件等其他來源,複製貼上資訊。
- 如果您使用 Windows 作業系統,則使用文字編輯器 (例如 Notepad++)。您可以使用文字編輯器以檢查並移除歸位字元 (CRLF) 及任何行尾 (EOL) 字元。要移除歸位字元,複製組態並貼至文字編輯器。從您的文字編輯器,選擇檢視和顯示符號。然後,選擇顯示所有字元以檢閱組態中可能存在的任何 CRLF 或 EOL 字元。使用 LF 字元 ("\n"),取代所有 CRLF 字元 ("\r\n")。
無效參數 serviceExecutionRoleArn: 無法提供服務連結角色 ARN 作為服務執行角色 ARN。
您使用服務連結角色以建立連接器時,就會收到此錯誤訊息。MSK Connect 不支援使用 service-linked 角色作為服務執行角色。您必須建立個別的服務執行角色。如需建立自訂 AWS Identity and Access Management (IAM) 角色的指示,請參閱建立角色以將權限委派給 AWS 服務。指定您希望連結器使用的角色。此角色必須與服務內部用於建立連結器資源的 service-linked 角色 AWSServiceRoleForKafkaConnect 不同。
org.apache.kafka.connect.errors.ConnectException: 找不到任何名稱相符的實作連接器類別...
要解決此錯誤,嘗試下列疑難排解步驟:
- 移除連結器組態中可能存在的任何歸位字元 (/r)。
- 如果連結器外掛程式需要多個檔案,將這些檔案加入壓縮檔案。建立連接器外掛程式時,會使用壓縮檔案。壓縮檔案的 JAR 檔案也必須為該外掛程式記錄預期的檔案結構。最佳實務是開啟 MSK Connect 日誌並檢閱以確認正確設定檔案結構。
org.apache.kafka.common.errors.TimeoutException: 等待傳送呼叫逾時。呼叫:fetchMetadata
如果連接器無法連線至您的 MSK 叢集,您會收到 TimeOutException 錯誤。要解決此錯誤,嘗試下列疑難排解步驟:
- 檢查包括連接埠號碼等屬性指定的啟動程序伺服器是否有效且正確。
- 確定叢集的安全群組允許與 MSK Connect 相關的安全群組傳入的流量。如果使用 MSK 叢集,新增允許本身傳入流量的規則。如需設定這些規則的詳細資訊,請參閱安全群組規則。
org.apache.kafka.common.errors.SaslAuthenticationException: 連線次數太多
如果您的 MSK 叢集在具備 IAM 存取控制的 kafka.t3.small 代理程式類型執行,注意連線限制。kafka.t3.small 執行個體類型只接受每個代理程式每秒一個 TCP 連線。超過連線限制時,建立操作會失敗。因此,您會收到 SaslAuthenticationException 錯誤,表示憑證無效。如需 MSK 叢集和 IAM 存取控制的詳細詳細資訊,請參閱 Amazon MSK 如何搭配 IAM 使用。
要解決 SaslAuthenticationException 錯誤,請執行下列其中一項動作:
- 在您的 MSK Connect 工作組態,將 reconnect.backoff.ms 和 reconnect.backoff.max.ms 的值更新為「1000」或更高的值。
- 升級到更大的代理程式執行個體類型 (例如 kafka.m5.large 或更高)。如需 Amazon MSK 代理程式類型和如何選擇正確代理程式類型的詳細資訊,請參閱代理程式類型和適當調整叢集大小。
org.apache.kafka.connect.errors.ConnectException: com.amazonaws.SdkClientException: 無法執行 HTTP 要求: 無法連線至 s3.us-east-1.amazonaws.com:443:連線逾時
連接器無法連線至 Amazon S3 時,您會收到此錯誤訊息。要疑難排解此問題,確定您已從叢集的 VPC,將 Amazon Virtual Private Cloud (Amazon VPC) 端點建立到 Amazon S3。要從叢集的 VPC 將 Amazon VPC 端點建立到 Amazon S3,完成下列步驟:
- 開啟 Amazon VPC 主控台。
- 在導覽窗格,選擇端點。
- 選擇建立端點。
- 針對服務類別,選擇 AWS 服務。
- 在服務下,選擇服務名稱篩選條件,然後選取 com.amazonaws.<region>.s3。將 <region> 取代為您的 AWS 區域。
選擇類型篩選條件,然後選擇閘道。 - 針對 VPC,選取叢集的 VPC。
- 在路由表下,選取與叢集子網路相關的路由表。
- 選擇建立端點。
org.apache.kafka.connect.errors.ConnectException: com.amazonaws.SdkClientException: 無法執行 HTTP 要求: 無法連線至 firehose.us-east-2.amazonaws.com:443:連線逾時
連接器無法連線至 Amazon Kinesis Data Firehose 時,您會收到此錯誤訊息。要疑難排解此問題,確定您已從叢集的 VPC 將 Amazon VPC 端點建立到 Kinesis Data Firehose。
要從叢集的 VPC 將 Amazon VPC 端點建立到 Kinesis Data Firehose,遵循前一節的步驟操作。使用服務名稱篩選條件 com.amazonaws.<region>.kinesis-firehose。
連線至節點 - 1 (b1.<cluster>.<region>.amazonaws.com) 驗證失敗,原因: 拒絕存取
MSK Connect 的 IAM 使用者沒有建立連接器的必要權限時,您會收到此錯誤訊息。
您使用 MSK Connect 建立連接器時,您必須指定要使用的 IAM 角色。您的服務執行角色必須擁有下列信任政策,以便 MSK Connect 擔任此角色:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "kafkaconnect.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "Account-ID" }, "ArnLike": { "aws:SourceArn": "MSK-Connector-ARN" } } }] }
如果您想與連接器搭配使用的 MSK 叢集採用 IAM 驗證,則您必須將下列權限政策新增到連接器的服務執行角色:
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kafka-cluster:Connect", "kafka-cluster:DescribeCluster" ], "Resource": [ "cluster-arn" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:ReadData", "kafka-cluster:DescribeTopic" ], "Resource": [ "ARN of the topic that you want a sink connector to read from" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:WriteData", "kafka-cluster:DescribeTopic" ], "Resource": [ "ARN of the topic that you want a source connector to write to" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:CreateTopic", "kafka-cluster:WriteData", "kafka-cluster:ReadData", "kafka-cluster:DescribeTopic" ], "Resource": [ "arn:aws:kafka:region:account-id:topic/cluster-name/cluster-uuid/__amazon_msk_connect_*" ] }, { "Effect": "Allow", "Action": [ "kafka-cluster:AlterGroup", "kafka-cluster:DescribeGroup" ], "Resource": [ "arn:aws:kafka:region:account-id:group/cluster-name/cluster-uuid/__amazon_msk_connect_*", "arn:aws:kafka:region:account-id:group/cluster-name/cluster-uuid/connect-*" ] } ] }
如需尋找您叢集的 UUID 和建構主題 ARN 的資訊,請參閱資源。
錯誤:連線至節點 -3 (b-1.<cluster>.<region>.amazonaws.com/INTERNAL_IP ) 驗證失敗,原因: 發生錯誤:(java.security .PrivilegedActionException: javax.security .sasl.SaslException: 找不到 AWS IAM 憑證 [原因:aws_msk_iam_auth_shadow.com.amazonaws.SdkClientException: 無法載入 AWS 憑證 ...........無法從環境變數載入 AWS 憑證(AWS_ACCESS_KEY_ID (或 AWS_ACCESS_KEY) 和 AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY))
您用於建立連接器的 IAM 角色沒有必要權限時,您會收到此錯誤訊息。
針對您用於存取 Amazon MSK 的連接器,檢閱 IAM 角色的存取政策和信任關係。如需詳細資訊,請參閱服務執行角色。
相關資訊

相關內容
- 已提問 5 個月前lg...
- 已提問 5 個月前lg...
- 已提問 12 天前lg...
- 已提問 1 年前lg...
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 2 年前