Я использую PowerShell ISE для воссоздания существующей базы данных с использованием сценария, созданного на портале Azure для ресурса. Я обнаружил, что PS не использует путь к сценарию, поэтому я добавил эти строки вверху:
Write-Host $PSScriptRoot
Push-Location $PSScriptRoot
Write-Host "Path: $(get-location)"
Я добавил тестовый код, чтобы убедиться, что template.json и parameters.json присутствуют и это работает:
# Start the deployment
Write-Host "Starting deployment...";
Write-Host "Testing: $templateFilePath"
if(Test-Path $templateFilePath) {
Write-Host "FOUND: $templateFilePath"
if(Test-Path $parametersFilePath) {
Write-Host "FOUND: $parametersFilePath"
New-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath -TemplateParameterFile $parametersFilePath;
} else {
New-AzureRmResourceGroupDeployment -ResourceGroupName $resourceGroupName -TemplateFile $templateFilePath;
}
}
Однако скрипт все еще игнорирует параметры defaultValue в template.json:
"advisors_DropIndex_name": {
"defaultValue": "DropIndex",
"type": "String"
},
parameters.json:
"advisors_DropIndex_name": {
"value": null
},
Скрипт возвращает следующее:
New-AzureRmResourceGroupDeployment: 17:17:30 - ошибка: Code = InvalidDeploymentParameterValue; Сообщение = значение параметра развертывания ' keys_ServiceManaged_name ' равно нулю. Пожалуйста уточни
значение или используйте ссылку на параметр. Подробнее см. https://aka.ms/arm-deploy/#parameter-file.
В C: \ Users \ longoj \ Downloads \ ExportedTemplate-DEEAResourceGroup \ deploy.ps1: 110 char: 9
+ New-AzureRmResourceGroupDeployment -ResourceGroupName $ resour ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~
+ CategoryInfo: NotSpecified: (:) [New-AzureRmResourceGroupDeployment], исключение
+ FullyQualifiedErrorId: Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzureResourceGroupDeploymentCmdlet
Если установить значение в parameters.json:
"advisors_DropIndex_name": {
"value": "DropIndex"
},
проверка скрипта переходит к следующему параметру, и их много. Похоже, параметр defaultvalue файла template.json игнорируется.
Я использую:
Version : 5.1.2
Name : Azure
Author : Microsoft Corporation
PowerShellVersion : 3.0
Что я делаю не так?