ALIYUN::RDS::DBInstance类型用于创建RDS数据库实例。
语法
{
  "Type": "ALIYUN::RDS::DBInstance",
  "Properties": {
    "AutoUpgradeMinorVersion": String,
    "PeriodType": String,
    "Category": String,
    "PrivateIpAddress": String,
    "ResourceGroupId": String,
    "TargetDedicatedHostIdForSlave": String,
    "DBInstanceNetType": String,
    "DBTimeZone": String,
    "DedicatedHostGroupId": String,
    "EncryptionKey": String,
    "PreferredBackupPeriod": List,
    "SecurityIPList": String,
    "SecurityGroupId": String,
    "DBIsIgnoreCase": Integer,
    "DBInstanceStorage": Integer,
    "DBMappings": List,
    "Port": Integer,
    "ConnectionStringPrefix": String,
    "ConnectionStringType": String,
    "MultiAZ": Boolean,
    "MaintainTime": String,
    "Engine": String,
    "DBParamGroupId": String,
    "DBInstanceDescription": String,
    "Tags": Map,
    "TargetDedicatedHostIdForMaster": String,
    "EngineVersion": String,
    "ZoneId": String,
    "DBInstanceClass": String,
    "AllocatePublicConnection": Boolean,
    "PreferredBackupTime": String,
    "VSwitchId": String,
    "BackupPolicyMode": String,
    "Period": Integer,
    "PayType": String,
    "DBInstanceStorageType": String,
    "RoleARN": String,
    "MasterUserPassword": String,
    "MasterUserType": String,
    "VpcId": String,
    "MasterUsername": String,
    "ConnectionMode": String,
    "BackupRetentionPeriod": Number,
    "TargetDedicatedHostIdForLog": String,
    "SlaveZoneIds": List,
    "AutoRenew": Boolean,
    "SQLCollectorStatus": String,
    "SSLSetting": String,
    "LogBackupFrequency": String,
    "EnableBackupLog": Boolean,
    "ReleasedKeepPolicy": String,
    "ArchiveBackupRetentionPeriod": Integer,
    "ArchiveBackupKeepPolicy": String,
    "ArchiveBackupKeepCount": Integer,
    "LogBackupRetentionPeriod": Integer,
    "HighSpaceUsageProtection": String,
    "LocalLogRetentionSpace": Integer,
    "BackUpCategory": String,
    "CompressType": Integer,
    "LocalLogRetentionHours": Integer,
    "LogBackupLocalRetentionNumber": Integer,
    "ServerlessConfig": Map,
    "InstanceNetworkType": String,
    "StorageAutoScale": String,
    "StorageUpperBound": Number,
    "StorageThreshold": Number,
    "BurstingEnabled": Boolean,
    "IoAccelerationEnabled": String,
    "SubscriptionDeletionForce": Boolean,
    "ColdDataEnabled": Boolean,
    "DeletionProtection": Boolean
  }
}属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| ResourceGroupId | String | 否 | 是 | 资源组ID。 | 无 | 
| Engine | String | 是 | 数据库类型。 | 取值: 
 | |
| DBInstanceStorage | Integer | 是 | 是 | 数据库存储空间。 | 取值: 
 单位:GB。 说明  每5 GB进行递增。 | 
| EngineVersion | String | 是 | 否 | 数据库版本号。 | 取值: 
 | 
| AutoUpgradeMinorVersion | String | 否 | 是 | 实例升级小版本的方式。 | 取值: 
 | 
| Port | Integer | 否 | 是 | 实例端口。 | 无 | 
| ConnectionStringPrefix | String | 否 | 是 | 连接地址的前缀。 | 连接地址前缀以小写字母开头,以小写字母或数字结尾,可包含小写字母、数字和连字符(-)。 连接地址前缀至少包含8个字符、连接地址总长度(前缀+后缀)不得超过63个字符。 | 
| ConnectionStringType | String | 否 | 是 | 连接地址的类型。 | 取值: 
 | 
| DBTimeZone | String | 否 | 否 | UTC时区。 | 取值范围:-12:59~+13:00。 说明  
 | 
| DBParamGroupId | String | 否 | 否 | 参数模板ID。 | 无 | 
| Category | String | 否 | 是 | 实例系列。 | 取值: 
 说明  使用参数查询功能时,ZoneId,DBInstanceStorageType,Category建议必填,否则会导致校验不完全。 | 
| TargetDedicatedHostIdForMaster | String | 否 | 否 | 在专属集群内创建实例时,指定主实例的主机ID。 | 无 | 
| DBIsIgnoreCase | Integer | 否 | 否 | 表名是否区分大小写。 | 取值: 
 | 
| EncryptionKey | String | 否 | 否 | 同地域内的云盘加密的密钥ID。您可以在密钥管理服务控制台查看密钥ID,也可以创建新的密钥。 | 传入该参数表示开启云盘加密(开启后无法关闭),并且需要传入RoleARN。 | 
| MaintainTime | String | 否 | 否 | 实例的可维护时间段。 | 格式: | 
| TargetDedicatedHostIdForSlave | String | 否 | 否 | 在专属集群内创建实例时,指定备份实例的主机ID。 | 无 | 
| DedicatedHostGroupId | String | 否 | 否 | 在专属集群内创建实例时,指定专属集群ID。 | 无 | 
| DBInstanceStorageType | String | 否 | 是 | 实例存储类型。 | 实例存储类型,取值: 
 本参数的默认值根据DBInstanceClass参数中传入的规格代码自动判断: 
 说明  
 | 
| RoleARN | String | 否 | 否 | 角色ARN。RDS通过该角色访问KMS。 | 更多信息,请参见授权RDS访问KMS。 | 
| DBInstanceClass | String | 是 | 是 | 实例规格。 | 更多信息,请参见主实例规格列表。 | 
| SecurityIPList | String | 是 | 是 | 允许访问该实例下所有数据库的IP白名单。 | 多个IP以半角逗号(,)间隔,不可以重复。最多支持1000个。 支持格式: 
 | 
| SecurityGroupId | String | 否 | 是 | 关联的安全组ID。 | 最多支持关联3个安全组,多个安全组用半角逗号(,)隔开。清空安全组请指定空字符串。 | 
| MultiAZ | Boolean | 否 | 否 | 该数据库实例是否支持多可用区。 | 取值: 
 说明  使用参数查询功能时,MultiAZ建议设置为 false,否则会导致校验不完全。 | 
| VpcId | String | 否 | 否 | 专有网络ID。 | 无 | 
| DBMappings | List | 否 | 否 | 实例下创建新的数据库。 | 更多信息,请参见DBMappings属性。 | 
| DBInstanceDescription | String | 否 | 是 | 实例的描述或备注信息。 | 长度为2~256个字符。以英文字母或汉字开头,不能以 | 
| SubscriptionDeletionForce | Boolean | 否 | 否 | 该选项仅适用于包年包月实例。对于包年包月实例,如果此选项为 true,则在删除之前会将实例转换为按量付费实例;如果为 false,则不会执行强制删除。此操作会产生额外费用,请谨慎选择。 | 无 | 
| ConnectionMode | String | 否 | 否 | 数据库的连接模式。 | 取值: 
 如果未指定该参数,则默认由RDS系统分配。 说明  SQL Server 2012/2016/2017只支持标准访问模式。 | 
| MasterUsername | String | 否 | 是 | 数据库实例的主账号名称。 | 名称需要全局唯一。长度不超过16个字符。以英文字母开头,可包含英文字母、数字和下划线(_)。 | 
| MasterUserPassword | String | 否 | 是 | 数据库实例的主账号密码。 | 长度为8~32个字符。可包含英文字母、数字和下划线(_)。 | 
| ZoneId | String | 否 | 否 | 可用区ID。 | 说明  使用参数查询功能时,ZoneId,DBInstanceStorageType,Category建议必填,否则会导致校验不完全。 | 
| DBInstanceNetType | String | 否 | 否 | 数据库实例的网络类型。 | 取值 
 | 
| VSwitchId | String | 否 | 否 | 交换机ID。 | 多个值用半角逗号(,)隔开。 如果数据库类型为MariaDB,该参数必须指定。 | 
| BackupPolicyMode | String | 否 | 是 | 备份类型。 | 取值: 
 | 
| AllocatePublicConnection | Boolean | 否 | 否 | 是否申请实例的外网连接串。 | 取值: 
 | 
| PreferredBackupTime | String | 否 | 是 | 备份时间。 | 格式: 取值:00:00Z-01:00Z、01:00Z-02:00Z、02:00Z-03:00Z、03:00Z-04:00Z、04:00Z-05:00Z、05:00Z-06:00Z、06:00Z-07:00Z、07:00Z-08:00Z、08:00Z-09:00Z、09:00Z-10:00Z、10:00Z-11:00Z、11:00Z-12:00Z、12:00Z-13:00Z、13:00Z-14:00Z、14:00Z-15:00Z、15:00Z-16:00Z、16:00Z-17:00Z、17:00Z-18:00Z、18:00Z-19:00Z、19:00Z-20:00Z、20:00Z-21:00Z、21:00Z-22:00Z、22:00Z-23:00Z、23:00Z-24:00Z。 | 
| BackupRetentionPeriod | Number | 否 | 是 | 备份保留天数。 | 取值范围:7~30。 单位:天。 默认值:7。 | 
| PrivateIpAddress | String | 否 | 否 | VSwitchId下的私网IP。 | 如果不指定该参数,系统将自动分配私网IP。 | 
| PreferredBackupPeriod | List | 否 | 是 | 备份周期。 | 取值: 
 | 
| MasterUserType | String | 否 | 否 | 主账号类型。 | 取值: 
 | 
| Tags | Map | 否 | 是 | Tag列表,包括TagKey和TagValue。 | TagKey不能为空,TagValue可以为空。 格式示例: | 
| PeriodType | String | 否 | 否 | 周期类型。 | 取值: 
 | 
| PayType | String | 否 | 否 | 实例的付费类型。 | 取值: 
 说明  
 | 
| Period | Integer | 否 | 否 | 预付费时长。 | 取值: 
 | 
| TargetDedicatedHostIdForLog | String | 否 | 否 | 在专属集群内创建实例时,指定日志实例的主机ID。 | 无 | 
| SlaveZoneIds | List | 否 | 否 | 高可用版或三节点企业版的备可用区。 | 最多指定两个备可用区,例如:  为每个主可用区或者备可用区指定一个交换机,例如:ZoneId=  | 
| SQLCollectorStatus | String | 否 | 是 | 是否开启SQL洞察(SQL审计)。 | 取值: 
 | 
| SSLSetting | String | 否 | 否 | 实例的安全套接层(SSL)链接设置。 | 取值: 
 | 
| AutoRenew | Boolean | 否 | 是 | 是否自动续费。 | 仅在创建包年包月实例时传入。 取值: 
 说明  
 | 
| LogBackupFrequency | String | 否 | 是 | 日志备份频率。 | 取值:LogInterval,表示每30分钟备份一次。 LogBackupFrequency的默认值与数据备份周期PreferredBackupPeriod相同。 说明  参数LogBackupFrequency仅适用于SQL Server。 | 
| EnableBackupLog | Boolean | 否 | 是 | 是否启用日志备份功能。 | 取值: 
 说明  当BackupPolicyMode参数设置为LogBackupPolicy时,必须指定该参数。 | 
| ReleasedKeepPolicy | String | 否 | 是 | 实例释放后的归档备份保留策略。 | 取值: 
 说明  
 | 
| ArchiveBackupRetentionPeriod | Integer | 否 | 是 | 归档备份的保留天数。 | 取值范围:30~1095。 单位:天。 | 
| ArchiveBackupKeepPolicy | String | 否 | 是 | 归档备份的保留周期。 | 取值: 
 | 
| ArchiveBackupKeepCount | Integer | 否 | 是 | 归档备份的保留个数。 | 取值: 
 默认值:1。 | 
| LogBackupRetentionPeriod | Integer | 否 | 是 | 日志备份保留天数。 | 取值范围:7~730。 日志备份保留期不能长于数据备份保留期。 说明  如果启用了日志备份功能,您可以指定日志备份的保留期限。 | 
| HighSpaceUsageProtection | String | 否 | 是 | 指定当磁盘空间不足(实例超过80%或剩余空间少于5 GB)时是否强制删除日志备份文件 。 | 取值: 
 当BackupPolicyMode取值为LogBackupPolicy时,必须指定该参数。 | 
| LocalLogRetentionSpace | Integer | 否 | 是 | 实例上允许存储日志备份文件的最大空间百分比。 | 取值范围:0~50。 如果日志备份文件的空间使用率超过该百分比,系统会提前删除记录备份文件,直到空间使用率降至此百分比以下。 说明  当BackupPolicyMode取值为LogBackupPolicy时,必须指定该参数。 | 
| BackUpCategory | String | 否 | 是 | 是否开启秒级备份。 | 取值: 
 | 
| CompressType | Integer | 否 | 是 | 备份压缩方式。 | 取值: 
 | 
| LocalLogRetentionHours | Integer | 否 | 是 | 本地日志备份保留小时数。 | 取值范围:0~168。 单位:小时。 0表示不在实例上保留日志备份文件。 说明  当BackupPolicyMode取值为LogBackupPolicy时,必须指定该参数。 | 
| LogBackupLocalRetentionNumber | Integer | 否 | 是 | 实例上可以保留的日志备份文件数。 | 取值范围:6~100。 默认值:60。 | 
| ServerlessConfig | Map | 否 | 否 | RDS Serverless实例的相关设置。 | 更多信息,请参见ServerlessConfig属性。 | 
| InstanceNetworkType | String | 否 | 否 | 实例的网络类型。 | 取值: 
 说明  MySQL云盘实例只支持专有网络,此参数必须配置为VPC。 PostgreSQL和MariaDB实例只支持专有网络,此参数必须配置为VPC。 SQL Server单机版和Web版实例支持经典网络和专有网络。其余实例只支持专有网络,此参数必须配置为VPC。 | 
| StorageAutoScale | String | 否 | 否 | 存储空间自动扩容开关。 | 仅MySQL和PostgreSQL支持,取值: 
 说明  您也可以在实例创建完成之后,调用ModifyDasInstanceConfig进行调整。更多信息,请参见设置存储空间自动扩容。 | 
| StorageUpperBound | Number | 否 | 否 | 存储空间自动扩容的总存储空间上限值。 | 自动扩容不会导致实例总存储空间超过该值。单位:GB。 说明  取值需大于等于 0。 StorageAutoScale为Enable时必填。 | 
| StorageThreshold | Number | 否 | 否 | 存储空间自动扩容触发阈值(百分比)。 | 取值: 
 说明  StorageAutoScale为Enable时该参数必填。 | 
| BurstingEnabled | Boolean | 否 | 否 | 通用云盘 IO 突发功能开关。 | 取值: 
 说明  了解通用云盘的 IO 突发功能的更多信息,请参见什么是高性能云盘。 | 
| IoAccelerationEnabled | String | 否 | 否 | 是否开启通用云盘 IO 加速功能。 | 取值: 
 说明  通用云盘的 IO 加速功能的更多信息,请参见Buffer Pool Extension(BPE)功能。 | 
| ColdDataEnabled | Boolean | 否 | 否 | 通用云盘数据归档功能开关。 | 取值: 
 通用云盘的数据归档功能信息,请参见数据归档功能。 | 
| DeletionProtection | Boolean | 否 | 是 | 是否已开启释放保护功能。 | 取值: 
 | 
ServerlessConfig语法
"ServerlessConfig": {
    "SwitchForce": Boolean,
    "MaxCapacity": Number,
    "MinCapacity": Number,
    "AutoPause": Boolean
  }ServerlessConfig属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| SwitchForce | Boolean | 否 | 否 | 是否开启Serverless实例的强制弹性扩容和缩容。 | 取值: 
 说明  
 | 
| MaxCapacity | Number | 是 | 否 | 实例RCU(RDS Capacity Unit)自动扩容和缩容范围的最大值。 | 取值:0.5~8。 说明  该参数的值必须大于等于MinCapacity参数。 | 
| MinCapacity | Number | 是 | 否 | 实例RCU自动扩容和缩容范围的最小值。 | 取值:0.5~8。 说明  该参数的值必须小于等于MaxCapacity参数。 | 
| AutoPause | Boolean | 否 | 否 | 是否开启Serverless实例的智能暂停和启动。 | 取值: 
 说明  如果10分钟无任何连接将进入暂停状态,当连接进入时会自动唤醒。 | 
DBMappings语法
"DBMappings": [
  {
    "DBDescription": String,
    "CharacterSetName": String,
    "DBName": String
  }
]DBMappings属性
| 属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 | 
| CharacterSetName | String | 是 | 否 | 字符集。 | 取值: 
 | 
| DBName | String | 是 | 否 | 数据库名称。 | 名称需要全局唯一。 长度不超过64个字符。以英文字母开头,可包含英文字母、数字和下划线(_)。 | 
| DBDescription | String | 否 | 否 | 数据库描述。 | 长度为2~256个字符。以英文字母或汉字开头,不能以 | 
返回值
Fn::GetAtt
- DBInstanceId:数据库实例ID。 
- InnerPort:数据库实例的内网端口。 
- InnerIPAddress:内网IP。 
- InnerConnectionString:内网连接地址。 
- PublicPort:数据库实例公网端口。 
- PublicConnectionString:公网连接地址。 
- PublicIPAddress:公网IP。 
示例
ROSTemplateFormatVersion: '2015-09-01'
Description: Test RDS DBInstance
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description:
      en: Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud
      zh-cn: 现有虚拟专有网络的实例ID
    Label:
      en: VPC ID
      zh-cn: 专有网络VPC实例ID
  VSwitchId:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
      ZoneId: ${VSwitchZoneId}
    Type: String
    Description:
      en: Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query
      zh-cn: 现有业务网络交换机的实例ID
    Label:
      en: VSwitch ID
      zh-cn: 交换机实例ID
Resources:
  RDSInstance:
    Type: ALIYUN::RDS::DBInstance
    Properties:
      VpcId:
        Ref: VpcId
      VSwitchId:
        Ref: VSwitchId
      EngineVersion: '5.6'
      DBInstanceClass: rds.mysql.s2.large
      SecurityIPList: 0.0.0.0/0
      DBInstanceStorage: 5
      Engine: MySQL
      DBMappings:
        - CharacterSetName: utf8
          DBName: DBTest
Outputs:
  DBInstanceId:
    Value:
      Fn::GetAtt:
        - RDSInstance
        - DBInstanceId{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Test RDS DBInstance",
  "Parameters": {
    "VpcId": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Description": {
        "en": "Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud",
        "zh-cn": "现有虚拟专有网络的实例ID"
      },
      "Label": {
        "en": "VPC ID",
        "zh-cn": "专有网络VPC实例ID"
      }
    },
    "VSwitchId": {
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "AssociationPropertyMetadata": {
        "VpcId": "${VpcId}",
        "ZoneId": "${VSwitchZoneId}"
      },
      "Type": "String",
      "Description": {
        "en": "Instance ID of existing business network switches, console-Virtual Private Cloud-VSwitches under query",
        "zh-cn": "现有业务网络交换机的实例ID"
      },
      "Label": {
        "en": "VSwitch ID",
        "zh-cn": "交换机实例ID"
      }
    }
  },
  "Resources": {
    "RDSInstance": {
      "Type": "ALIYUN::RDS::DBInstance",
      "Properties": {
        "VpcId": {
          "Ref": "VpcId"
        },
        "VSwitchId": {
          "Ref": "VSwitchId"
        },
        "EngineVersion": "5.6",
        "DBInstanceClass": "rds.mysql.s2.large",
        "SecurityIPList": "0.0.0.0/0",
        "DBInstanceStorage": 5,
        "Engine": "MySQL",
        "DBMappings": [
          {
            "CharacterSetName": "utf8",
            "DBName": "DBTest"
          }
        ]
      }
    }
  },
  "Outputs": {
    "DBInstanceId": {
      "Value": {
        "Fn::GetAtt": [
          "RDSInstance",
          "DBInstanceId"
        ]
      }
    }
  }
}用户需要创建多可用区的RDS时,可以通过以下两种方式实现:
1.配置MultiAZ 为 true,ZoneId 设置为空,创建时会自动为RDS实例选择多可用区。
2.配置MultiAZ为 false 或者不配置MultiAZ,通过配置ZoneId+ZoneIdSlave的方式设置RDS多可用区。
更多示例,请参见创建数据库实例、创建管理数据库的账号、授权账号访问数据库、修改数据库参数列表、修改实例访问白名单、为某个实例创建一个只读实例和在实例下创建数据库的组合示例:YAML示例。