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: 找不到任何实现 Connector 且名称匹配的类……
- 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(或 AWS_SECRET_ACCESS_KEY))
解决方法
连接器代码报错: UnknownError.UnknownMessage: 最后一次操作失败。重试该操作。
当 MSK Connect 无法创建连接器并且连接器已转为“失败”状态时,就会出现此错误。
要找到失败的根本原因,请查看 MSK Connect 的日志事件。MSK Connect 会写入日志事件,您可以通过这些日志调试连接器。创建连接器时,可以指定零日志目标或以下日志目标之一:
- Amazon CloudWatch logs
- 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 字符。将所有 CRLF 字符("\r\n")替换为 LF 字符("\n")。
无效参数 serviceExecutionRoleArn: 服务关联角色 ARN 不能作为服务执行角色 ARN 提供。
当您使用一个与服务相关的角色创建连接器时,就会出现此错误。MSK Connect 不支持使用与服务相关的角色作为服务执行角色。必须创建单独的服务执行角色。有关如何创建自定义 AWS Identity and Access Management(IAM)角色的说明,请参阅创建向 AWS 服务委派权限的角色。指定您希望连接器使用的角色。此角色必须不同于服务内部用于创建连接器资源的服务相关角色 AWSServiceRoleForKafkaConnect。
org.apache.kafka.connect.errors.ConnectException: 找不到任何实现 Connector 且名称匹配的类……
要解决此错误,请尝试以下故障排除步骤:
- 删除连接器配置中可能存在的所有回车符(/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 Worker 配置中,将 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 S3 的 Amazon Virtual Private Cloud(Amazon VPC)端点。要创建从集群的 VPC 到 Amazon S3 的 Amazon VPC 端点,请完成以下步骤:
- 打开 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 到 Kinesis Data Firehose 的 Amazon VPC 端点。
要创建从集群的 VPC 到 Kinesis Data Firehose 的 Amazon VPC 端点,请按照上一节中的步骤操作。使用服务名称筛选器 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(或 AWS_SECRET_ACCESS_KEY))
当您用来创建连接器的 IAM 角色没有所需权限时,就会出现此错误。
查看您用于访问 Amazon MSK 的连接器的 IAM 角色的访问策略和信任关系。有关更多信息,请参阅服务执行角色。
相关信息

相关内容
- AWS 官方已更新 1 年前
- AWS 官方已更新 2 年前
- AWS 官方已更新 3 个月前