Use Azure CLI untuk mengekspor templat

Untuk membantu membuat templat Azure Resource Manager, Anda bisa mengekspor templat dari sumber daya yang sudah ada. Templat yang diekspor membantu Anda memahami sintaksis JSON dan properti yang menyebar sumber daya Anda. Untuk mengotomatiskan penyebaran di masa mendatang, mulailah dengan templat yang diekspor dan ubah sesuai skenario Anda. Proses template ekspor mencoba membuat template yang dapat digunakan. Namun, sebagian besar templat yang diekspor memerlukan beberapa modifikasi sebelum dapat digunakan untuk menyebarkan sumber daya Azure.

Resource Manager memungkinkan Anda memilih satu atau beberapa sumber daya untuk diekspor menjadi templat. Anda dapat fokus pada sumber daya yang Anda butuhkan dalam templat.

Artikel ini memperlihatkan cara mengekspor templat melalui Azure CLI. Untuk opsi lain, lihat:

Pilih opsi ekspor yang tepat

Ada dua cara untuk mengekspor templat:

  • Ekspor dari satu atau sekelompok sumber daya. Opsi ini menghasilkan templat baru dari sumber daya yang sudah ada. Templat yang diekspor adalah "snapshot" dari kondisi grup sumber daya saat ini. Anda dapat mengekspor seluruh grup sumber daya atau sumber daya tertentu dalam grup sumber daya tersebut.

  • Simpan dari riwayat. Opsi ini mengambil salinan persis dari templat yang digunakan untuk penyebaran. Anda menentukan penyebaran dari riwayat penyebaran.

Bergantung pada opsi yang Anda pilih, templat yang diekspor memiliki kualitas yang berbeda.

Dari grup sumber daya atau satu sumber daya Dari riwayat
Templat dihasilkan secara otomatis. Anda mungkin ingin meningkatkan kode sebelum menyebarkannya. Templat adalah salinan yang tepat dari yang dibuat oleh pembuat templat. Ini siap untuk disebarkan ulang tanpa perubahan.
Templat adalah rekam jepret dari kondisi sumber daya saat ini. Mencakup setiap perubahan manual yang Anda buat setelah penyebaran. Templat hanya memperlihatkan kondisi sumber daya pada saat penyebaran. Perubahan manual apa pun yang Anda buat setelah penyebaran tidak disertakan.
Anda bisa memilih sumber daya mana dari grup sumber daya untuk diekspor. Semua sumber daya pada penyebaran tertentu turut disertakan. Anda tidak dapat memilih sub-set sumber daya tersebut atau menambahkan sumber daya yang ditambahkan pada waktu yang berbeda.
Templat mencakup semua properti untuk sumber daya, termasuk beberapa properti yang biasanya tidak anda atur selama penyebaran. Anda mungkin ingin menghapus atau membersihkan properti ini sebelum menggunakan kembali templat tersebut. Templat hanya mencakup properti yang diperlukan untuk penyebaran. Templat lebih jarang dan lebih mudah dibaca.
Templat mungkin tidak menyertakan semua parameter yang Anda butuhkan untuk penggunaan ulang. Sebagian besar nilai properti dikodekan secara permanen dalam templat. Untuk menggunakan lagi templat di lingkungan lain, Anda perlu menambahkan parameter yang meningkatkan kemampuan untuk mengonfigurasi sumber daya. Anda dapat tidak memilih Sertakan parameter sehingga Anda dapat menulis parameter Anda sendiri. Templat mencakup parameter yang membuatnya mudah untuk digunakan lagi di lingkungan yang berbeda.

Ekspor templat dari grup sumber daya atau sumber daya tunggal, saat:

  • Anda perlu mengambil perubahan pada sumber daya yang dibuat setelah penyebaran asli.
  • Anda ingin memilih sumber daya mana yang diekspor.
  • Sumber daya tidak dibuat dengan templat.

Ekspor templat dari riwayat, saat:

  • Anda menginginkan templat yang mudah digunakan kembali.
  • Anda tidak perlu menyertakan perubahan yang Anda buat setelah penyebaran asli.

Batasan

Ekspor tidak dijamin berhasil. Ekspor bukanlah cara yang dapat diandalkan untuk mengubah sumber daya yang sudah ada sebelumnya menjadi templat yang dapat digunakan dalam produksi. Lebih baik membuat sumber daya dari awal menggunakan file Bicep tulisan tangan, templat ARM , atau terraform.

Saat mengekspor dari satu atau sekelompok sumber daya, templat yang diekspor dihasilkan dari skema yang diterbitkan untuk setiap jenis sumber daya. Terkadang, skema tidak memiliki versi terbaru untuk jenis sumber daya. Periksa templat yang diekspor untuk memastikan templat tersebut menyertakan properti yang Anda butuhkan. Jika perlu, edit templat yang diekspor untuk menggunakan versi API yang Anda butuhkan.

Beberapa parameter kata sandi mungkin hilang dari template yang diekspor. Anda perlu memeriksa referensi kerangka, dan menambahkan parameter ini secara manual sebelum Anda dapat menggunakan kerangka untuk menerapkan sumber daya.

Fitur templat ekspor tidak mendukung ekspor sumber daya Azure Data Factory. Untuk mempelajari tentang bagaimana Anda bisa mengekspor sumber daya Azure Data Factory, lihat Menyalin atau mengkloning pabrik data di Azure Data Factory.

Untuk mengekspor sumber daya yang dibuat melalui model penyebaran klasik, Anda harus memigrasikannya ke model penyebaran Resource Manager.

Jika Anda mendapatkan peringatan saat mengekspor templat yang menunjukkan tipe sumber daya yang tidak diekspor, Anda masih dapat menemukan properti untuk sumber daya tersebut. Untuk properti sumber daya, lihat referensi templat. Anda juga dapat melihat Azure REST APIuntuk jenis resource.

Ada batas 200 sumber daya dalam grup sumber daya yang akan anda ekspor menjadi templat. Jika Anda mencoba mengekspor grup sumber daya yang memiliki lebih dari 200 sumber daya, pesan kesalahanExport template is not supported for resource groups more than 200 resources akan ditampilkan.

Mengekspor templat dari grup sumber daya

Setelah berhasil menyiapkan grup sumber daya, Anda mungkin ingin menampilkan templat Resource Manager untuk grup sumber daya.

Untuk mengekspor semua sumber daya dalam grup sumber daya, gunakan ekspor grup az dan berikan nama grup sumber daya.

az group export --name demoGroup

Skrip menampilkan template pada konsol. Untuk menyimpan ke file, gunakan:

az group export --name demoGroup > exportedtemplate.json

Alih-alih mengekspor semua sumber daya dalam grup sumber daya, Anda dapat memilih sumber daya mana yang akan diekspor.

Untuk mengekspor satu sumber daya, berikan ID sumber daya tersebut.

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

Untuk mengekspor lebih dari satu sumber daya, berikan ID sumber daya yang dipisahkan spasi. Untuk mengekspor semua sumber daya, jangan tentukan argumen atau suplai ini "*".

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

Saat mengekspor templat, Anda dapat menentukan apakah parameter digunakan dalam templat. Secara default, parameter untuk nama sumber daya disertakan tetapi tidak memiliki nilai default.

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

Jika Anda menggunakan parameter --skip-resource-name-params saat mengekspor templat, parameter untuk nama sumber daya tidak disertakan dalam templat. Sebagai gantinya, nama sumber daya diatur langsung pada sumber daya ke nilainya saat ini. Anda tidak dapat menyesuaikan namanya selama penyebaran.

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

Jika Anda menggunakan parameter --include-parameter-default-value saat mengekspor templat, parameter templat menyertakan nilai default yang diatur ke nilai saat ini. Anda dapat menggunakan baik itu nilai default tersebut atau menimpa nilai default dengan memberikan nilai yang berbeda.

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

Menyimpan templat dari riwayat penyebaran

Anda dapat menyimpan templat dari penyebaran dalam riwayat penyebaran. Templat yang Anda dapatkan persis sama dengan templat yang digunakan untuk penyebaran.

Untuk mendapatkan templat dari penyebaran grup sumber daya, gunakan perintah ekspor grup penyebaran az. Anda menentukan nama penyebaran untuk diambil. Untuk bantuan mendapatkan nama penyebaran, lihat Melihat riwayat penyebaran dengan Azure Resource Manager.

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

Templat ditampilkan di konsol. Untuk menyimpan file, gunakan:

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

Untuk mendapatkan templat yang digunakan di level lain, gunakan:

Langkah berikutnya