ALIYUN::DTS::SubscriptionInstance

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

说明

建议使用新版资源ALIYUN::DTS::Instance用于购买DTS实例和ALIYUN::DTS::SubscriptionJob2用于配置订阅通道。

语法

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

属性

属性名称

类型

必须

允许更新

描述

约束

Configuration

Map

配置信息。

更多信息,请参见Configuration属性

SourceEndpointInstanceType

String

创建数据订阅的实例类型。

取值:

  • MySQL(默认值)

  • PolarDB

  • DRDS

  • Oracle

Period

String

预付费实例的计费方式。

取值:

  • Year:包年。

  • Month:包月。

说明

当付费类型为Prepaid(预付费)时,该参数才有效且必须设置。

PayType

String

付费类型。

取值:

  • Postpaid:按量付费,默认付费类型。

  • Prepaid:预付费。

UsedTime

Integer

预付费实例购买时长。

取值:

  • 当计费方式为Year(包年)时,取值范围为1~5。

  • 当计费方式为Month(包月)时,取值范围为1~60。

说明

当付费类型为Prepaid(预付费)时,该参数才有效且必须设置。

Tags

List

用户自定义标签。

更多信息,请参见Tags属性

Tags语法

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

Tags属性

属性名称

类型

必须

允许更新

描述

约束

Key

String

标签键。

长度为1~128个字符。

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

Value

String

标签值。

长度为0~128个字符。

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

Configuration语法

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

Configuration属性

属性名称

类型

必须

允许更新

描述

约束

SubscriptionDataType

Map

订阅的数据类型。

更多信息,请参见SubscriptionDataType属性

SubscriptionInstanceName

String

订阅通道名称。

SubscriptionInstance

Map

订阅通道的网络配置。

更多信息,请参见SubscriptionInstance属性

SourceEndpoint

Map

订阅源实例的连接信息。

更多信息,请参见SourceEndpoint属性

SubscriptionInstanceNetworkType

String

订阅通道的网络类型。

取值:

  • classic:经典网络。

  • vpc:专有网络。

DbList

Map

订阅对象。

更多信息,请参见迁移、同步或订阅对象说明

TableIncludes语法

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

TableIncludes属性

属性名称

类型

必须

允许更新

描述

约束

TableName

String

待订阅的表名。

TableExcludes语法

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

TableExcludes属性

属性名称

类型

必须

允许更新

描述

约束

TableName

String

待订阅的库中不需要订阅的表名。

SubscriptionDataType语法

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

SubscriptionDataType属性

属性名称

类型

必须

允许更新

描述

约束

DML

Boolean

是否订阅DML类型的数据。

取值:

  • true:订阅。

  • false:不订阅。

DDL

Boolean

是否订阅DDL类型的数据。

取值:

  • true:订阅。

  • false:不订阅。

SubscriptionInstance语法

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

SubscriptionInstance属性

属性名称

类型

必须

允许更新

描述

约束

VPCId

String

订阅通道的专有网络ID。

当SubscriptionInstanceNetworkType参数值为vpc时,该参数有效。

VSwitchId

String

订阅通道的虚拟交换机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属性

属性名称

类型

必须

允许更新

描述

约束

Role

String

当源实例是RDS实例且源实例与目标实例所属的阿里云账号不同时,该参数是源实例所属目标实例的阿里云账号的授权角色。

OracleSID

String

当源实例数据库类型为Oracle时,该参数为Oracle实例名称。

UserName

String

源实例数据库访问账号。

OwnerID

String

当源实例是RDS实例且源实例与目标实例所属的阿里云账号不同时,该参数是源RDS实例所属的阿里云账号的UID。

InstanceID

String

源实例ID。

IP

String

源实例的连接地址。

当源实例是自建数据库时,该参数必填。

Port

String

源实例端口。

当源实例是自建数据库时,该参数必填。

DatabaseName

String

创建连接时使用的数据库名称。

InstanceType

String

订阅源实例的实例类型。

取值:

  • RDS:阿里云RDS实例。

  • ECS:ECS自建数据库。

Password

String

源实例登录密码。

返回值

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"
            ]
          }
        }
      }
    }