2016-01-26 2 views
3

У меня есть шаблон для рук, который содержит несколько ресурсов в одной группе ресурсов. Затем некоторые из этих ресурсов изменяются (уровни ставок изменяются для разных групп ресурсов).Azure - не разрешать Arm шаблон изменять существующие ресурсы

Например, в шаблоне моей руки База данных Sql изначально предоставляется для производительности S1 и затем масштабируется до S2 пользователем. Затем я редактирую шаблон руки, чтобы добавить ресурс учетной записи хранилища, например. Когда я публикую обновленный шаблон в существующей группе ресурсов (с базой данных Sql, масштабированной до S2), чтобы добавить учетную запись хранилища, я вижу, что моя база данных уменьшена до S1 (значение по умолчанию в моем шаблоне руки).

Мой вопрос: есть ли способ предотвратить создание шаблона руки от изменения свойств существующих ресурсов?

+0

Вы можете создать [ресурс блокировки] (https://azure.microsoft.com/en-us/documentation/articles/resource-group-lock-resources/) на этих ресурсах, но это может привести к простому развертывание для отказа. – BenV

+0

Можете ли вы просто развернуть другой шаблон, содержащий только учетную запись хранилища? Или вам почему-то нужно их комбинировать? Если вы развертываете в инкрементном режиме (который по умолчанию), то ни один из существующих ресурсов, которые не определены в шаблоне, не будут затронуты. –

+0

@ bmoore-msft у нас много условий (группы ресурсов), и нам нужно обеспечить, чтобы после перераспределения были добавлены новые ресурсы (список ресурсов будет продолжать расти), а существующие ресурсы остаются нетронутыми. Если у нас есть отдельный шаблон для каждого добавляемого нами ресурса, это может легко усложнить процесс обновления. Вот почему я хотел содержать все в одном шаблоне – Milen

ответ

3

Характер шаблонов Azure RM должен быть декларативной структурой, которая определяет, как следует развертывать решение. Если он находит что-то, чего нет в шаблоне, он должен по характеру того, что он делает, изменить его, чтобы он соответствовал шаблону.

Возможно, вам лучше конвертировать ваши шаблоны в сценарии Powershell (или вызовы API REST), чтобы вы могли проверить состояние до создания/изменения деталей.

Другой альтернативой было бы изменение этих параметров в скрипте до вызова шаблона. Так что вы настраиваете базу данных SQL на S2, если это уже существует.

+0

Спасибо за это предложение, я посмотрю на него. – Milen

+0

Я поеду для изменения параметров шаблона в скрипте, так как довольно легко проверить, существует ли ресурс, и попросить его Edition и Tier (например) как часть моего файла Deploy-AzureResourceGroup.ps1. В очередной раз благодарим за помощь :) – Milen

Смежные вопросы