İç içe şablonlar kullanarak DevTest Labs ortamlarını dağıtma

İç içe dağıtım, bir ana şablonun içinden ikincil Azure Resource Manager (ARM) şablonlarını çalıştırır. Bu makalede, Azure DevTest Labs ortamını dağıtmak için şablonları iç içe yerleştirme örneği gösterilmektedir. DevTest Labs ortamları, hizmet olarak platform (PaaS) kaynaklarının yüklü olduğu birden çok hizmet olarak altyapı (IaaS) sanal makinesi (VM) içerir. ARM şablonlarını kullanarak PaaS kaynaklarını ve VM'lerini sağlayabilirsiniz.

Dağıtımı hedeflenen, amaca özgü şablonlar kümesine ayırmak test, yeniden kullanım ve okunabilirlik avantajları sağlar. Kod örnekleri de dahil olmak üzere iç içe şablonlar hakkında genel bilgi için bkz . Azure kaynaklarını dağıtırken bağlantılı ve iç içe yerleştirilmiş şablonları kullanma.

Not

Ortam oluşturmak için Azure Dağıtım Ortamları (ADE) önerilir. ADE, geliştiricilerin proje tabanlı şablonları kullanarak uygulama altyapısını hızla dağıtmasına ve geliştirme ekipleriniz için tutarlı ve güvenli ortamlar sağlamasına yardımcı olur.

Azure Dağıtım Ortamları hakkında daha fazla bilgi edinmek için Bkz . Azure Dağıtım Ortamları belgeleri.

Visual Studio ile iç içe şablonları dağıtma

Visual Studio'daki Azure Kaynak Grubu proje şablonu ARM şablonları geliştirmeyi ve hatalarını ayıklamayı kolaylaştırır. Ana azuredeploy.json şablon dosyasına iç içe bir şablon eklediğinizde, Visual Studio şablonu daha esnek hale getirmek için aşağıdaki öğeleri ekler:

  • İkincil şablon ve parametre dosyalarını içeren bir alt klasör
  • Ana şablon dosyasındaki değişken adları
  • İki anahtar parametresi _artifactsLocation ve _artifactsLocationSasToken

DevTest Labs'de ARM şablonlarını laboratuvara bağladığınız bir Git deposunda depolarsınız. Yeni bir ortam oluşturmak için bağlantılı depo şablonlarından birini kullandığınızda, dağıtım şablon dosyalarını laboratuvardaki bir Azure Depolama kapsayıcısına kopyalar. Depoya ve ana şablon dosyasına iç içe bir şablon kaynağı eklediğinizde, Visual Studio ve _artifactsLocationSasToken değerlerini tanımlar_artifactsLocation, alt klasörleri depolama kapsayıcısına kopyalar ve konum ile Paylaşılan Erişim İmzası (SaS) belirtecini parametre dosyalarına ekler.

İç içe şablon klasör yapısı

Aşağıdaki şablon örneğinde Git deposu klasörünün iç içe şablon dosyalarının NestOne.json ve NestOne.parameters.json olduğu iç içe yerleştirilmiş bir alt klasörü vardır. azuredeploy.json ana şablon dosyası yapıtların konumunu, iç içe şablon klasörünü ve iç içe yerleştirilmiş şablon dosya adını kullanarak ikincil şablonlar için URI'yi oluşturur. Parametre dosyasının URI'si yapıt konumu, iç içe şablon klasörü ve iç içe şablon parametre dosyasıdır. Birincil klasöre, ancak yalnızca bir iç içe yerleştirme düzeyinde daha fazla iç içe şablon alt klasörü ekleyebilirsiniz.

Aşağıdaki ekran görüntüsünde Visual Studio'daki proje yapısı gösterilmektedir:

Visual Studio'da iç içe şablon proje yapısını gösteren ekran görüntüsü.

İç içe dağıtım örneği

Aşağıdaki örnekte iç içe dağıtım için ana azuredeploy.json ARM şablon dosyası gösterilmektedir:


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

Sonraki adımlar

  • DevTest Labs ortamları hakkında daha fazla bilgi için bkz . DevTest Labs ortamları oluşturmak için ARM şablonlarını kullanma.
  • Kod örnekleri de dahil olmak üzere Visual Studio Azure Kaynak Grubu proje şablonunu kullanma hakkında daha fazla bilgi için bkz . Visual Studio aracılığıyla Azure kaynak grupları oluşturma ve dağıtma.