0

Вот что я на Azure:шаблон ARM - в зависимости от ресурсов внешней группы ресурсов

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' 

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

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

ответ

1

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

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

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

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

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

+0

Вопрос "как включить его". Я знаю связанные шаблоны, но это можно использовать только в той же группе ресурсов. – frizik

+1

вы можете связать ресурсы в одной и той же подписке после развертывания https://azure.microsoft.com/en-us/documentation/articles/resource-group-link-resources/. но это не поможет вам решить вашу проблему, пока нет способа делать то, что вы делаете. – 4c74356b41

+0

Способ гарантировать, что тогда будет выполняться несколько развертываний каждый раз - как уже упоминалось, это будет просто «сделать так», поэтому, если он существует, это не-op, если он его не создаст. В этом случае режим развертывания не будет иметь значения, если у вас нет дополнительных ресурсов в группе, которые не находятся в шаблоне, - если вы выполните «Полный» режим, они удалят их, но будут вести себя так же, как и для существующих ресурсов. –