Amazon web services 在CloudFormation上使用JdbcTargets指定Glue::Crawler

Amazon web services 在CloudFormation上使用JdbcTargets指定Glue::Crawler,amazon-web-services,amazon-cloudformation,aws-glue,Amazon Web Services,Amazon Cloudformation,Aws Glue,我正在尝试设置AWS胶水,以便使用CloudFormation读取RDS Postgres。为了做到这一点,我需要使用JdbcTarget选项创建一个爬虫程序。(或者我没有?) 但是在CloudFormation上创建堆栈将失败: CREATE|u失败| AWS::Glue::Crawler | Records |连接名称不能等于null或空。(服务:AWSGlue;状态代码:400;错误代码:InvalidInputException; 即使你说: 连接名 用于JDBC目标的连接的名称 必填项

我正在尝试设置AWS胶水,以便使用CloudFormation读取RDS Postgres。为了做到这一点,我需要使用JdbcTarget选项创建一个爬虫程序。(或者我没有?)

但是在CloudFormation上创建堆栈将失败:

CREATE|u失败| AWS::Glue::Crawler | Records |连接名称不能等于null或空。(服务:AWSGlue;状态代码:400;错误代码:InvalidInputException;

即使你说:

连接名

用于JDBC目标的连接的名称

必填项:否


使用CloudFormation的正确AWS Glue设置是什么,允许我从RDS读取?

您确实缺少了
ConnectionName
属性,该属性应该包含您缺少的连接资源的名称。您正在设置的
Path
属性用于选择要爬网的架构/表(
dbname/%/%
包含所有)。有关详细信息,请参阅)

您的模板应该类似于

  MyDbConnection:
    Type: "AWS::Glue::Connection"
    Properties:
      CatalogId: !Ref 'AWS::AccountId'
      ConnectionInput:
        Description: "JDBC Connection to my RDS DB"
        PhysicalConnectionRequirements:
          AvailabilityZone: "eu-central-1a"
          SecurityGroupIdList:
           - my-sec-group-id
          SubnetId: my-subnet-id
        ConnectionType: "JDBC"
        ConnectionProperties:
          "JDBC_CONNECTION_URL": "jdbc:postgresql://host:5432/database"
          "USERNAME": "my-db-username"
          "PASSWORD": "my-password"
  Records:
    Type: 'AWS::Glue::Crawler'
    Properties:
      DatabaseName: transact
      Targets:
        JdbcTargets:
          - ConnectionName: !Ref MyDbConnection
            Path: "database/%/%"
      Role: !Ref ETLAgent
  MyDbConnection:
    Type: "AWS::Glue::Connection"
    Properties:
      CatalogId: !Ref 'AWS::AccountId'
      ConnectionInput:
        Description: "JDBC Connection to my RDS DB"
        PhysicalConnectionRequirements:
          AvailabilityZone: "eu-central-1a"
          SecurityGroupIdList:
           - my-sec-group-id
          SubnetId: my-subnet-id
        ConnectionType: "JDBC"
        ConnectionProperties:
          "JDBC_CONNECTION_URL": "jdbc:postgresql://host:5432/database"
          "USERNAME": "my-db-username"
          "PASSWORD": "my-password"
  Records:
    Type: 'AWS::Glue::Crawler'
    Properties:
      DatabaseName: transact
      Targets:
        JdbcTargets:
          - ConnectionName: !Ref MyDbConnection
            Path: "database/%/%"
      Role: !Ref ETLAgent