ALIYUN::RDS::ReadOnlyDBInstance

ALIYUN::RDS::ReadOnlyDBInstance类型用于为关系型数据库RDS(Relational Database Service)实例创建一个只读实例。

语法

{
  "Type": "ALIYUN::RDS::ReadOnlyDBInstance",
  "Properties": {
    "Category": String,
    "VPCId": String,
    "DBInstanceDescription": String,
    "Tags": Map,
    "EngineVersion": String,
    "DBInstanceId": String,
    "PayType": String,
    "ZoneId": String,
    "ResourceGroupId": String,
    "DBInstanceStorage": Integer,
    "VSwitchId": String,
    "DBInstanceStorageType": String,
    "DBInstanceClass": String,
    "PrivateIpAddress": String,
    "PeriodType": String,
    "Period": Integer,
    "AutoRenew": Boolean,
    "TargetDedicatedHostIdForMaster": String,
    "DeletionProtection": Boolean,
    "DedicatedHostGroupId": String
  }
}

属性

属性名称

类型

必须

允许更新

描述

约束

Category

String

实例系列。

取值:

  • Basic:基础版。

  • HighAvailability(默认值):高可用版。

  • AlwaysOn:集群版。

VPCId

String

只读实例的专有网络ID。

DBInstanceDescription

String

实例描述。

长度为2~256个字符。以汉字、英文字母开头,不能以http://https://开头。可包含数字、汉字、英文字母、下划线(_)和短划线(-)。

Tags

Map

实例标签。

实例标签是键值对形式,例如:

{"key1": "value1","key2": "value2", ... "key5": "value5"}

最多设置5个键值对。其中,key最大长度为64个字符,不能以http://https://开头;value最大长度为128个字符,不能以aliyunhttp://https://开头。

EngineVersion

String

数据库版本号。

EngineVersion必须与主实例的版本保持一致。

取值:

  • MySQL数据库:

    • 5.6

    • 5.7

    • 8.0

  • SQL Server数据库:2017_ent

DBInstanceId

String

主实例ID。

PayType

String

付费类型。

仅支持按量付费。

取值:Postpaid。

ZoneId

String

可用区ID。

可以通过接口DescribeRegions查看可用区列表。

ResourceGroupId

String

资源组ID。

DBInstanceStorage

Integer

存储空间。

单位:GB。

取值范围:5~3000,步长为5 GB。

不同版本实例,支持的取值范围不同。更多信息,请参见主实例规格列表

VSwitchId

String

只读实例的交换机ID。

DBInstanceStorageType

String

实例存储类型。

取值:

  • local_ssd或ephemeral_ssd:本地SSD盘。

  • cloud_ssd:SSD云盘。

  • cloud_essd:ESSD云盘。

说明

MySQL仅支持本地盘存储类型,SQL Server仅支持云盘存储类型。

DBInstanceClass

String

实例规格。

更多信息,请参见主实例规格列表

建议只读实例规格不小于主实例规格,否则容易出现只读实例延迟高、负载高等现象。

PrivateIpAddress

String

只读实例的内网IP。

需要在指定交换机的IP地址范围内,设置只读实例的内网IP。系统默认通过VPCId和VSwitchId自动分配。

PeriodType

String

预付费实例类型。

取值:

  • Year:包年。

  • Month:包月。

Period

Integer

购买时长。

取值范围:

  • 当参数PeriodType为Year时:1~3。

  • 当参数PeriodType为Month时:1~9。

AutoRenew

Boolean

实例是否自动续费。

仅在创建包年包月实例时生效。

取值:

  • true:自动续费。

  • false(默认值):不自动续费。

说明
  • 按月购买,则自动续费周期为1个月。

  • 按年购买,则自动续费周期为1年。

TargetDedicatedHostIdForMaster

String

在专属集群内创建只读实例时,指定主实例的主机ID。

DeletionProtection

Boolean

是否开启RDS释放保护功能。

取值:

  • true:开启。

  • false(默认值):关闭。

说明

仅计费方式为按量付费时支持开启。

DedicatedHostGroupId

String

在专属集群内创建只读实例时指定专属集群ID。

返回值

Fn::GetAtt

  • ConnectionString:创建的只读实例内网数据库连接地址。

  • DBInstanceId:创建的只读实例ID。

  • Port:创建的只读实例内网数据库连接端口。

示例

YAML格式

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  DBInstanceId:
    Type: String
    Description: The ID of the master instance.
  ZoneId:
    Type: String
    Description: Create an Availability Zone for an instance to ensure that the Availability Zone supports the creation of rds resource specifications.
    AssociationProperty: ALIYUN::ECS::Instance::ZoneId
    Label: Zone ID
  VPC:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description: Please search the ID starts with (vpc-xxx)from console-Virtual Private Cloud
    Label: Existing VPC Instance ID
  VSwitch:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    Type: String
    Description: Please search the business VSwitch ID starts with(vsw-xxx)from console-Virtual Private Cloud-VSwitches
    Label: Existing VSwitch ID
    AssociationPropertyMetadata:
      VpcId: VPC
      ZoneId: ZoneId
  EngineVersion:
    Type: String
    Description: 'MySQL: 5.5、5.6、5.7、5.8,SQLServer:2008r2,PostgreSQL:9.4'
    Default: '5.6'
  DBInstanceClass:
    Type: String
    Description: Instance Class
    Default: rds.mysql.s2.large
  DBInstanceStorage:
    Type: Number
    Description: MySQL:5-1000,SQLServer:10-1000,others:5-2000
    Default: 40
Resources:
  ReadOnlyDBInstance:
    Type: ALIYUN::RDS::ReadOnlyDBInstance
    DependsOn: RDSInstance
    Properties:
      VPCId:
        Ref: VPC
      DBInstanceId:
        Ref: DBInstanceId
      ZoneId:
        Ref: ZoneId
      DBInstanceStorage:
        Ref: DBInstanceStorage
      VSwitchId:
        Ref: VSwitch
      EngineVersion:
        Ref: EngineVersion
      DBInstanceClass:
        Ref: DBInstanceClass
Outputs:
  DBInstanceId:
    Description: The instance id of created database instance.
    Value:
      Fn::GetAtt:
        - ReadOnlyDBInstance
        - DBInstanceId
  Port:
    Description: Intranet port of created DB instance.
    Value:
      Fn::GetAtt:
        - ReadOnlyDBInstance
        - Port
  ConnectionString:
    Description: DB instance connection url by Intranet.
    Value:
      Fn::GetAtt:
        - ReadOnlyDBInstance
        - ConnectionString

JSON格式

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "DBInstanceId": {
      "Type": "String",
      "Description": "The ID of the master instance."
    },
    "ZoneId": {
      "Type": "String",
      "Description": "Create an Availability Zone for an instance to ensure that the Availability Zone supports the creation of rds resource specifications.",
      "AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
      "Label": "Zone ID"
    },
    "VPC": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Description": "Please search the ID starts with (vpc-xxx)from console-Virtual Private Cloud",
      "Label": "Existing VPC Instance ID"
    },
    "VSwitch": {
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "Type": "String",
      "Description": "Please search the business VSwitch ID starts with(vsw-xxx)from console-Virtual Private Cloud-VSwitches",
      "Label": "Existing VSwitch ID",
      "AssociationPropertyMetadata": {
        "VpcId": "VPC",
        "ZoneId": "ZoneId"
      }
    },
    "EngineVersion": {
      "Type": "String",
      "Description": "MySQL: 5.5、5.6、5.7、5.8,SQLServer:2008r2,PostgreSQL:9.4",
      "Default": "5.6"
    },
    "DBInstanceClass": {
      "Type": "String",
      "Description": "Instance Class",
      "Default": "rds.mysql.s2.large"
    },
    "DBInstanceStorage": {
      "Type": "Number",
      "Description": "MySQL:5-1000,SQLServer:10-1000,others:5-2000",
      "Default": 40
    }
  },
  "Resources": {
    "ReadOnlyDBInstance": {
      "Type": "ALIYUN::RDS::ReadOnlyDBInstance",
      "DependsOn": "RDSInstance",
      "Properties": {
        "VPCId": {
          "Ref": "VPC"
        },
        "DBInstanceId": {
          "Ref": "DBInstanceId"
        },
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "DBInstanceStorage": {
          "Ref": "DBInstanceStorage"
        },
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "EngineVersion": {
          "Ref": "EngineVersion"
        },
        "DBInstanceClass": {
          "Ref": "DBInstanceClass"
        }
      }
    }
  },
  "Outputs": {
    "DBInstanceId": {
      "Description": "The instance id of created database instance.",
      "Value": {
        "Fn::GetAtt": [
          "ReadOnlyDBInstance",
          "DBInstanceId"
        ]
      }
    },
    "Port": {
      "Description": "Intranet port of created DB instance.",
      "Value": {
        "Fn::GetAtt": [
          "ReadOnlyDBInstance",
          "Port"
        ]
      }
    },
    "ConnectionString": {
      "Description": "DB instance connection url by Intranet.",
      "Value": {
        "Fn::GetAtt": [
          "ReadOnlyDBInstance",
          "ConnectionString"
        ]
      }
    }
  }
}