aki2all
aki2all

Reputation: 427

Create a CloudFormation template to create multiple Glue Connections

I am trying to create FOUR Glue Connections using Cloud Formation template.

The template should ideally create all FOUR connections and I could add more if I want to. I have tried using multiple resources, doesn't work.

But the below code is creating the the connection for the LAST connection only. Here is my Code:

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

The above template is creating only ONE connection i.e. the last one. Named: SAP_QAL_CONNECTION_QAEnv.

How can I add all of them in a single script?

Upvotes: 0

Views: 4243

Answers (1)

Marcin
Marcin

Reputation: 238747

This is because a single AWS::Glue::Connection creates one connection. To create four, you need four AWS::Glue::Connection resources.

Illustrative example which you will need to adjust to your settings:

  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

Upvotes: 3

Related Questions