Sebarkan spesifikasi templat

Selesai

Setelah membuat dan menerbitkan spesifikasi templat, Anda dapat menyebarkannya. Di unit ini, Anda mempelajari cara menyebarkan spesifikasi templat.

Membuat penyebaran dengan menggunakan spesifikasi templat

Untuk menyebarkan spesifikasi templat ke grup sumber daya, Anda menggunakan cmdlet yang sama New-AzResourceGroupDeployment dengan yang Anda kenal. Alih-alih menentukan file templat, Anda menentukan ID sumber daya spesifikasi templat, seperti yang diperlihatkan dalam contoh ini:

New-AzResourceGroupDeployment `
  -TemplateSpecId '/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS'

Meskipun spesifikasi templat harus dibuat dalam grup sumber daya, Anda dapat menyebarkannya ke langganan, grup manajemen, atau bahkan penyewa dengan menggunakan cmdlet ini:

Untuk melakukan penyebaran pada cakupan ini: Gunakan cmdlet PowerShell ini:
Grup sumber daya New-AzResourceGroupDeployment
Langganan New-AzSubscriptionDeployment
Grup manajemen New-AzManagementGroupDeployment
Penyewa New-AzTenantDeployment

Masing-masing cmdlet ini menerima -TemplateSpecId parameter untuk memulai penyebaran spesifikasi templat di salah satu cakupan ini.

Untuk menyebarkan spesifikasi templat ke grup sumber daya, Anda menggunakan perintah yang sama az deployment group create dengan yang Anda kenal. Alih-alih menentukan file templat, Anda menentukan ID sumber daya spesifikasi templat, seperti yang diperlihatkan dalam contoh ini:

az deployment group create \
  --template-spec "/subscriptions/f0750bbe-ea75-4ae5-b24d-a92ca601da2c/resourceGroups/SharedTemplates/providers/Microsoft.Resources/templateSpecs/StorageWithoutSAS"

Meskipun spesifikasi templat harus dibuat dalam grup sumber daya, Anda dapat menyebarkannya ke langganan, grup manajemen, atau bahkan penyewa dengan menggunakan perintah ini:

Untuk melakukan penyebaran pada cakupan ini: Jalankan perintah Azure CLI ini:
Grup sumber daya az deployment group create
Langganan az deployment sub create
Grup manajemen az deployment mg create
Penyewa az deployment tenant create

Masing-masing perintah ini menerima --template-spec argumen untuk memulai penyebaran spesifikasi templat di salah satu lingkup ini.

Menggunakan spesifikasi templat sebagai penyebaran tertaut

Untuk menggunakan spesifikasi templat dari dalam templat Azure Resource Manager (templat ARM) lain, Anda membuat penyebaran yang menggunakan spesifikasi templat tersebut. Jenis penyebaran ini disebut penyebaran tertaut karena Anda menautkan ke templat penyebaran yang ditentukan secara eksternal.

Di Azure, penyebaran adalah sumber daya yang memiliki tipe Microsoft.Resources/deployments sumber daya. Saat Anda menyebarkan templat ARM, Anda membuat sumber daya penyebaran. Konsep yang sama berlaku saat Anda menyebarkan spesifikasi templat, seperti ini:

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2020-10-01",
  "name": "createStorage",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      "id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
    }
  }
}

Saat Anda memiliki parameter untuk menyediakan penyebaran spesifikasi templat, Anda menggunakan parameters properti:

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2020-10-01",
  "name": "createStorage",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      "id": "[resourceId('Microsoft.Resources/templateSpecs/versions', variables('templateSpecName'), variables('templateSpecVersion'))]"
    },
    "parameters": {
      "storageAccountName": {
        "value": "[parameters('storageAccountName')]"
      }
    }
  }
}

Gunakan spesifikasi template sebagai modul Bicep

Anda dapat menggunakan spesifikasi template sebagai modul dalam file Bicep:

module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
  name: 'storageAccountTemplateSpec'
}

Perhatikan bahwa jalur modul menggunakan format khusus:

Diagram showing the components of the template spec path.

Ada tiga komponen ke jalur modul, dipisahkan oleh karakter titik dua (:):

  • Skema: Bicep mendukung beberapa jenis modul, yang disebut skema. Saat Anda menggunakan spesifikasi template sebagai modul, Anda menggunakan ts sebagai skema.
  • ID langganan, nama grup sumber daya, dan nama spesifikasi templat: Nilai-nilai ini harus menentukan lokasi sumber daya spesifikasi templat yang sebelumnya Anda terbitkan. Anda menggunakan garis miring ke depan (/) untuk memisahkan ID langganan, nama grup sumber daya, dan nama spesifikasi template. Bagian jalur modul ini bukan ID sumber daya lengkap dari spesifikasi templat - hanya beberapa komponen ID sumber daya.
  • Versi: Versi spesifikasi template harus disertakan.

Catatan

Anda tidak dapat menggunakan variabel, parameter, atau interpolasi string saat Anda menentukan jalur ke modul. Jalur spesifikasi template lengkap harus disimpan ke dalam file Bicep Anda.

Jika Anda memiliki parameter untuk diberikan ke spesifikasi template, Anda menggunakan properti params:

module storageAccountTemplateSpec 'ts:f0750bbe-ea75-4ae5-b24d-a92ca601da2c/sharedTemplates/StorageWithoutSAS:1.0' = {
  name: 'storageAccountTemplateSpec'
  params: {
    storageAccountName: storageAccountName
  }
}

File spesifikasi template diunduh dan disalin (ditranspilasikan) ke dalam template ARM JSON saat file Bicep dibuat. Biasanya operasi ini terjadi ketika Anda menyebarkan file Bicep, tetapi Anda juga dapat menggunakan alat Bicep untuk menerjemahkan secara eksplisit dengan menjalankan bicep build perintah.