我正在通过二头肌模板部署 Cosmos。大多数情况下,一切都是参数化的。我们找到了一种部署多个存储过程的方法,如下所述。
在二头肌中定义一个数组
param storedProcedureData array = []
然后在资源部分循环数据:
resource cosmosStoredProcedures 'Microsoft.DocumentDB/databaseAccounts/sqlDatabases/containers/storedProcedures@2021-06-15' = [for storedProcedure in storedProcedureData: {
parent: cosmosSQLContainers
name: storedProcedure.name
properties: {
resource: {
id: storedProcedure.name
body: storedProcedure.body
}
}
}]
我有一个带有存储过程代码的 json 文件,如下所示:
[
{
"name": "sp1",
"body": "function sp1 etc"
},
{
"name": "sp2",
"body": "function sp2 etc"
}
]
并使用 az 命令从 powershell 中这样调用它:
az deployment group create --resource-group rgname `
--name testdeployment `
--template-file "C:\GitHub\bicep\cosmosdb\main.bicep" `
--parameters "C:\GitHub\bicep\cosmosdb\cosmosMain.parameters.json" `
--parameters storedProcedureData=$storedProcedureData
其中存储过程数据是一个变量:
$storedProcedureData=(Get-Content "C:\GitHub\bicep\cosmosdb\storedproc.json")
问题是 - 有没有更好的方法!!!如果我有多个容器怎么办......