ALIYUN::DTS::SubscriptionInstance类型用于创建订阅实例和配置订阅通道。

语法

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

属性

属性名称类型必须允许更新描述约束
ConfigurationMap配置信息。更多信息,请参见Configuration属性
SourceEndpointInstanceTypeString创建数据订阅的实例类型。取值:
  • MySQL(默认值)
  • PolarDB
  • DRDS
  • Oracle
PeriodString预付费实例的计费方式。取值:
  • Year:包年。
  • Month:包月。
说明 当付费类型为Prepaid(预付费)时,该参数才有效且必须设置。
PayTypeString付费类型。取值:
  • Postpaid:按量付费,默认付费类型。
  • Prepaid:预付费。
UsedTimeInteger预付费实例购买时长。取值:
  • 当计费方式为Year(包年)时,取值范围为1~5。
  • 当计费方式为Month(包月)时,取值范围为1~60。
说明 当付费类型为Prepaid(预付费)时,该参数才有效且必须设置。
TagsList用户自定义标签。更多信息,请参见Tags属性

Tags语法

"Tags": [
  {
    "Value": String,
    "Key": String
  }
]

Tags属性

属性名称类型必须允许更新描述约束
KeyString标签键。长度为1~128个字符。

不能以aliyunacs:开头,不能包含http://https://

ValueString标签值。长度为0~128个字符。

不能以aliyunacs:开头,不能包含http://https://

Configuration语法

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

Configuration属性

属性名称类型必须允许更新描述约束
SubscriptionDataTypeMap订阅的数据类型。更多信息,请参见SubscriptionDataType属性
SubscriptionInstanceNameString订阅通道名称。
SubscriptionInstanceMap订阅通道的网络配置。更多信息,请参见SubscriptionInstance属性
SourceEndpointMap订阅源实例的连接信息。更多信息,请参见SourceEndpoint属性
SubscriptionInstanceNetworkTypeString订阅通道的网络类型。取值:
  • classic:经典网络。
  • vpc:专有网络。
DbListMap订阅对象。更多信息,请参见迁移、同步或订阅对象说明

TableIncludes语法

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

TableIncludes属性

属性名称类型必须允许更新描述约束
TableNameString待订阅的表名。

TableExcludes语法

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

TableExcludes属性

属性名称类型必须允许更新描述约束
TableNameString待订阅的库中不需要订阅的表名。

SubscriptionDataType语法

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

SubscriptionDataType属性

属性名称类型必须允许更新描述约束
DMLBoolean是否订阅DML类型的数据。取值:
  • true:订阅。
  • false:不订阅。
DDLBoolean是否订阅DDL类型的数据。取值:
  • true:订阅。
  • false:不订阅。

SubscriptionInstance语法

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

SubscriptionInstance属性

属性名称类型必须允许更新描述约束
VPCIdString订阅通道的专有网络ID。 当SubscriptionInstanceNetworkType参数值为vpc时,该参数有效。
VSwitchIdString订阅通道的虚拟交换机ID。SubscriptionInstanceNetworkType参数值为vpc时,该参数有效。

SourceEndpoint语法

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

SourceEndpoint属性

属性名称类型必须允许更新描述约束
RoleString当源实例是RDS实例且源实例与目标实例所属的阿里云账号不同时,该参数是源实例所属目标实例的阿里云账号的授权角色。
OracleSIDString当源实例数据库类型为Oracle时,该参数为Oracle实例名称。
UserNameString源实例数据库访问账号。
OwnerIDString当源实例是RDS实例且源实例与目标实例所属的阿里云账号不同时,该参数是源RDS实例所属的阿里云账号的UID。
InstanceIDString源实例ID。
IPString源实例的连接地址。 当源实例是自建数据库时,该参数必填。
PortString源实例端口。当源实例是自建数据库时,该参数必填。
DatabaseNameString创建连接时使用的数据库库名称。
InstanceTypeString订阅源实例的实例类型。取值:
  • RDS:阿里云RDS实例。
  • ECS:ECS自建数据库。
PasswordString源实例登录密码。

返回值

Fn::GetAtt

  • SubscriptionInstanceId:订阅实例ID。
  • VPCHost:订阅通道的专有网络地址。
  • PublicHost:订阅通道的公网地址。
  • PrivateHost:订阅通道的私网地址。
  • SubscribeTopic: 订阅通道的Topic。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Parameters:
      VpcId:
        Type: String
        AssociationProperty: ALIYUN::ECS::VPC::VPCId
      VSwitchId:
        Type: String
        AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
        AssociationPropertyMetadata:
          VpcId: ${VpcId}
      RdsId:
        Type: String
        AssociationProperty: ALIYUN::RDS::Instance::InstanceId
    Resources:
      SubscriptionInstance:
        Type: ALIYUN::DTS::SubscriptionInstance
        Properties:
          SourceEndpointInstanceType: MySQL
          Configuration:
            SubscriptionObject:
              - DBName: DemoDB
            SubscriptionDataType:
              DDL: true
              DML: false
            SubscriptionInstanceName: TestSubscription
            SourceEndpoint:
              InstanceType: RDS
              UserName: DBAdmin
              Password: Admin@123!
              InstanceID:
                Ref: RdsId
            SubscriptionInstanceNetworkType: vpc
            SubscriptionInstance:
              VPCId:
                Ref: VpcId
              VSwitchId:
                Ref: VSwitchId
    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
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Parameters": {
        "VpcId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ECS::VPC::VPCId"
        },
        "VSwitchId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
          "AssociationPropertyMetadata": {
            "VpcId": "${VpcId}"
          }
        },
        "RdsId": {
          "Type": "String",
          "AssociationProperty": "ALIYUN::RDS::Instance::InstanceId"
        }
      },
      "Resources": {
        "SubscriptionInstance": {
          "Type": "ALIYUN::DTS::SubscriptionInstance",
          "Properties": {
            "SourceEndpointInstanceType": "MySQL",
            "Configuration": {
              "SubscriptionObject": [
                {
                  "DBName": "DemoDB"
                }
              ],
              "SubscriptionDataType": {
                "DDL": true,
                "DML": false
              },
              "SubscriptionInstanceName": "TestSubscription",
              "SourceEndpoint": {
                "InstanceType": "RDS",
                "UserName": "DBAdmin",
                "Password": "Admin@123!",
                "InstanceID": {
                  "Ref": "RdsId"
                }
              },
              "SubscriptionInstanceNetworkType": "vpc",
              "SubscriptionInstance": {
                "VPCId": {
                  "Ref": "VpcId"
                },
                "VSwitchId": {
                  "Ref": "VSwitchId"
                }
              }
            }
          }
        }
      },
      "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"
            ]
          }
        }
      }
    }