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

通过CloudFormation配置带JdbcTargets的Glue::Crawler遇报错问题

解决AWS Glue Crawler(JdbcTarget)CloudFormation部署报错及相关疑问

首先回答你的核心疑问:是的,必须使用JdbcTarget来配置Glue Crawler爬取RDS Postgres数据。Glue Crawler针对Postgres这类JDBC兼容的关系型数据库,只能通过JdbcTarget类型指定爬取目标,没有其他内置目标类型可以替代这个场景。

接下来解决你遇到的InvalidInputException: Connection name cannot be equal to null or empty报错,通常有这几个排查和修复方向:

  • 确认CloudFormation模板中JdbcTarget的ConnectionName配置正确
    你需要确保模板里的JdbcTarget块明确指定了已存在的Glue Connection名称,且引用方式正确。如果是在同一个堆栈中创建Glue Connection,一定要用!Ref引用资源,同时添加DependsOn确保Crawler在Connection创建完成后再部署,避免资源未就绪导致的找不到连接名称问题。示例模板片段如下:

    Resources:
      MyGlueRDSConnection:
        Type: AWS::Glue::Connection
        Properties:
          ConnectionInput:
            ConnectionType: JDBC
            ConnectionProperties:
              JDBC_CONNECTION_URL: "jdbc:postgresql://<your-rds-endpoint>:5432/<db-name>"
              USERNAME: "<db-username>"
              PASSWORD: "<db-password>"
            PhysicalConnectionRequirements:
              SecurityGroupIdList:
                - !Ref MyRDSSecurityGroup
              SubnetId: !Ref MySubnet
    
      MyGlueCrawler:
        Type: AWS::Glue::Crawler
        Properties:
          Name: RecordsCrawler
          Role: !Ref MyGlueCrawlerRole
          DatabaseName: !Ref MyGlueDatabase
          Targets:
            JdbcTargets:
              - ConnectionName: !Ref MyGlueRDSConnection
                Path: "<db-name>.<schema-name>%" # 例如:mydb.public%
          DependsOn: MyGlueRDSConnection
    
  • 验证Glue Connection的有效性
    确保你指定的Glue Connection本身配置正确且可用:

    • ConnectionType必须设置为JDBC
    • JDBC_CONNECTION_URL严格遵循Postgres格式:jdbc:postgresql://<endpoint>:5432/<db-name>
    • 配置的用户名和密码拥有目标RDS数据库的访问权限
    • 安全组规则允许Glue服务访问RDS实例(如果Glue部署在VPC内,需确保子网和安全组的网络连通性)
  • 检查JdbcTarget的Path格式
    Path参数必须遵循数据库名.模式名%的格式,比如你的Postgres数据库是salesdb、模式是public,那Path就要写salesdb.public%,格式错误也可能间接引发连接相关的报错。

  • 确认Crawler执行角色的权限
    你的Glue Crawler角色需要具备以下关键权限:

    • 访问Glue Connection的权限(如glue:GetConnection)
    • 访问RDS实例的权限(VPC内的RDS需确保角色有对应VPC资源的访问权限,且RDS安全组允许角色的ENI访问)
    • 写入Glue Data Catalog的权限(如glue:CreateTable)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:56:54