如何解决AWS Glue Crawler连接公开MongoDB的无效连接错误
解决AWS Glue Crawler连接公开MongoDB时的"Unable to resolve any valid connection"错误
以下是针对该错误的具体排查和解决步骤:
核对Glue连接配置
确保创建的MongoDB连接字符串格式完全正确:- 带认证实例:
mongodb://<用户名>:<密码>@<主机地址>:<端口>/<认证数据库> - 无认证公开实例:
mongodb://<主机地址>:<端口>
同时确认Glue连接的连接类型选择为MongoDB,避免选错类型导致解析失败。
- 带认证实例:
验证网络连通性
- 检查Glue Crawler所属VPC的安全组出站规则,确认允许访问MongoDB的目标端口(默认27017,自定义端口需对应),可临时设置为允许所有出站流量进行测试。
- 在同VPC的EC2实例上执行
mongo <你的连接字符串>命令,验证是否能正常连接到MongoDB实例,排除网络层面的问题。
检查MongoDB的IP访问限制
公开MongoDB通常会有IP白名单限制,需确认:- MongoDB实例的防火墙/安全组已将Glue Crawler所在VPC的公网IP段加入允许列表;
- 如果是云托管MongoDB(如MongoDB Atlas),检查IP访问列表是否包含Glue的出口IP,或临时设置为允许所有IP进行测试(生产环境不建议)。
确认Glue Crawler的IAM权限
确保Crawler的执行角色具备以下权限:- 基础Glue操作权限:
glue:GetConnection、glue:StartCrawler等; - 若使用Secrets Manager存储MongoDB凭证,需添加
secretsmanager:GetSecretValue权限; - 若通过VPC访问,需具备
ec2:DescribeNetworkInterfaces等VPC相关权限。
- 基础Glue操作权限:
处理连接字符串的特殊字符
如果MongoDB用户名或密码包含@、:、/等特殊字符,必须进行URL编码(例如@替换为%40),否则会导致Glue解析连接字符串失败。
错误信息引用
[cb423c7c-b0ef-4649-92ea-c784ddd4aa96] ERROR : Unable to resolve any valid connection (Service: AWSGlueJobExecutor; Status Code: 400; Error Code: InvalidInputException; Request ID: 9148b2a0-cb4e-41b6-982f-6cdd881b3859; Proxy: null)
内容的提问来源于stack exchange,提问作者Kay
相关产品推荐
相关产品推荐

