Azure ARM テンプレートに関する次のギャップを明確にしたいと思います
: 内部に次のようなマスター テンプレートがあるとします。
App Service plan creation
Azure SQL server creation
SQL elastic pool creation (using previously created Azure SQL server)
このテンプレートは、クラウド インフラストラクチャの最初の作成に使用されます。
次に、マスター テンプレートに子 (ネストまたはリンク) テンプレートを追加します。
子テンプレートには、AppService Web App + SQL の作成が含まれます。
Web App creation (using App Service Plan defined in master template)
Azure SQL database creation (using Azure SQL server defined in master template)
Adding Azure SQL database to elastic pool (defined in master template)
Azure Key Vault の最初の作成や、SQL 管理者のユーザー名\パスワードや Web アプリの SSL 証明書などの必要な資格情報をこのコンテナーに作成して保存するなど、いくつかの詳細は省略します。
したがって、テンプレートのデプロイ実行の最後に次のことを行いたいと考えています。
first template deployment
- 基本的なインフラストラクチャの作成 (Web アプリ用のアプリ サービス プラン、エラスティック プールに追加された SQL サーバー)
- 以前に作成したアプリ サービス プランとエラスティック プール (SQL データベースが配置される場所) を使用するアプリ サービス (Web アプリ + SQL) の単一インスタンス
second template deployment
- 既存のインフラストラクチャを使用して、アプリ サービス (Web アプリ + SQL) の単一 (2 番目) のインスタンスが作成されます。
N-template deployment
- アプリ サービス (Web アプリ + SQL) の単一 (N インスタンス) がデプロイされます <...>
質問は次のとおりです。
- ネストされたテンプレートまたはリンクされたテンプレートを使用する必要がありますか? 私の場合の正確な違いは何ですか?
- 私の全体的な解決策は正しいですか、それとも変更する必要がありますか?別のアプローチを見つける必要がありますか?
たとえば、リソース ロックを使用したり (削除を防ぐため)、展開に増分モードを使用したり (既存のリソースを保持するため) できるという次の投稿を既に見つけましたが、これはアプローチ全体に関する私の質問には答えません。