В настоящее время я автоматизирую некоторые операции очистки в Azure, и структура моего кода в основном такова:
- Огромный цикл for, перебирающий список групп ресурсов, которые следует удалить.
- Если в какой-либо из этих групп отсутствует определенный мной список обязательных тегов, удалите эту группу ресурсов.
В настоящее время операция удаления так же проста, как:
// Inside the for loop that iterates over a list of resource group names
elif rg.tags.get('delete_at', False):
if datetime.now() > datetime.strptime(rg.tags['delete_at'], '%Y-%m-%d %H:%M:%S'):
print('Resource Group: ' + rg.name + ' is going to be deleted')
try:
delete_async_op = delete_rg(rg_client, rg.name)
delete_async_op.wait()
except CloudError:
# If any of the delete operation fails, don't block the policy execution over the rest of resource groups
print("The delete operation for the resource group: '" + rg.name + "' didn't suceed. Details: " + traceback.format_exc())
continue
Просто для записи, функция delete_rg
это просто оболочка, которая выполняет следующую операцию:
rg_client.resource_groups.delete(rg_name)
Поэтому мне было интересно, будет ли более эффективный способ сделать это. Может быть, имея список имен групп ресурсов, которые следует удалить, и создавая потоки для этих операций? Просто догадываюсь, ищу совета.
Спасибо заранее! Дайте мне знать, если мой вопрос недостаточно ясен.