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

语法

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

属性

属性名称 类型 必须 允许更新 描述 约束
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(预付费)时,该参数才有效且必须传入。

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

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  Configuration:
    Type: Json
    Description: Subscription configuration.
  UsedTime:
    Type: Number
    Description: |-
      The subscription length.
      Note: You must specify this parameter only if you set the PayType parameter to PrePaid.
      You 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.
      Note: 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:
      PostPaid: Pay-as-you-go, which is default value.
      PrePaid: 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.
      PolarDB: PolarDB for MySQL cluster.
      polardb_o: PolarDB O Edition cluster.
      polardb_pg: PolarDB for PostgreSQL cluster.
      DRDS: PolarDB-X instance V1.0 or V2.0.
      PostgreSQL: self-managed PostgreSQL database.
      Oracle: 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