You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Boto3创建AWS Glue连接MySQL遇InvalidInputException错误求助

排查AWS Glue CreateConnection的InvalidInputException问题

我一眼就看到了你代码里几个明显的问题,正是这些导致了连接属性验证失败:

1. ConnectionProperties的键名错误

Glue的JDBC连接对ConnectionProperties里的键名有严格要求,你把JDBC URL的键写成了'string',这是不对的,必须用官方规定的'JDBC_CONNECTION_URL'作为键名。

2. MatchCriteria的占位符未清理

MatchCriteria里的'string'是Boto3文档里的占位符,你需要移除它——如果不需要匹配条件,直接传空列表[]就行;如果需要匹配标签,再填入实际的标签值。

3. AvailabilityZone格式不正确

你填的'us-west-2'是AWS区域,而Glue要求的是具体的可用区(比如us-west-2a、us-west-2b),而且这个可用区必须和你指定的SubnetId所在的可用区一致。

修正后的代码

# create new connection
response = client.create_connection(
    ConnectionInput={
        'Name': 'tst_scrpt',
        'ConnectionType': 'JDBC',
        'MatchCriteria': [],  # 移除占位符,留空或添加实际标签
        'ConnectionProperties': {
            'JDBC_CONNECTION_URL': 'jdbc:mysql://xxxxx:3306/disxxx',
            'username':'root',
            'password':'ipxxxxx'
        },
        'PhysicalConnectionRequirements': {
            'SubnetId': 'subnet-04xxxxx',
            'SecurityGroupIdList': [
                'sg-xxxxx'
            ],
            'AvailabilityZone': 'us-west-2a'  # 替换为子网所在的具体可用区
        }
    }
)

额外检查点

除了上面的修改,你还可以确认以下几点:

  • 你指定的子网和安全组属于同一个VPC
  • 安全组sg-xxxxx已经配置了入站规则,允许Glue服务访问EC2上MySQL的3306端口
  • JDBC URL里的主机地址(xxxxx)是EC2实例的私有IP(因为Glue通过VPC连接),并且实例处于运行状态

内容的提问来源于stack exchange,提问作者user3476463

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:20:10