Рубрики
Uncategorized

Как я могу удалить ресурс с шаблоном рук?

Несколько дней назад кто -то задал мне этот вопрос, какова команда в шаблонах ARM, чтобы удалить ресурс … Tagged с помощью Azure, DevOps, IAC.

Несколько дней назад кто -то задал мне этот вопрос: какова команда в шаблонах ARM, чтобы удалить ресурсы в Azure? Это не тривиальный вопрос; Это скорее отражение неправильного представления о том, как работают шаблоны ARM и инфраструктуру как кода и как ресурсы организованы в Azure. Прежде чем ответить на вопрос, давайте сделаем небольшое отступление.

Шаблоны ARM — это декларативный язык, основанный на JSON, используемом для определения желаемого состояния ресурсов Azure. Файлы JSON, используемые ARM, могут определять объекты в различных областях, арендаторах Azure, группах управления, подписках и группах ресурсов.

Сфера применения группы ресурсов позволяет вам установить вашу виртуальную машину, инфраструктуру и услуги для одной группы ресурсов. Фактически, в этом объеме шаблон рук намерен определить всю группу ресурсов. Группа ресурсов — это логический контейнер, который будет группировать объекты, которыми вы хотите управлять как группу. Объекты в группе ресурсов должны делиться тем же жизненным циклом, и группа ресурсов помогает вам определить, кто может управлять ресурсами через RBAC. Но это легче сказать, чем сделать. Возьмите простое веб -приложение, у вас могут быть сетевые ресурсы, такие как Vnet и LB, виртуальные машины с диском и NIC и, возможно, некоторые базы данных. Все объекты имеют один и тот же жизненный цикл? Это не так просто. Возьмите ресурсы, связанные с сетью, их можно обмениваться по подписке и использовать другие приложения. Более того, вы будете менять настройку VNET реже, чем ваше приложение. Но о базах данных и ресурсах веб -приложений? Они связаны вместе, больше веб -приложения может не работать без базы данных, а база данных бесполезна без приложения. Но разделяют ли они один и тот же жизненный цикл? Подумайте о том, как вы можете изменить архитектуру приложения. Вы можете запустить веб -приложение в виртуальной машине, экземпляре контейнера, веб -приложения Azure или оркестратором. Это то же самое для базы данных, это может быть управляемая служба, сервер базы данных в виртуальной машине. Выбор этих двух компонентов независим. Переход от экземпляра контейнера Azure в AKS не влияет на службы базы данных, которые вы запускаете, и изменение службы базы данных с IAAS на PAAS не должно наносить вред вашему приложению.

И если вы добавите контроль доступа к уравнению, разделение между сетью, базой данных и приложением будет более четким, поскольку вы, возможно, не хотите, чтобы все управляли всеми ресурсами. В заключение, даже если эти две службы связаны, они не имеют такого же жизненного цикла.

Теперь, когда я закончил отступление и знаете, как разработать свои группы ресурсов, да, вы можете удалить объект Azure

Использование шаблона рук. Существует два режима для развертывания шаблона ARM, инкрементного и полного режима. Инкрементный режим — по умолчанию. Это не заботится о том, отсутствует ли ресурса в целевой группе ресурсов в Azure отсутствовать в шаблоне. Это только добавит/обновляет ресурсы, присутствующие в шаблоне. Полный режим отличается. В этом режиме шаблон является конечным источником истины. Все, что определено в шаблоне, будет создано или обновлено в группе целевых ресурсов, как в постепенном режиме. Но каждый ресурс в целевой группе ресурсов, не определенной в шаблоне, будет удален (за исключением случаев, если родительский ресурс не удален, или если группа ресурсов заблокирована).

Полный режим возможен только на корневом уровне развертывания шаблона. Вы не можете использовать этот режим в связанном шаблоне. Другие точки внимания и петли. Если в вашем шаблоне вы используете условие для развертывания объекта, и если условие является ложным, ресурс будет удален с самыми последними инструментами (CLI или PowerShell) и последним API. Вы должны позаботиться о петлях. Если вы используете его для создания нескольких экземпляров ресурса, обязательно имеете одинаковое количество итерации, если нет, это может закончиться с нежелательным удалением объекта.

Чтобы развернуть шаблон в постепенном режиме, вам нечего делать, так как это поведение по умолчанию как в модуле PowerShell PowerShell, так и в Azure CLI. Для полного режима вам необходимо указать режим.

New-AzResourceGroupDeployment -Mode
az deployment group create –-mode Complete

Оригинал: «https://dev.to/omiossec/how-can-i-delete-a-resource-with-arm-template-cke»