Я пытаюсь создать сценарий bash для удаления каждой виртуальной машины со связанной с ней группой ресурсов, доступной во всех подписках. Однострочный код.
Итак, я сделал вот что:
for i in `az account list --query "[].{id:id}" --output tsv`; do az account set --subscription $i; VMS=`az vm list --query [].name --output tsv`; tLen=${#VMS[@]} ; for (( i=0; i<${tLen}; i++ )); do RG=`az vm list --query [$i].resourceGroup --output tsv`; az vm delete --ids $(az vm list -g ${RG} --query "[].id" -o tsv) --yes --no-wait ; az group delete --name ${RG} --yes --no-wait; done ; done
Ну, работает, но не идеально. Остались некоторые виртуальные машины и связанные с ними группы ресурсов. Итак, я подумал загрузить код здесь на stack-overflow. Что ж, может кому пригодится, да и мне тоже нужна помощь.
Итак, кто-нибудь может мне помочь? Пожалуйста, просмотрите мой код, я так хорошо умею кодировать. Мне нужен совет эксперта здесь. Заранее спасибо :)
Пожалуйста, ознакомьтесь с Как создать минимальный, полный и проверяемый пример.
Вместо того, чтобы удалять виртуальную машину и содержащую ее группу ресурсов по отдельности, вы можете просто удалить группу ресурсов. Это также удалит виртуальную машину. Нет необходимости сначала удалять виртуальную машину, а затем удалять группу ресурсов.
@GauravMantri Спасибо за подсказку. Я подправил свой код, и теперь он работает отлично. Я буду публиковать код в ответах.