我正在尝试使用Bicep将数据库设置为弹性池。到目前为止,我已经成功地创建了一个sql server和一个相关的弹性池。当我尝试创建一个引用这些部分的数据库时,我从Azure
中得到一个有用的错误。'语言表达式属性数组索引'1'越界。'
我真的不清楚我需要在SKU和sqlServer配置的其他属性中放入什么设置。到目前为止,我有以下内容:
resource sqlDatabase 'Microsoft.Sql/servers/databases@2022-05-01-preview' = {
parent: sqlServer
name: databaseName
location: location
sku: {
name: databaseSku
}
properties: {
elasticPoolId: elasticPoolId
collation: collation
maxSizeBytes: maxDatabaseSizeInBytes
catalogCollation: collation
zoneRedundant: zoneRedundant
readScale: 'Disabled'
requestedBackupStorageRedundancy: 'Zone'
}
}
我想使用StandardElastic池,我已经尝试将其作为databaseSku传递,我想使用50 DTU作为限制。但有容量,家庭,大小和层,从powershell我得到这些类型的选项:
Sku Edition Family Capacity Unit Available
------------ ---------------- -------- ---------- ------ -----------
StandardPool Standard 50 DTU True
StandardPool Standard 100 DTU True
StandardPool Standard 200 DTU True
StandardPool Standard 300 DTU True
那么我如何使用50 DTU标准池设置将我的sql数据库映射到该池上的sql服务器?在这个模板上,Capacity似乎也是一个字符串!
我发现首先不向sql数据库提供sku,因为它从池中继承了sku信息(这是有意义的)。其次,在我对上述弹性池的引用中,我使用了以下语法
resource elasticPool 'Microsoft.Sql/servers/elasticPools@2022-05-01-preview'
existing = {
name: 'mything-pool'
}
并且已经排除了池的PARENT,因此对池的正确引用应该是
resource elasticPool 'Microsoft.Sql/servers/elasticPools@2022-05-01-
preview' existing = {
name: 'mything-pool'
parent: **dbServer**
}
然后修复了我模糊的错误