Шаблон ARM - в зависимости от ресурсов вне группы ресурсов

Вот что у меня в Azure:

Resource group: 'microservice-1'
App Service: 'app-service-1'
Database: 'database-1'

Resource group: 'microservice-2'
App Service: 'app-service-2'
Database: 'database-2'

Resource group: 'shared-infrastructure'
Database: 'shared-database-1'

Оба микросервиса используют shared-database-1. Каждая микрослужба содержит сценарий шаблона ARM для создания / обновления группы ресурсов, которая используется при развертывании микросервиса. В сценариях ARM мы можем определять зависимости (dependsOn), чтобы ресурсы обновлялись в правильном порядке, но это работало только внутри группы ресурсов.

Вот сценарий, который я хочу запустить:
В Azure ничего нет, и я хочу выпустить microservice-1. Есть ли в Azure / ARM механизм, который я могу использовать, чтобы выпуск shared-infrastructure (шаблон ARM) запускался до microservice-1?


person frizik    schedule 10.11.2016    source источник


Ответы (1)


Нет, если вы специально не включили это в свой шаблон ARM. DependOn просто проверьте, есть ли ресурс, он не создаст его за вас волшебным образом.

Но вы можете включить это в свой шаблон, и если он существует, он ничего не сделает, если вы не укажете deploymentmode = complete.

Таким образом, вы можете создать 3 шаблона: для микросервиса-1, микросервиса-2 и для общей инфраструктуры. В свои шаблоны для микросервисов вы можете включить развертывание для создания общей инфраструктуры, и оно не будет этого делать, если оно уже существует.

Отредактировано на основе комментариев:

Вы можете связать ресурсы в одной подписке после развертывания. Невозможно сделать это с ARM, но PowerShell + ARM может это сделать, вы можете искать существующие экземпляры общего ресурса, а если его нет - создать его с помощью шаблона ARM, а после этого вызвать другой шаблон ARM для развертывания фактического сервиса. .

person 4c74356b41    schedule 10.11.2016
comment
Вопрос в том, как его включить. Я знаю связанные шаблоны, но их можно использовать только в пределах одной группы ресурсов. - person frizik; 10.11.2016
comment
вы можете связать ресурсы в одной подписке после развертывания azure .microsoft.com / en-us / documentation / articles /. но это не поможет вам решить вашу проблему, пока нет способа делать то, что вы делаете. - person 4c74356b41; 10.11.2016
comment
Чтобы гарантировать это, тогда будет запускать несколько развертываний каждый раз - как уже упоминалось, это просто сделает это так, поэтому, если он существует, это не работает, если нет, он его создаст. В этом случае режим развертывания не будет иметь значения, если у вас нет дополнительных ресурсов в группе, которых нет в шаблоне - если вы используете режим «Полный», они будут удалены, но будут вести себя так же, как добавочные для существующих ресурсов. - person bmoore-msft; 11.11.2016
comment
спасибо, Брайан, на самом деле, когда я думаю об этом, нет способа сделать это с ARM, но PowerShell + ARM может это сделать, вы можете искать существующие экземпляры общего ресурса, а если его нет - создать его с помощью шаблона ARM и после этого вызовите другой шаблон ARM для развертывания фактического сервиса - person 4c74356b41; 11.11.2016