Я создал шаблон для создания нового ресурса SQL в Azure.
. Из этого я получаю два стандартных файла:
- template. json
- параметры. json
Теперь я хочу создать развертывание с использованием Powershell
.
У меня могут быть просто разные параметры. json файлы с паролями, написанными непосредственно в них (это работает), но я хочу сохранить пароли вне контроля версий. Однако я не могу найти способ обновить параметры без обновления файла.
Вот мой код (с использованием Test-AzResourceGroupDeployment , с целью перехода на New-AzResourceGroupDeployment после того, как это сработает):
$templatePath = "./sqlserver/template/template.json"
$paramsPath = "./sqlserver/template/parameters.json"
$administratorLogin = "adminUserName"
$administratorLoginPassword = "ARealPasswordHere!!!"
$databaseName = "MyDatabaseName"
$serverName = "serverforthedatabase"
$paramsFileText = [System.IO.File]::ReadAllText($paramsPath)
$params = ConvertFrom-Json $paramsFileText -AsHashtable
$params.parameters.administratorLogin = $administratorLogin
$params.parameters.administratorLoginPassword = ConvertTo-SecureString $administratorLoginPassword -AsPlainText -Force
$params.parameters.databaseName = $databaseName
$params.parameters.serverName = $serverName
# Run New-AzResourceGroupDeployment when working
Test-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
-TemplateFile $templatePath `
-TemplateParameterObject $params
Если я выполню вышеприведенное, я получу приглашение для каждого параметра в файле параметров.
Если я изменю -TemplateParameterObject $params
на -TemplateParameterObject $params.parameters
, я получу ошибку 'Template parameter JToken type is not valid
.
Если я попытаюсь сделать TemplateObject
, чтобы оба входа были объектами, это тоже не удастся.
Test-AzResourceGroupDeployment -ResourceGroupName $resourceGroupName `
-TemplateObject $templateObj `
-TemplateParameterObject $params.parameters
Как это сделать, пожалуйста?