Şablonu dışarı aktarmak için Azure CLI kullanma

Azure Resource Manager şablonları oluşturmaya yardımcı olmak için mevcut kaynaklardan bir şablonu dışarı aktarabilirsiniz. Dışarı aktarılan şablon, kaynaklarınızı dağıtan JSON söz dizimini ve özelliklerini anlamanıza yardımcı olur. Gelecekteki dağıtımları otomatikleştirmek için dışarı aktarılan şablonla başlayın ve senaryonuz için şablonu değiştirin. Dışarı aktarma şablonu işlemi kullanılabilir bir şablon oluşturmaya çalışır. Ancak, dışarı aktarılan şablonların çoğu Azure kaynaklarını dağıtmak için kullanılmadan önce bazı değişiklikler yapılmasını gerektirir.

Resource Manager, şablona aktarmak için bir veya daha fazla kaynak seçmenizi sağlar. Şablonda tam olarak ihtiyacınız olan kaynaklara odaklanabilirsiniz.

Bu makalede Şablonları Azure CLI aracılığıyla dışarı aktarma işlemi gösterilmektedir. Diğer seçenekler için bkz:

Doğru dışarı aktarma seçeneğini belirleme

Şablonu dışarı aktarmanın iki yolu vardır:

  • Kaynak grubundan veya kaynaktan dışarı aktarma. Bu seçenek mevcut kaynaklardan yeni bir şablon oluşturur. Dışarı aktarılan şablon, kaynak grubunun geçerli durumunun "anlık görüntüsüdür". Kaynak grubunun tamamını veya bu kaynak grubu içindeki belirli kaynakları dışarı aktarabilirsiniz.

  • Geçmişten kaydet'i seçin. Bu seçenek, dağıtım için kullanılan şablonun tam bir kopyasını alır. Dağıtımı dağıtım geçmişinden belirtirsiniz.

Seçtiğiniz seçeneğe bağlı olarak, dışarı aktarılan şablonların özellikleri farklıdır.

Kaynak grubundan veya kaynaktan Geçmişten
Şablon otomatik olarak oluşturulur. Dağıtmadan önce kodu geliştirmek isteyebilirsiniz. Şablon, şablon yazarı tarafından oluşturulanın tam kopyasıdır. Herhangi bir değişiklik olmadan yeniden dağıtılmaya hazırdır.
Şablon, kaynakların geçerli durumunun anlık görüntüsüdür. Dağıtımdan sonra el ile yaptığınız tüm değişiklikleri içerir. Şablon yalnızca dağıtım sırasında kaynakların durumunu gösterir. Dağıtımdan sonra el ile yaptığınız değişiklikler dahil değildir.
Bir kaynak grubundan dışarı aktarabileceğiniz kaynakları seçebilirsiniz. Belirli bir dağıtım için tüm kaynaklar dahil edilir. Bu kaynakların bir alt kümesini seçemez veya farklı bir zamanda eklenen kaynakları ekleyemezsiniz.
Şablon, dağıtım sırasında normalde ayarlayacağınız bazı özellikler de dahil olmak üzere kaynakların tüm özelliklerini içerir. Şablonu yeniden kullanmadan önce bu özellikleri kaldırmak veya temizlemek isteyebilirsiniz. Şablon yalnızca dağıtım için gereken özellikleri içerir. Şablon daha seyrek ve daha kolay okunur.
Şablon büyük olasılıkla yeniden kullanmak için ihtiyacınız olan tüm parametreleri içermez. Çoğu özellik değeri şablonda sabit kodlanmıştır. Şablonu diğer ortamlarda yeniden dağıtmak için, kaynakları yapılandırma becerisini artıran parametreler eklemeniz gerekir. Kendi parametrelerinizi yazabilmeniz için Parametreleri dahil et'in seçimini kaldırabilirsiniz. Şablon, farklı ortamlarda yeniden dağıtmayı kolaylaştıran parametreler içerir.

Aşağıdaki durumlarda şablonu bir kaynak grubundan veya kaynaktan dışarı aktarın:

  • Özgün dağıtımdan sonra yapılan kaynaklarda yapılan değişiklikleri yakalamanız gerekir.
  • Hangi kaynakların dışarı aktarılmasını seçmek istiyorsunuz.
  • Kaynaklar şablonla oluşturulmamış.

Şablonu aşağıdaki durumlarda geçmişten dışarı aktarın:

  • Yeniden kullanımı kolay bir şablon istiyorsunuz.
  • Özgün dağıtımdan sonra yaptığınız değişiklikleri eklemeniz gerekmez.

Sınırlamalar

Dışarı aktarma işleminin başarılı olması garanti edilmez. Dışarı aktarma, önceden var olan kaynakları üretimde kullanılabilen şablonlara dönüştürmenin güvenilir bir yolu değildir. El ile yazılmış Bicep dosyası, ARM şablonu veya terraform kullanarak sıfırdan kaynak oluşturmak daha iyidir.

Bir kaynak grubundan veya kaynaktan dışarı aktarırken, dışarı aktarılan şablon her kaynak türü için yayımlanan şemalardan oluşturulur. Bazen şemada bir kaynak türü için en son sürüm yoktur. İhtiyacınız olan özellikleri içerdiğinden emin olmak için dışarı aktarılan şablonunuzu denetleyin. Gerekirse, ihtiyacınız olan API sürümünü kullanmak için dışarı aktarılan şablonu düzenleyin.

Dışarı aktarılan şablonlarda bazı parola parametreleri eksik olabilir. Kaynakları dağıtmak için şablonları kullanmadan önce şablon başvurularını denetlemeniz ve bu parametreleri el ile eklemeniz gerekir.

Şablonu dışarı aktarma özelliği, Azure Data Factory kaynaklarının dışarı aktarılmasını desteklemez. Data Factory kaynaklarını nasıl dışarı aktarabileceğiniz hakkında bilgi edinmek için bkz. Azure Data Factory'de veri fabrikası kopyalama veya kopyalama.

Klasik dağıtım modeliyle oluşturulan kaynakları dışarı aktarmak için bunları Resource Manager dağıtım modeline geçirmeniz gerekir.

Kaynak türünün dışarı aktarılmadığını belirten bir şablonu dışarı aktarırken uyarı alırsanız, bu kaynağın özelliklerini yine de bulabilirsiniz. Kaynak özellikleri için bkz. şablon başvurusu. Kaynak türü için Azure REST API'sine de bakabilirsiniz.

Dışarı aktarılan şablonu oluşturduğunuz kaynak grubunda 200 kaynak sınırı vardır. 200'den fazla kaynağı olan bir kaynak grubunu dışarı aktarmaya çalışırsanız hata iletisi Export template is not supported for resource groups more than 200 resources gösterilir.

Kaynak grubundan şablonu dışarı aktarma

Kaynak grubunuzu başarıyla ayarladıktan sonra, kaynak grubu için bir Azure Resource Manager şablonunu dışarı aktarabilirsiniz.

Bir kaynak grubundaki tüm kaynakları dışarı aktarmak için az group export komutunu kullanın ve kaynak grubu adını sağlayın.

az group export --name demoGroup

Betik, şablonu konsolda görüntüler. Bir dosyaya kaydetmek için şunu kullanın:

az group export --name demoGroup > exportedtemplate.json

Kaynak grubundaki tüm kaynakları dışarı aktarmak yerine, dışarı aktarabileceğiniz kaynakları seçebilirsiniz.

Bir kaynağı dışarı aktarmak için bu kaynak kimliğini geçirin.

storageAccountID=$(az resource show --resource-group demoGroup --name demostg --resource-type Microsoft.Storage/storageAccounts --query id --output tsv)
az group export --resource-group demoGroup --resource-ids $storageAccountID

Birden fazla kaynağı dışarı aktarmak için boşlukla ayrılmış kaynak kimliklerini geçirin. Tüm kaynakları dışarı aktarmak için bu bağımsız değişkeni belirtmeyin veya "*" sağlamayın.

az group export --resource-group <resource-group-name> --resource-ids $storageAccountID1 $storageAccountID2

Şablonu dışarı aktarırken, parametrelerin şablonda kullanılıp kullanılmayacağını belirtebilirsiniz. Varsayılan olarak, kaynak adları için parametreler eklenir, ancak varsayılan değere sahip değildir.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "type": "String"
  }
}

Şablonu dışarı aktarırken parametresini --skip-resource-name-params kullanırsanız, kaynak adlarının parametreleri şablona dahil değildir. Bunun yerine, kaynak adı doğrudan kaynağın geçerli değerine ayarlanır. Dağıtım sırasında adı özelleştiremezsiniz.

"resources": [
  {
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2022-09-01",
    "name": "demoHostPlan",
    ...
  }
]

Şablonu dışarı aktarırken parametresini --include-parameter-default-value kullanırsanız, şablon parametresi geçerli değere ayarlanmış bir varsayılan değer içerir. Bu varsayılan değeri kullanabilir veya farklı bir değer geçirerek varsayılan değerin üzerine yazabilirsiniz.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "defaultValue": "demoHostPlan",
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "defaultValue": "webSite3bwt23ktvdo36",
    "type": "String"
  }
}

Şablonu dağıtım geçmişinden kaydetme

Dağıtım geçmişinde bir dağıtımdan şablon kaydedebilirsiniz. Elde ettiğiniz şablon, dağıtım için kullanılan şablondur.

Kaynak grubu dağıtımından şablon almak için az deployment group export komutunu kullanın. Alınacak dağıtımın adını belirtirsiniz. Dağıtımın adını alma konusunda yardım için bkz. Azure Resource Manager ile dağıtım geçmişini görüntüleme.

az deployment group export --resource-group demoGroup --name demoDeployment

Şablon konsolunda görüntülenir. Dosyayı kaydetmek için şunu kullanın:

az deployment group export --resource-group demoGroup --name demoDeployment > demoDeployment.json

Şablonların diğer düzeylerde dağıtılmalarını sağlamak için şunu kullanın:

Sonraki adımlar