Azure DevTest Labs 環境 は、サービスとしてのプラットフォーム (PaaS) リソースがインストールされた複数のサービスとしてのインフラストラクチャ (IaaS) 仮想マシン (VM) で構成されます。 Azure Resource Manager (ARM) テンプレートを使用して、DevTest Labs 環境をプロビジョニングしてデプロイできます。
環境などの複雑なソリューションをデプロイするには、テンプレートをセカンダリ テンプレートに分割し、メイン テンプレートを使用してこれらのテンプレートをデプロイします。 この記事では、 入れ子になったテンプレートを 使用して DevTest Labs 環境をデプロイする方法について説明します。 ターゲットを絞った目的固有のテンプレートのセットを使用して環境をデプロイすると、テスト、再利用、読みやすさが向上します。
入れ子になったテンプレートに関する一般的な情報 (コード サンプルを含む) については、「 Azure リソースのデプロイ時にリンクされたテンプレートと入れ子になったテンプレートを使用する」を参照してください。
Note
エンタープライズ全体の PaaS リソース、ポリシー、セキュリティ設定、またはデプロイ ステージとアプリケーション間の CI/CD 統合を管理する必要がある場合は、Azure Deployment Environment (ADE) を使用して環境を作成することを検討してください。 ADE を使用すると、開発者はプロジェクト ベースのテンプレートを使用してアプリ インフラストラクチャを迅速にデプロイし、開発チームの一貫性のある安全な環境を確保できます。 詳細については、 Azure デプロイ環境のドキュメントを参照してください。
入れ子になったテンプレートのデプロイ
DevTest Labs では、ARM テンプレートをラボにリンクされた Git リポジトリに格納できます。 リポジトリ テンプレートを使用して環境を作成すると、DevTest Labs は、入れ子になったテンプレート ファイルを含むすべてのテンプレートファイルとアーティファクト ファイルをラボの Azure Storage コンテナーにコピーします。
入れ子になったテンプレートデプロイのメイン azuredeploy.json テンプレート ファイルでは、 Microsoft.Resources/deployments オブジェクトを使用してリンクされたセカンダリ テンプレートを呼び出します。 リンクされたテンプレートの URI 値を指定し、デプロイ用の Shared Access Signature (SaS) トークンを生成します。
デプロイでは、Azure PowerShell New-AzResourceGroupDeployment または Azure CLI az deployment group createを使用して、メイン テンプレート URI と SaS トークンを指定します。 詳細については、「 チュートリアル: リンクされたテンプレートをデプロイする」を参照してください。
入れ子になったテンプレートの例
次の例は、メイン テンプレート ファイル azuredeploy.json の入れ子になったデプロイのコードを示しています。 メイン テンプレート ファイルは、入れ子になったテンプレートへのリンクを定義します。
セカンダリ テンプレートのリンク URI は、アーティファクトの場所、入れ子になったテンプレート フォルダー、入れ子になったテンプレート ファイル名、成果物の Shared Access Signature (SaS) トークンの場所を連結します。 セカンダリ パラメーター ファイルの URI では、アーティファクトの場所、入れ子になったテンプレート フォルダー、入れ子になったパラメーター ファイル名、成果物 SaS トークンの場所が使用されます。
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"_artifactsLocation": {
"type": "string"
},
"_artifactsLocationSasToken": {
"type": "securestring"
}},
"variables": {
"NestOneTemplateFolder": "nestedtemplates",
"NestOneTemplateFileName": "NestOne.json",
"NestOneTemplateParametersFileName": "NestOne.parameters.json"},
"resources": [
{
"name": "NestOne",
"type": "Microsoft.Resources/deployments",
"apiVersion": "2016-09-01",
"dependsOn": [ ],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('NestOneTemplateFolder'), '/', variables('NestOneTemplateFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
},
"parametersLink": {
"uri": "[concat(parameters('_artifactsLocation'), '/', variables('NestOneTemplateFolder'), '/', variables('NestOneTemplateParametersFileName'), parameters('_artifactsLocationSasToken'))]",
"contentVersion": "1.0.0.0"
}
}
}],
"outputs": {}
関連コンテンツ
- DevTest Labs 環境の詳細については、「ARM テンプレートを使用して DevTest labs 環境を作成する」を参照してください。
- コード サンプルを含む Visual Studio Azure リソース グループ プロジェクト テンプレートの使用の詳細については、「 Visual Studio を使用した Azure リソース グループの作成とデプロイ」を参照してください。