Я создаю набор шаблонов ARM для развертывания всех ресурсов, которые мне нужны для моего приложения, и я указываю параметр environmentPrefix
в файле параметров, а также префикс всех имен ресурсов с префиксом среды. Конечным результатом является, например, служба приложения в среде разработчика с базовым именем service1
, получившая имя ресурса dev-service1
.
Ресурсы для данной среды должны быть развернуты в группе ресурсов с таким же префиксом среды, например, dev-core-services
.
Я хочу завершить развертывание шаблона, если имя RG не начинается с файлов параметров environmentPrefix
. Например, если вы развернете шаблон, используя файл параметров, который определяет environmentPrefix = dev
в RG с именем prod-core-services
, развертывание завершится неудачей.
Я знаю, что могу добавить элемент condition
в отдельные ресурсы, который выглядит примерно так:
"condition": "[if(startsWith(resourceGroup().name, concat(parameters('EnvironmentPrefix'), '-')), bool('true'), bool('false'))]",
Но если я сделаю это со всеми ресурсами, развертывание шаблона скажет, что оно успешно выполнено, когда оно на самом деле ничего не развернуло - потому что все элементы condition
оцениваются как ложные.
Есть идеи, как провалить развертывание при таких условиях?
(Я знаю, что есть и другие альтернативы для безопасной работы, такие как разные подписки на prod vs dev или развертывание с разными принципами обслуживания, которые имеют разные права доступа и т. Д., Но это то, с чем я должен работать на момент: - (