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
  }
}

属性

属性名称 类型 必须 允许更新 描述 约束
ResourceGroupId String 资源组ID。
Engine String 数据库类型。 取值:
  • MySQL
  • SQLServer
  • PostgreSQL
  • PPAS
  • MariaDB
DBInstanceStorage Integer 数据库存储空间。 取值:
  • MySQL:5~1000。
  • SQLServer:10~1000。
  • PostgreSQL:5~2000。
  • PPAS:5~2000。
单位:GB。
说明 每5 GB进行递增。
EngineVersion String 数据库版本号。 取值:
  • MySQL:5.5、5.6、5.7、8.0。
  • SQLServer:2008r2、08r2_ent_ha、2012、2012_ent_ha、2012_std_ha、2012_web、2014_std_ha、2016_ent_ha、2016_std_ha、2016_web、2017_std_ha、2017_ent、2019_ent。
  • PostgreSQL:9.4、10.0、11.0、12.0。
  • PPAS:9.3、10.0。
  • MariaDB:10.3。
Port Integer 实例端口。
ConnectionStringPrefix String 连接地址的前缀。 长度为8~64个字符,可包含英文字母、数字和短划线(-)。
ConnectionStringType String 连接地址的类型。 取值:
  • Inner:内网。
  • Public:公网。
DBTimeZone String UTC时区。 取值范围:-12:59~+13:00。
说明
  • 如果不指定该参数,默认时区为地域默认时区。
  • 本地SSD盘实例可以命名时区。
DBParamGroupId String 参数模板ID。
Category String 实例系列。 取值:
  • Basic:基础版。
  • HighAvailability:高可用版。
  • AlwaysOn:集群版。
  • Finance:三节点企业版。
TargetDedicatedHostIdForMaster String 在专属集群内创建实例时,指定主实例的主机ID。
DBIsIgnoreCase Integer 表名是否区分大小写。 取值:
  • 0:区分大小写。
  • 1(默认值):不区分大小写。
EncryptionKey String 同地域内的云盘加密的密钥ID。您可以在密钥管理服务控制台查看密钥ID,也可以创建新的密钥。 传入该参数表示开启云盘加密(开启后无法关闭),并且需要传入RoleARN。
MaintainTime String 实例的可维护时间段。 格式:HH:mmZ-HH:mmZ(UTC时间)。
TargetDedicatedHostIdForSlave String 在专属集群内创建实例时,指定备实例的主机ID。
DedicatedHostGroupId String 在专属集群内创建实例时,指定专属集群ID。
DBInstanceStorageType String 实例存储类型。 取值:
  • local_ssd:本地SSD盘(推荐)。
  • cloud_ssd:SSD云盘。
  • cloud_essd:ESSD云盘。
RoleARN String 角色ARN。RDS通过该角色访问KMS。 更多信息,请参见授权RDS访问KMS
DBInstanceClass String 实例规格。 更多信息,请参见主实例规格列表
SecurityIPList String 允许访问该实例下所有数据库的IP白名单。

多个IP以半角逗号(,)间隔,不可以重复。最多支持1000个。

支持格式:
  • IP地址形式,例如:10.23.XX.XX。
  • CIDR形式,例如:10.23.XX.XX/24(无类域间路由,24表示了地址中前缀的长度,范围为1~32)。
SecurityGroupId String 关联的安全组ID。 最多支持关联3个安全组,多个安全组用半角逗号(,)隔开。清空安全组请指定空字符串。
MultiAZ Boolean 该数据库实例是否支持多可用区。 取值:
  • true
  • false
VpcId String 专有网络ID。
DBMappings List 实例下创建新的数据库。 更多信息,请参见DBMappings属性
DBInstanceDescription String 实例的描述或备注信息。 长度为2~256个字符。以英文字母或汉字开头,不能以http://https://开头。可包含汉字、英文字母、数字、下划线(_)和短划线(-)。
ConnectionMode String 数据库的连接模式。 取值:
  • Standard:标准访问模式。
  • Safe:高安全访问模式。
如果未指定该参数,则默认由RDS系统分配。
说明 SQL Server 2012/2016/2017只支持标准访问模式。
MasterUsername String 数据库实例的主账号名称。 名称需要全局唯一。长度不超过16个字符。以英文字母开头,可包含英文字母、数字和下划线(_)。
MasterUserPassword String 数据库实例的主账号密码。 长度为8~32个字符。可包含英文字母、数字和下划线(_)。
ZoneId String 可用区ID。
DBInstanceNetType String 数据库实例的网络类型。 取值
  • Internet:公网访问。
  • Intranet(默认值):私网访问。
VSwitchId String 交换机ID。 多个值用半角逗号(,)隔开。如果数据库类型为MariaDB,该参数必须指定。
BackupPolicyMode String 备份类型。 取值:
  • DataBackupPolicy:数据备份。
  • LogBackupPolicy:日志备份。
AllocatePublicConnection Boolean 是否申请实例的外网连接串。 取值:
  • true
  • false
PreferredBackupTime String 备份时间。
  • 格式:HH:mmZ- HH:mmZ
  • 取值: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 备份周期。 取值:
  • Monday
  • Tuesday
  • Wednesday
  • Thursday
  • Friday
  • Saturday
  • Sunday
MasterUserType String 主账号类型。 取值:
  • Normal(默认值):普通账号。
  • Super:高权限账号。
  • Sysadmin:管理员账号。
    说明 管理员账号只支持SQLServer数据库。
Tags Map Tag列表,包括TagKey和TagValue。 TagKey不能为空,TagValue可以为空。

格式示例:{“key1”:”value1”,“key2”:””}

PeriodType String 周期类型。 取值:
  • Month(默认值)
  • Year
PayType String 实例的付费类型。 取值:
  • Postpaid:后付费,即按量付费。
  • Prepaid:预付费,即包年包月。
Period Integer 预付费时长。 取值:
  • 当参数PeriodType取值为Year时:1~3。
  • 当参数PeriodType取值为Month:1~9。
TargetDedicatedHostIdForLog String 在专属集群内创建实例时,指定日志实例的主机ID。
SlaveZoneIds List 高可用版或三节点企业版的备可用区。 最多指定两个备可用区,例如: ["zone-b"]["zone-b", "zone-c"]
为每个主可用区或者备可用区指定一个交换机,例如:ZoneId="zone-a"并且SlaveZoneIds=["zone-c", "zone-b"],VSwitchID取值为
"vsw-zone-a,vsw-zone-c,vsw-zone-b"
SQLCollectorStatus String 是否开启SQL洞察(SQL审计)。 取值:
  • Enable:开启SQL洞察。
  • Disabled:关闭SQL洞察。
SSLSetting String 实例的安全套接层(SSL)链接设置。 取值:
  • Disabled(默认值):禁用SSL。
  • EnabledForPublicConnection:公网连接地址将受SSL证书保护。
    说明 该参数取值为EnabledForPublicConnection时,AllocatePublicConnection取值必须为true。
  • EnabledForInnerConnection:私网连接地址将受SSL证书保护。
AutoRenew Boolean 是否自动续费。 仅在创建包年包月实例时传入。取值:
  • true
  • false
说明
  • 按月购买,则自动续费周期为1个月。
  • 按年购买,则自动续费周期为1年。
LogBackupFrequency String 日志备份频率。 取值:LogInterval,表示每30分钟备份一次。 LogBackupFrequency的默认值与数据备份周期PreferredBackupPeriod相同。
说明 参数LogBackupFrequency仅适用于SQL Server。
EnableBackupLog Boolean 是否启用日志备份功能。 取值:
  • True:启用日志备份功能。
  • False:关闭日志备份功能
说明 当BackupPolicyMode参数设置为LogBackupPolicy时,必须指定该参数。
ReleasedKeepPolicy String 实例释放后的归档备份保留策略。 取值:
  • Lastest:仅保留最后存档的备份。
  • All:保留所有已存档的备份。
ArchiveBackupRetentionPeriod Integer 归档备份的保留天数。 取值范围:30~1095。

单位:天。

ArchiveBackupKeepPolicy String 归档备份的保留周期。 取值:
  • ByMonth
  • ByWeek
  • KeepAll
ArchiveBackupKeepCount Integer 归档备份的保留个数。 取值:
  • 当ArchiveBackupKeepPolicy取值为ByMonth时:1~31。
  • 当ArchiveBackupKeepPolicy取值为ByWeek时:1~7。
  • 当ArchiveBackupKeepPolicy取值为KeepAll时:无需指定该参数。

默认值:1。

LogBackupRetentionPeriod Integer 日志备份保留天数。 取值范围:7~730。

日志备份保留期不能长于数据备份保留期。

说明 如果启用了日志备份功能,您可以指定日志备份的保留期限。
HighSpaceUsageProtection String 指定当磁盘空间不足(实例超过80%或剩余空间少于5 GB)时是否强制删除日志备份文件 。 取值:
  • Enable
  • Disable

当BackupPolicyMode取值为LogBackupPolicy时,必须指定该参数。

LocalLogRetentionSpace Integer 实例上允许存储日志备份文件的最大空间百分比。 取值范围:0~50。

如果日志备份文件的空间使用率超过该百分比,系统会提前删除记录备份文件,直到空间使用率降至此百分比以下。

说明 当BackupPolicyMode取值为LogBackupPolicy时,必须指定该参数。
BackUpCategory String 是否启用二级备份功能。 取值:
  • Flash:启用二级备份功能。
  • Standard:禁用二级备份功能。
CompressType Integer 备份压缩方式。 取值:
  • 1:使用zlib工具将备份压缩到.tar.gz文件中。
  • 4:使用QuickLZ工具将备份压缩到.xb.gz文件中。仅当实例运行MySQL 5.6或5.7时,才支持此压缩格式。它可用于还原单个数据库和表。
  • 8:使用QuickLZ工具将备份压缩为.xb.gz文件。仅当实例运行MySQL 8.0时,才支持此压缩格式。它不能用于还原单个数据库或表。
LocalLogRetentionHours Integer 本地日志备份保留小时数。 取值范围:0~168。

单位:小时。

0表示不在实例上保留日志备份文件。

说明 当BackupPolicyMode取值为LogBackupPolicy时,必须指定该参数。
LogBackupLocalRetentionNumber Integer 实例上可以保留的日志备份文件数。 取值范围:6~100。

默认值:60。

DBMappings语法

"DBMappings": [
  {
    "DBDescription": String,
    "CharacterSetName": String,
    "DBName": String
  }
]

DBMappings属性

属性名称 类型 必须 允许更新 描述 约束
CharacterSetName String 字符集。 取值:
  • MySQL类型:
    • utf8
    • gbk
    • latin1
    • utf8mb4(适用于5.5版和5.6版)
  • SQLServer类型:
    • Chinese_PRC_CI_AS
    • Chinese_PRC_CS_AS
    • SQL_Latin1_General_CP1_CI_AS
    • SQL_Latin1_General_CP1_CS_AS
    • Chinese_PRC_BIN
DBName String 数据库名称。 名称需要全局唯一。

长度不超过64个字符。以英文字母开头,可包含英文字母、数字和下划线(_)。

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

返回值

Fn::GetAtt

  • DBInstanceId:数据库实例ID。
  • InnerPort:数据库实例的内网端口。
  • InnerIPAddress:内网IP。
  • InnerConnectionString:内网连接地址。
  • PublicPort:数据库实例公网端口。
  • PublicConnectionString:公网连接地址。
  • PublicIPAddress:公网IP。

示例

  • 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"
          }
        },
        "EngineVersion": {
          "Type": "String",
          "Description": "MySQL: 5.5、5.6、5.7、5.8,SQLServer:2008r2,PostgreSQL:9.4"
        },
        "DBInstanceClass": {
          "Type": "String",
          "Description": "Instance Class",
          "Default": "rds.mysql.s2.large"
        },
        "DBInstanceStorage": {
          "Type": "Number",
          "Description": "MySQL:5-1000,SQLServer:10-1000,others:5-2000"
        },
        "Engine": {
          "Type": "String",
          "Description": "RDS Engine, Allowed values: MySQL、SQLServer、PostgreSQL、PPAS。"
        },
        "DBName": {
          "Type": "String",
          "Default": "mytest"
        },
        "CharacterSetName": {
          "Type": "String",
          "Description": "MySQL: utf8、gbk、latin1、 utf8mb4",
          "Default": "utf8"
        }
      },
      "Resources": {
        "RDSInstance": {
          "DependsOn": "VSwitch",
          "Type": "ALIYUN::RDS::DBInstance",
          "Properties": {
            "VpcId": {
              "Ref": "VpcId"
            },
            "VSwitchId": {
              "Ref": "VSwitchId"
            },
            "EngineVersion": {
              "Ref": "EngineVersion"
            },
            "DBInstanceClass": {
              "Ref": "DBInstanceClass"
            },
            "SecurityIPList": "0.0.0.0/0",
            "DBInstanceStorage": {
              "Ref": "DBInstanceStorage"
            },
            "Engine": {
              "Ref": "Engine"
            },
            "DBMappings": [
              {
                "CharacterSetName": {
                  "Ref": "CharacterSetName"
                },
                "DBName": {
                  "Ref": "DBName"
                }
              }
            ]
          }
        }
      },
      "Outputs": {
        "DBInstanceId": {
          "Value": {
            "Fn::GetAtt": [
              "RDSInstance",
              "DBInstanceId"
            ]
          }
        }
      }
    }
  • 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
      EngineVersion:
        Type: String
        Description: 'MySQL: 5.5、5.6、5.7、5.8,SQLServer:2008r2,PostgreSQL:9.4'
      DBInstanceClass:
        Type: String
        Description: Instance Class
        Default: rds.mysql.s2.large
      DBInstanceStorage:
        Type: Number
        Description: MySQL:5-1000,SQLServer:10-1000,others:5-2000
      Engine:
        Type: String
        Description: 'RDS Engine, Allowed values: MySQL、SQLServer、PostgreSQL、PPAS。'
      DBName:
        Type: String
        Default: mytest
      CharacterSetName:
        Type: String
        Description: 'MySQL: utf8、gbk、latin1、 utf8mb4'
        Default: utf8
    Resources:
      RDSInstance:
        DependsOn: VSwitch
        Type: ALIYUN::RDS::DBInstance
        Properties:
          VpcId:
            Ref: VpcId
          VSwitchId:
            Ref: VSwitchId
          EngineVersion:
            Ref: EngineVersion
          DBInstanceClass:
            Ref: DBInstanceClass
          SecurityIPList: 0.0.0.0/0
          DBInstanceStorage:
            Ref: DBInstanceStorage
          Engine:
            Ref: Engine
          DBMappings:
            - CharacterSetName:
                Ref: CharacterSetName
              DBName:
                Ref: DBName
    Outputs:
      DBInstanceId:
        Value:
          Fn::GetAtt:
            - RDSInstance
            - DBInstanceId

更多示例,请参见创建数据库实例、创建管理数据库的账号、授权账号访问数据库、修改数据库参数列表、修改实例访问白名单、为某个实例创建一个只读实例和在实例下创建数据库的组合示例:JSON示例YAML示例