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個字符、連接地址總長度(前綴+后綴)不得超過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參數中傳的規格代碼自動判斷:
說明 使用參數查詢功能時,ZoneId,DBInstanceStorageType,Category建議必填,否則會導致校驗不完全。 Serverless 實例僅支持 ESSD PL1 云盤,必須傳入cloud_essd。 |
RoleARN | String | 否 | 否 | 角色ARN。RDS通過該角色訪問KMS。 | 更多信息,請參見授權PolarDB訪問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示例。