Templat modularisasi

Selesai

Saat menggunakan templat Azure Resource Manager, yang terbaik adalah memodulasinya dengan memecahnya menjadi komponen individual.

Metodologi utama yang digunakan adalah dengan menggunakan template tertaut.

Ini memungkinkan Anda untuk memecah solusi menjadi komponen yang ditargetkan dan menggunakan kembali berbagai elemen tersebut di berbagai penyebaran.

Templat tertaut

Tambahkan sumber daya penyebaran ke templat utama Anda untuk menautkan satu templat ke templat lainnya.

"resources": [
  {
      "apiVersion": "2017-05-10",
      "name": "linkedTemplate",
      "type": "Microsoft.Resources/deployments",
      "properties": {
          "mode": "Incremental",
          <link-to-external-template>
      }
  }
]


Templat bertumpuk

Anda juga dapat menyusun templat di dalam templat utama, menggunakan properti templat, dan menentukan sintaksis templat.

Hal tersebut agak membantu modularisasi, tetapi membagi berbagai komponen dapat menghasilkan file utama yang cukup besar, karena semua elemen ada di dalam file tunggal tersebut.

"resources": [
  {
    "apiVersion": "2017-05-10",
    "name": "nestedTemplate",
    "type": "Microsoft.Resources/deployments",
    "properties": {
      "mode": "Incremental",
      "template": {
        "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
        "contentVersion": "1.0.0.0",
        "resources": [
          {
            "type": "Microsoft.Storage/storageAccounts",
            "name": "[variables('storageName')]",
            "apiVersion": "2015-06-15",
            "location": "West US",
            "properties": {
              "accountType": "Standard_LRS"
            }
          }
        ]
      }
    }
  }
]

Catatan

Anda tidak dapat menggunakan parameter atau variabel yang ditentukan dalam templat bersarang itu sendiri untuk templat bersarang. Anda hanya dapat menggunakan parameter dan variabel dari templat utama.

Properti yang Anda berikan untuk sumber daya penyebaran akan bervariasi berdasarkan penautan ke templat eksternal atau menyarangkan templat sebaris di dalam templat utama.

Mode penyebaran

Saat menyebarkan sumber daya menggunakan templat, Anda memiliki tiga opsi:

  • validasi. Opsi ini mengompilasikan templat, memvalidasi penyebaran, memastikan templat berfungsi (misalnya, tidak ada dependensi melingkar), dan sintaksis yang benar.
  • mode bertambah bertahap (default). Opsi ini hanya menyebarkan apa pun yang ditentukan dalam templat. Opsi tersebut tidak menghapus atau mengubah sumber daya apa pun yang tidak ditentukan dalam templat. Misalnya, jika Anda telah menyebarkan VM melalui templat lalu mengganti nama VM di templat, VM pertama yang disebarkan akan tetap ada setelah templat dijalankan kembali. Ini adalah mode default.
  • mode lengkap: Resource Manager menghapus sumber daya yang ada di grup sumber daya tetapi tidak ditentukan di template. Misalnya, hanya sumber daya yang ditentukan dalam templat yang akan ada di grup sumber daya setelah templat disebarkan. Sebagai praktik terbaik, gunakan mode ini untuk lingkungan produksi untuk mencoba mencapai idempotensi dalam templat penyebaran Anda.

Saat menyebarkan dengan PowerShell, untuk mengatur mode penyebaran, gunakan parameter Mode, sesuai dengan contoh templat bersarang sebelumnya dalam topik ini.

Catatan

Sebagai praktik terbaik, gunakan satu grup sumber daya per penyebaran.

Catatan

Anda hanya dapat menggunakan mode penyebaran incremental untuk templat tertaut dan bersarang.

Templat eksternal dan parameter eksternal

Untuk menautkan ke templat eksternal dan file parameter, gunakan templateLink dan parametersLink.

Saat menautkan ke templat, pastikan layanan Resource Manager dapat mengaksesnya.

Misalnya, Anda tidak dapat menentukan file lokal atau file yang hanya tersedia di jaringan lokal Anda.

Anda hanya dapat memberikan nilai Pengidentifikasi Sumber Daya Seragam (URI) yang menyertakan HTTP atau HTTPS.

Salah satu opsi adalah menempatkan templat tertaut Anda di akun penyimpanan dan menggunakan URI untuk item tersebut.

Anda juga dapat memberikan parameter sebaris. Namun, Anda tidak dapat menggunakan parameter sebaris dan tautan ke file parameter.

Contoh berikut menggunakan parameter templateLink:

  "resources": [
    {
      "name": "linkedTemplate",
      "type": "Microsoft.Resources/deployments",
      "apiVersion": "2018-05-01",
      "properties": {
          "mode": "Incremental",
          "templateLink": {
              "uri":"https://linkedtemplateek1store.blob.core.windows.net/linkedtemplates/linkedStorageAccount.json?sv=2018-03-28&sr=b&sig=dO9p7XnbhGq56BO%2BSW3o9tX7E2WUdIk%2BpF1MTK2eFfs%3D&se=2018-12-31T14%3A32%3A29Z&sp=r"
          },
          "parameters": {
              "storageAccountName":{"value": "[variables('storageAccountName')]"},
              "location":{"value": "[parameters('location')]"}
          }
      }
    },


Mengamankan templat eksternal

Meskipun templat tertaut harus tersedia secara eksternal, templat tersebut tidak perlu tersedia untuk umum.

Sebagai gantinya, Anda dapat menambahkan templat Anda ke akun penyimpanan pribadi yang hanya dapat diakses oleh pemilik akun penyimpanan, membuat token tanda tangan akses bersama (SAS) untuk mengaktifkan akses selama penyebaran.

Anda menambahkan token SAS ke URI untuk templat tertaut.

Meskipun token diteruskan sebagai string aman, URI templat tertaut, termasuk token SAS, dicatat dalam operasi penyebaran.

Untuk membatasi eksposur, Anda juga dapat mengatur kedaluwarsa untuk token.