ALIYUN::DTS::SubscriptionInstance is used to create a change tracking instance and configure a change tracking task.

Syntax

{
  "Type": "ALIYUN::DTS::SubscriptionInstance",
  "Properties": {
    "Configuration": Map,
    "SourceEndpointInstanceType": String,
    "Period": String,
    "PayType": String,
    "UsedTime": Integer,
    "Tags": List
  }
}

Properties

Property Type Required Editable Description Constraint
Configuration Map No No The configurations of the change tracking instance. For more information, see Configuration properties.
SourceEndpointInstanceType String No No The type of the change tracking instance that you want to create. Default value: MySQL. Valid values:
  • MySQL
  • PolarDB
  • DRDS
  • Oracle
Period String No No The billing cycle of the change tracking instance on a subscription basis. Valid values:
  • Year
  • Month
Note This property takes effect and is required when you set the PayType property to Prepaid.
PayType String No No The billing method of the change tracking instance. Default value: Postpaid. Valid values:
  • Postpaid: pay-as-you-go
  • Prepaid: subscription
UsedTime Integer No No The subscription duration of the change tracking instance. Valid values:
  • Valid values if you set the Period property to Year: 1 to 5
  • Valid values if you set the Period property to Month: 1 to 60
Note This property takes effect and is required when you set the PayType property to Prepaid.
Tags List No Yes The tags that you want to add to the change tracking instance. For more information, see Tags properties.

Tags properties

"Tags": [
  {
    "Value": String,
    "Key": String
  }
]
Property Type Required Editable Description Constraint
Key String Yes No The key of the tag. The tag key must be 1 to 128 characters in length,

and cannot contain http:// or https://. The tag key cannot start with aliyun or acs:.

Value String No No The value of the tag. The tag value can be up to 128 characters in length,

and cannot contain http:// or https://. The tag value cannot start with aliyun or acs:.

"Configuration": {
  "SubscriptionDataType": Map,
  "SubscriptionInstanceName": String,
  "SubscriptionInstance": Map,
  "SourceEndpoint": Map,
  "SubscriptionInstanceNetworkType": String,
  "DbList": Map
}

Configuration properties

Property Type Required Editable Description Constraint
SubscriptionDataType Map Yes No The type of the data for which you want to configure the change tracking task. For more information, see SubscriptionDataType properties.
SubscriptionInstanceName String No No The name of the change tracking task. None
SubscriptionInstance Map No No The network configurations of the change tracking task. For more information, see SubscriptionInstance properties.
SourceEndpoint Map Yes No The connection information about the source instance for which you want to configure the change tracking task. For more information, see SourceEndpoint properties.
SubscriptionInstanceNetworkType String No No The network type of the change tracking task. Valid values:
  • classic: classic network
  • vpc: virtual private cloud (VPC)
DbList Map No No The objects for which you want to configure the change tracking task. For more information, see Objects of DTS tasks.

TableIncludes syntax

"TableIncludes": [
  {
    "TableName": String
  }
]

TableIncludes property

Property Type Required Editable Description Constraint
TableName String No No The name of the table for which you want to configure the change tracking task in the source database. None

TableExcludes syntax

"TableExcludes": [
  {
    "TableName": String
  }
]

TableExcludes property

Property Type Required Editable Description Constraint
TableName String No No The name of the table for which you do not want to configure the change tracking task in the source database. None

SubscriptionDataType syntax

"SubscriptionDataType": {
  "DML": Boolean,
  "DDL": Boolean
}

SubscriptionDataType properties

Property Type Required Editable Description Constraint
DML Boolean Yes No Specifies whether to track changes of the data that is generated from DML operations. Valid values:
  • true
  • false
DDL Boolean Yes No Specifies whether to track changes of the data that is generated from DDL operations. Valid values:
  • true
  • false

SubscriptionInstance syntax

"SubscriptionInstance": {
  "VPCId": String,
  "VSwitchId": String
}

SubscriptionInstance properties

Property Type Required Editable Description Constraint
VPCId String Yes No The ID of the VPC that you want to use in the change tracking task. This property takes effect when you set the SubscriptionInstanceNetworkType property to vpc.
VSwitchId String Yes No The ID of the vSwitch that you want to use in the change tracking task. This property takes effect when you set the SubscriptionInstanceNetworkType property to vpc.

SourceEndpoint syntax

"SourceEndpoint": {
  "Role": String,
  "OracleSID": String,
  "UserName": String,
  "OwnerID": String,
  "InstanceID": String,
  "IP": String,
  "Port": String,
  "DatabaseName": String,
  "InstanceType": String,
  "Password": String
}

SourceEndpoint properties

Property Type Required Editable Description Constraint
Role String No No The RAM role that the Alibaba Cloud account of the source ApsaraDB RDS instance assigns to the Alibaba Cloud account of the destination instance. This property takes effect when the source ApsaraDB RDS instance and the destination instance belong to different Alibaba Cloud accounts. None
OracleSID String No No The name of the source Oracle instance. This property takes effect when the database type of the source instance is Oracle. None
UserName String Yes No The username of the account that is used to access the source instance. None
OwnerID String No No The ID of the Alibaba Cloud account to which the source ApsaraDB RDS instance belongs. This property takes effect when the source ApsaraDB RDS instance and the destination instance belong to different Alibaba Cloud accounts. None
InstanceID String No No The ID of the source instance. None
IP String No No The IP address that is used to access the source instance. This property is required when the source instance is a self-managed database.
Port String No No The port number that is used to access the source instance. This property is required when the source instance is a self-managed database.
DatabaseName String No No The name of the database that you want to use when you connect the source instance to the change tracking task. None
InstanceType String Yes No The type of the source instance for which you want to configure the change tracking task. Valid values:
  • RDS: ApsaraDB RDS instance
  • ECS: ECS-hosted self-managed database
Password String Yes No The password that is used to log on to the source instance. None

Return values

Fn::GetAtt

  • SubscriptionInstanceId: the ID of the change tracking instance.
  • VPCHost: the VPC endpoint that is configured in the change tracking task.
  • PublicHost: the public endpoint that is configured in the change tracking task.
  • PrivateHost: the internal endpoint that is configured in the change tracking task.
  • SubscribeTopic: the topic that is configured in the change tracking task.

Examples

JSON format

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "Configuration": {
      "Type": "Json",
      "Description": "Subscription configuration."
    },
    "UsedTime": {
      "Type": "Number",
      "Description": "The subscription length.\nNote: You must specify this parameter only if you set the PayType parameter to PrePaid.\nYou can set the Period parameter to specify the unit of the subscription length."
    },
    "Period": {
      "Type": "String",
      "Description": "The unit of the subscription length. Valid values: Year and Month.\nNote: You must specify this parameter only if you set the PayType parameter to PrePaid.",
      "AllowedValues": [
        "Year",
        "Month"
      ]
    },
    "PayType": {
      "Type": "String",
      "Description": "Payment type. Valid value:\nPostPaid: Pay-as-you-go, which is default value.\nPrePaid: subscription.",
      "AllowedValues": [
        "Subscription",
        "PrePaid",
        "PrePay",
        "Prepaid",
        "PayAsYouGo",
        "PostPaid",
        "PayOnDemand",
        "Postpaid"
      ]
    },
    "SourceEndpointInstanceType": {
      "Type": "String",
      "Description": "Data subscription instance type, value is:MySQL: ApsaraDB RDS for MySQL instance or self-managed MySQL database.\nPolarDB: PolarDB for MySQL cluster.\npolardb_o: PolarDB O Edition cluster.\npolardb_pg: PolarDB for PostgreSQL cluster.\nDRDS: PolarDB-X instance V1.0 or V2.0.\nPostgreSQL: self-managed PostgreSQL database.\nOracle: self-managed Oracle database."
    }
  },
  "Resources": {
    "SubscriptionInstance": {
      "Type": "ALIYUN::DTS::SubscriptionInstance",
      "Properties": {
        "Configuration": {
          "Ref": "Configuration"
        },
        "UsedTime": {
          "Ref": "UsedTime"
        },
        "Period": {
          "Ref": "Period"
        },
        "PayType": {
          "Ref": "PayType"
        },
        "SourceEndpointInstanceType": {
          "Ref": "SourceEndpointInstanceType"
        }
      }
    }
  },
  "Outputs": {
    "PublicHost": {
      "Description": "Public host.",
      "Value": {
        "Fn::GetAtt": [
          "SubscriptionInstance",
          "PublicHost"
        ]
      }
    },
    "PrivateHost": {
      "Description": "Private host.",
      "Value": {
        "Fn::GetAtt": [
          "SubscriptionInstance",
          "PrivateHost"
        ]
      }
    },
    "SubscriptionInstanceId": {
      "Description": "The ID of Data subscription instance.",
      "Value": {
        "Fn::GetAtt": [
          "SubscriptionInstance",
          "SubscriptionInstanceId"
        ]
      }
    },
    "VPCHost": {
      "Description": "VPC host.",
      "Value": {
        "Fn::GetAtt": [
          "SubscriptionInstance",
          "VPCHost"
        ]
      }
    }
  }
}