Развертывание нескольких хранимых процедур в Cosmos с использованием Bicep

#azure-cosmosdb-sqlapi #azure-bicep

Вопрос:

Я развертываю Космос с помощью шаблонов бицепсов. В основном все параметризовано. Мы нашли способ развертывания нескольких хранимых процедур, описанных ниже.

Определите массив в бицепсе

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

и назовите это так из powershell, используя команды az:

 az deployment group create --resource-group rgname `
--name testdeployment `
--template-file "C:GitHubbicepcosmosdbmain.bicep" `
--parameters "C:GitHubbicepcosmosdbcosmosMain.parameters.json" `
--parameters storedProcedureData=$storedProcedureData
 

где данные хранимой процедуры являются переменной:

 $storedProcedureData=(Get-Content "C:GitHubbicepcosmosdbstoredproc.json")
 

Вопрос в том — есть ли лучший способ!!! И что, если у меня есть несколько контейнеров …