创建 CloudFormation 模板以创建多个 Glue 连接

Create a CloudFormation template to create multiple Glue Connections

我正在尝试使用 Cloud Formation 模板创建四个胶水连接。

理想情况下,模板应创建所有四个连接,如果需要,我可以添加更多。我尝试过使用多种资源,但没有用。

但下面的代码仅为最后一个连接创建连接。这是我的代码:

AWSTemplateFormatVersion: 2010-09-09
Description: Glue Connection
Parameters:
  VpcId:
    Description: VPC-ID
    Type: 'AWS::EC2::VPC::Id'
    Default: vpc-xxxxxxxxx
  SecurityGroup:
    Description: SG-ID
    Type: 'AWS::EC2::SecurityGroup::Id'
    Default: sg-xxxxxxxxx
  SubnetRESA1:
    Type: String
    Description: Public Subnet
    Default: subnet-xxxxxxxxx
Resources:
  GC31IPP:
    Type: 'AWS::Glue::Connection'
    Properties:
      CatalogId: 'a/c_number'
      ConnectionInput:
        ConnectionProperties:
          Name: GENERIC_CONNECTION
          Type: Network
        ConnectionType: NETWORK
        Description: >-
          Adding a Generic connection with VPC, Subnet and Security Group to
          access SAP and other DBs
        Name: GENERIC_CONNECTION
        PhysicalConnectionRequirements:
          AvailabilityZone: us-east-1a
          SecurityGroupIdList:
            - sg-xxxxxxxxx
          SubnetId: subnet-xxxxxxxxx
      ConnectionInput:
        ConnectionProperties:
          Name: MySQL_CONNECTION
          Type: JDBC
          JDBC_CONNECTION_URL: "jdbc:mysql://host-url:3306/db"
          USERNAME: "user"
          PASSWORD: "pass"
        ConnectionType: JDBC
        Description: >-
          MySQL connection to POS DB
        Name: MySQL_CONNECTION
        PhysicalConnectionRequirements:
          AvailabilityZone: us-east-1a
          SecurityGroupIdList:
            - sg-xxxxxxxxx
          SubnetId: subnet-xxxxxxxxx
      ConnectionInput:
        ConnectionProperties:
          Name: SAP_ECC_CONNECTION_Pre-ProdEnv
          Type: JDBC
          JDBC_CONNECTION_URL: "jdbc:sap://host-url:31015/?instanceNumber=10&databaseName=db_name"
          USERNAME: "user"
          PASSWORD: "pass"
        ConnectionType: JDBC
        Description: >-
          SAP ECC Pre Prod connection
        Name: SAP_ECC_CONNECTION_Pre-ProdEnv
        PhysicalConnectionRequirements:
          AvailabilityZone: us-east-1a
          SecurityGroupIdList:
            - sg-xxxxxxxxx
          SubnetId: subnet-xxxxxxxxx
      ConnectionInput:
        ConnectionProperties:
          Name: SAP_QAL_CONNECTION_QAEnv
          Type: JDBC
          JDBC_CONNECTION_URL: "jdbc:sap://host-url:32015/?instanceNumber=20&databaseName=db_name"
          USERNAME: "seru"
          PASSWORD: "pass"
        ConnectionType: JDBC
        Description: >-
          SAP ECC Pre Prod connection
        Name: SAP_QAL_CONNECTION_QAEnv
        PhysicalConnectionRequirements:
          AvailabilityZone: us-east-1a
          SecurityGroupIdList:
            - sg-xxxxxxxxx
          SubnetId: subnet-xxxxxxxxx

以上模板仅创建一个连接,即最后一个。命名:SAP_QAL_CONNECTION_QAEnv.

如何在一个脚本中添加所有这些?

这是因为单个 AWS::Glue::Connection 创建了一个连接。要创建四个,您需要四个 AWS::Glue::Connection 资源。

您需要根据您的设置进行调整的说明性示例:

  GC31IPP-Connection1:
    Type: 'AWS::Glue::Connection'
    Properties:
      CatalogId: 'a/c_number'
      ConnectionInput:
        ConnectionProperties:
          Name: GENERIC_CONNECTION
          Type: Network


  GC31IPP-Connection2:
    Type: 'AWS::Glue::Connection'
    Properties:
      CatalogId: 'a/c_number'
      ConnectionInput:
        ConnectionProperties:
          Name: GENERIC_CONNECTION
          Type: Network

  GC31IPP-Connection3:
    Type: 'AWS::Glue::Connection'
    Properties:
      CatalogId: 'a/c_number'
      ConnectionInput:
        ConnectionProperties:
          Name: GENERIC_CONNECTION
          Type: Network

  GC31IPP-Connection4:
    Type: 'AWS::Glue::Connection'
    Properties:
      CatalogId: 'a/c_number'
      ConnectionInput:
        ConnectionProperties:
          Name: GENERIC_CONNECTION
          Type: Network