Menyebarkan lingkungan DevTest Labs dengan menggunakan template bertumpuk

Penyebaran bertumpuk menjalankan templat Azure Resource Manager (ARM) sekunder dari dalam template utama. Artikel ini menunjukkan contoh template bertumpuk untuk menyebarkan lingkungan Azure DevTest Labs. Lingkungan DevTest Labs berisi beberapa mesin virtual (VM) infrastructure-as-a-service (IaaS) dengan sumber daya platform-as-a-service (PaaS). Anda dapat menyediakan sumber daya PaaS dan VM dengan menggunakan template ARM.

Menguraikan penyebaran ke dalam serangkaian template khusus tujuan yang ditargetkan memberikan manfaat pengujian, penggunaan kembali, dan keterbacaan. Untuk informasi umum tentang template bertumpuk, termasuk sampel kode, lihat Menggunakan template tertaut dan bertumpuk saat menyebarkan sumber daya Azure.

Menyebarkan template dengan Visual Studio

Template proyek Azure Resource Group di Visual Studio memudahkan pengembangan dan debug template ARM. Saat Anda menambahkan templat bersarang ke file templat azuredeploy.json utama, Visual Studio menambahkan item berikut untuk membuat templat lebih fleksibel:

  • Subfolder dengan file template dan parameter sekunder
  • Nama variabel dalam file template utama
  • Dua parameter utama, _artifactsLocation dan _artifactsLocationSasToken

Di DevTest Labs, Anda menyimpan template ARM di repositori Git yang Anda tautkan ke lab. Saat Anda menggunakan salah satu template repositori tertaut untuk membuat lingkungan baru, penyebaran menyalin file template ke dalam wadah Azure Storage di lab. Saat Anda menambahkan sumber daya template bertumpuk ke repositori dan file template utama, Visual Studio mengidentifikasi _artifactsLocation dan _artifactsLocationSasToken nilai, menyalin subfolder ke wadah penyimpanan, dan menyisipkan lokasi dan token Tanda Tangan Akses Bersama (SaS) ke dalam file parameter.

Struktur folder template bertumpuk

Dalam contoh template berikut, folder repositori Git memiliki subfolder, nestedtemplates, dengan file template bersarang NestOne.json dan NestOne.parameters.json. File template utama azuredeploy.json membangun URI untuk template sekunder dengan menggunakan lokasi artefak, folder template bertumpuk, dan nama file template bertumpuk. URI untuk file parameter adalah lokasi artefak, folder template bertumpuk, dan file parameter template bertumpuk. Anda dapat menambahkan lebih banyak subfolder template bertumpuk ke folder utama, tetapi hanya pada satu tingkat bertumpuk.

Cuplikan layar berikut menunjukkan linter di Visual Studio Code:

Screenshot that shows the nested template project structure in Visual Studio.

Contoh penyebaran berlapis

Contoh berikut menunjukkan file template ARM azuredeploy.json utama untuk penyebaran bertumpuk:


"$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": {}

Langkah berikutnya