Azure DevTest Labs 環境 は、サービスとしてのプラットフォーム (PaaS) リソースがインストールされた複数のサービスとしてのインフラストラクチャ (IaaS) 仮想マシン (VM) で構成されます。 Azure Resource Manager (ARM) テンプレートを使用して、DevTest Labs 環境をプロビジョニングしてデプロイできます。
環境などの複雑なソリューションをデプロイするには、テンプレートをセカンダリ テンプレートに分割し、メイン テンプレートを使用してこれらのテンプレートをデプロイします。 この記事では、 入れ子になったテンプレートを 使用して DevTest Labs 環境をデプロイする方法について説明します。 ターゲットを絞った目的固有のテンプレートのセットを使用して環境をデプロイすると、テスト、再利用、読みやすさが向上します。
入れ子になったテンプレートに関する一般的な情報 (コード サンプルを含む) については、「 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 リソース グループの作成とデプロイ」を参照してください。