ALIYUN::RDS::DBInstance类型用于创建RDS数据库实例。
语法
{
"Type": "ALIYUN::RDS::DBInstance",
"Properties": {
"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,
"ColdDataEnabled": Boolean
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
ResourceGroupId | String | 否 | 是 | 资源组ID。 | 无 |
Engine | String | 是 | 数据库类型。 | 取值:
| |
DBInstanceStorage | Integer | 是 | 是 | 数据库存储空间。 | 取值:
单位:GB。 说明 每5 GB进行递增。 |
EngineVersion | String | 是 | 否 | 数据库版本号。 | 取值:
|
Port | Integer | 否 | 是 | 实例端口。 | 无 |
ConnectionStringPrefix | String | 否 | 是 | 连接地址的前缀。 | 长度为8~64个字符,可包含英文字母、数字和短划线(-)。 |
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参数中传的规格代码自动判断:
说明 使用参数查询功能时,ZoneId,DBInstanceStorageType,Category建议必填,否则会导致校验不完全。 Serverless 实例仅支持 ESSD PL1 云盘,必须传入cloud_essd。 |
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个字符。以英文字母或汉字开头,不能以 |
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 加速功能的更多信息,请参见通用云盘IO加速功能。 |
ColdDataEnabled | 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。
示例
YAML
格式
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
JSON
格式
{
"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示例。