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

语法

{
  "Type": "ALIYUN::DTS::SubscriptionInstance",
  "Properties": {
    "Configuration": Map,
    "SourceEndpointInstanceType": String
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
Configuration Map 配置信息。 更多信息,请参见Configuration属性
SourceEndpointInstanceType String 创建数据订阅的实例类型。 取值:
  • MySQL(默认)
  • PolarDB
  • DRDS
  • Oracle

Configuration语法

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

Configuration属性

属性名称 类型 必须 允许更新 描述 约束
SubscriptionObject List 订阅对象配置。 更多信息,请参见SubscriptionObject属性
SubscriptionDataType Map 订阅的数据类型。 更多信息,请参见SubscriptionDataType属性
SubscriptionInstanceName String 订阅通道名称。
SubscriptionInstance Map 订阅通道的网络配置。 更多信息,请参见SubscriptionInstance属性
SourceEndpoint Map 订阅源实例的连接信息。 更多信息,请参见SourceEndpoint属性
SubscriptionInstanceNetworkType String 订阅通道的网络类型。 取值:
  • classic:经典网络。
  • vpc:专有网络。

SubscriptionObject语法

"SubscriptionObject": [
  {
    "TableIncludes": List,
    "DBName": String,
    "TableExcludes": List
  }
]

SubscriptionObject属性

属性名称 类型 必须 允许更新 描述 约束
DBName String 待订阅的库名。
TableIncludes List 待订阅的表。 更多信息,请参见TableIncludes属性
TableExcludes List 待订阅的库中不需要订阅的表。 更多信息,请参见TableExcludes属性

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:订阅通道的私网地址。

示例

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "Configuration": {
      "Type": "Json",
      "Description": "Subscription configuration."
    },
    "SourceEndpointInstanceType": {
      "Type": "String",
      "Description": "Data subscription instance type, value is: MySQL, PolarDB, DRDS, Oracle. Default: MySQL."
    }
  },
  "Resources": {
    "SubscriptionInstance": {
      "Type": "ALIYUN::DTS::SubscriptionInstance",
      "Properties": {
        "Configuration": {
          "Ref": "Configuration"
        },
        "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"
        ]
      }
    }
  }
}

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  Configuration:
    Description: Subscription configuration.
    Type: Json
  SourceEndpointInstanceType:
    Description: 'Data subscription instance type, value is: MySQL, PolarDB, DRDS,
      Oracle. Default: MySQL.'
    Type: String
Resources:
  SubscriptionInstance:
    Properties:
      Configuration:
        Ref: Configuration
      SourceEndpointInstanceType:
        Ref: SourceEndpointInstanceType
    Type: ALIYUN::DTS::SubscriptionInstance
Outputs:
  PrivateHost:
    Description: Private host.
    Value:
      Fn::GetAtt:
      - SubscriptionInstance
      - PrivateHost
  PublicHost:
    Description: Public host.
    Value:
      Fn::GetAtt:
      - SubscriptionInstance
      - PublicHost
  SubscriptionInstanceId:
    Description: The ID of Data subscription instance.
    Value:
      Fn::GetAtt:
      - SubscriptionInstance
      - SubscriptionInstanceId
  VPCHost:
    Description: VPC host.
    Value:
      Fn::GetAtt:
      - SubscriptionInstance
      - VPCHost