属性“properties”是只读的

问题描述 投票:0回答:1

我有一个包含多个数据库的 SQL Server,并且创建了一个弹性池。我想使用二头肌将所有非弹性数据库添加到弹性池中。使用下面的代码,试运行没有任何变化。

param serverName string
param elasticPoolName string
param databaseNames array

resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = {
  name: serverName
}

resource elasticPool 'Microsoft.Sql/servers/elasticPools@2022-02-01-preview' existing = {
  parent: server
  name: elasticPoolName
}

resource db 'Microsoft.Sql/servers/databases@2022-02-01-preview' existing = [for dbName in databaseNames: {
  name: dbName
  parent: server
  properties: {
    elasticPoolId: elasticPool.id
  }
}]

在 VS Code 中,我收到有关属性块的警告。

属性“properties”是只读的。表达式不能分配给只读属性。如果这是文档中的不准确之处

我是否错误地使用了任何资源?

azure azure-sql-database azure-resource-manager azure-bicep
1个回答
0
投票

要将数据库添加到现有弹性池中,不需要使用

existing
关键字,而是在现有数据库的
elasticPoolId: elasticPool.id
块下直接包含
properties
将强制将数据库添加到弹性池中,如下所示。

param serverName string = 'jahnaviser'
param elasticPoolName string = 'newpool'
param databaseNames string = 'newjdb' //My existed database

resource server 'Microsoft.Sql/servers@2022-02-01-preview' existing = {
  name: serverName
}

resource elasticPool 'Microsoft.Sql/servers/elasticPools@2022-02-01-preview' existing = {
  parent: server
  name: elasticPoolName
}
resource sqlDB 'Microsoft.Sql/servers/databases@2022-05-01-preview' = {
  parent: server
  name: databaseNames
  location: location
  properties: {
    elasticPoolId: elasticPool.id
}   
}

注意: 您可以相应地使用

for
循环对多个数据库执行相同的操作。

部署成功:

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.