ALIYUN::DTS::SubscriptionInstance类型用于创建订阅实例和配置订阅通道。
语法
{
"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 | 否 | 否 | 预付费实例的计费方式。 | 取值:
说明 当付费类型为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个字符。 不能以aliyun 和acs: 开头,不能包含http:// 或https:// 。 |
Value | String | 否 | 否 | 标签值。 | 长度为0~128个字符。 不能以aliyun 和acs: 开头,不能包含http:// 或https:// 。 |
Configuration语法
"Configuration": {
"SubscriptionDataType": Map,
"SubscriptionInstanceName": String,
"SubscriptionInstance": Map,
"SourceEndpoint": Map,
"SubscriptionInstanceNetworkType": String,
"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类型的数据。 | 取值: |
DDL | Boolean | 是 | 否 | 是否订阅DDL类型的数据。 | 取值: |
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"
]
}
}
}
}