İç 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, bir Azure DevTest Labs ortamı dağıtmak için iç içe yerleştirilmiş şablonlar ö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'leri sağlayabilirsiniz.
Dağıtımı hedeflenen, amaca özgü bir şablon kümesine ayırmak test etme, yeniden kullanma 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 şablonları kullanma.
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 ve 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 nestone.json ve NestOne.parameters.json iç içe şablon dosyalarıyla birlikte nestedtemplates adlı 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 şablon dosya adını kullanarak ikincil şablonlar için URI'yi oluşturur. Parametre dosyasının URI'si yapıtların konumu, iç içe şablon klasörü ve iç içe şablon parametreleri 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:
İç 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.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin