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スクリプトでは、リソースが適切な順序で更新されるように依存関係(dependsOn)を定義できますが、これはリソースグループ内でのみ機能します。

実行したいシナリオは次のとおりです。
Azureには何もありません。microservice-1をリリースしたいと思います。 Azure/ARMに メカニズムがありますか?shared-infrastructure リリース(ARMテンプレート)はmicroservice-1より前に実行されていますか?

答えて

1

特に、ARMテンプレートにそのコードを含める場合を除きます。 DependOnは、リソースがそこにあるかどうかをチェックするだけで、それを魔法のように作成することはありません。

ただし、テンプレートに含めることもできます。存在する場合は、deploymentmode = completeを指定しない限り、何もしません。

したがって、microservice-1、microservice-2、およびshared-infrastructureの3つのテンプレートを作成できます。 microservicesのためのあなたのテンプレートでは、共有インフラストラクチャを作成するために、展開を含めることができますし、場合、それはそれを行うことはありませんそのすでにのコメントに基づいて

編集:

あなたは後に同じサブスクリプション内のリソースをリンクすることができます配備ARMでこれを行う方法はありませんが、PowerShell + ARMはそうすることができます。共有リソースの既存のインスタンスを検索できます。存在しない場合はARMテンプレートで作成し、その後に別のARMテンプレートを呼び出して実際のサービス。

+0

質問は「それを含める方法」です。私はリンクされたテンプレートを知っていますが、これは同じリソースグループ内でのみ使用できます。 – frizik

+1

配備後に同じサブスクリプションのリソースをリンクすることができます。https://azure.microsoft.com/en-us/documentation/articles/resource-group-link-resources/しかし、それはあなたの問題を解決するのに役立つものではありません、あなたがやっていることを行う方法はまだありません。 – 4c74356b41

+0

これを確実にする方法は、たびに複数のデプロイメントを実行することです。前述したように、単に「そうする」ため、存在していればノーオペレーション、作成しない場合はノーオペレーションです。テンプレートに含まれていない余分なリソースがグループ内にある場合を除き、展開モードは重要ではありません。「完了」モードを選択すると削除されますが、既存リソースの増分と同じように動作します。 –

関連する問題