使用CloudFormation上的JdbcTargets指定Glue :: Crawler

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用CloudFormation上的JdbcTargets指定Glue :: Crawler相关的知识,希望对你有一定的参考价值。

我正在尝试将AWS Glue设置为使用CloudFormation从RDS Postgres读取。为此,我需要使用JdbcTarget选项创建一个搜寻器。 (还是我不?)

  Records:
    Type: 'AWS::Glue::Crawler'
    Properties:
      DatabaseName: transact
      Targets:
        JdbcTargets:
          - Path: "jdbc:postgresql://host:5432/database"
      Role: !Ref ETLAgent

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

CREATE_FAILED | AWS::Glue::Crawler | Records | Connection name cannot be equal to null or empty. (Service: AWSGlue; Status Code: 400; Error Code: InvalidInputException;

即使the docs说:

ConnectionName

用于JDBC目标的连接名称。

必填:否

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

答案

您确实缺少ConnectionName属性,该属性应带有您缺少的连接资源的名称。您正在设置的Path属性用于选择要爬网的模式/表(dbname/%/%包括所有)。有关详情,请参阅CloudFormation docs on Crawler JDBCTarget

您的模板应类似于

  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

以上是关于使用CloudFormation上的JdbcTargets指定Glue :: Crawler的主要内容,如果未能解决你的问题,请参考以下文章

带有 CloudFormation 的 AWS Cognito - 架构属性上的 InvalidParameterException

使用 Cloudformation 创建 KMS 密钥时出现消息“没有 IAM 权限来处理 AWS::KMS::Key 资源上的标签”

如何使用Cloudformation解析AWS上的免费层RHEL AMI ID?

AWS Cloudformation 上的 UserData 未部署在 EC2 实例上

模板上的CloudFormation回滚?更改模板中的默认区域时

ECS 与 EFS 或 EBS 上的持久数据与 CloudFormation