Я пытаюсь создать новый Azure файл развертывания ARM со сценарием на основе существующего шаблона ARM.
В основном я делаю следующее:
- Экспорт файла JSON для виртуальной машины
- Преобразование файла JSON в объект в PShell
- Внести изменения
- Создать новый JSON файл
Проблема, с которой я столкнулся сейчас, заключается в том, что в исходном файле JSON включена функция storageprofile.imagereference
, которая необходимо удалить из нового файла JSON.
Я пытался установить его значение (storageprofile.imagereference.id = $ null), но ARM это не нравится и хочет удалить всю запись storageprofile.imagereference.
Итак, в моем Pshell мой VMObjectFile читается как:
$VMObjectFile = (Get-Content $ImportFile | Out-String | ConvertFrom-Json)
И свойство, которое я хочу удалить, установлено на:
$VMObjectFile.resources.properties.storageProfile.imageProfile
Но как мне это сделать? удалить все дерево? Я уже избавился от значения «id» и после этого могу установить $VMObjectFile.resources.properties.storageProfile.imageProfile
в $null
(удаление атрибута id),
Но как мне полностью удалить ссылку на изображение из поддерева $VMObjectFile.resources.properties.storageProfile
, как там? несколько записей, которые все еще существуют по этому пути:
$VMObjectFile.resources.properties.storageProfile.osDisk
$VMObjectFile.resources.properties.storageProfile.dataDisk