Cloud & IT Cert Prep · Pelajaran

Menulis Templat ARM

Bina templat ARM berparameter dalam JSON untuk menggunakan akaun storan dan VM, serta gunakan fungsi templat dan pemboleh ubah supaya templat boleh digunakan semula.

Pelajaran 2 daripada 413 langkah

Menulis Templat ARM ialah pelajaran Cloud & IT Cert Prep percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Cloud & IT Cert Prep, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Mengapa Menggunakan Templat ARM?

Templat ARM membolehkan anda mentakrifkan infrastruktur Azure sebagai kod dalam format JSON. Ini membolehkan penggunaan yang boleh diulang dan konsisten, serta dikawal versinya bersama-sama kod aplikasi anda. Templat bersifat idempoten — menjalankan templat yang sama beberapa kali menghasilkan keputusan yang sama, menjadikannya selamat untuk digunakan semula selepas perubahan.

Rangka Asas dan Skema Templat

Setiap templat ARM bermula dengan sifat $schema yang menunjuk kepada URL skema templat, diikuti rentetan contentVersion. Skema memberitahu portal Azure dan sambungan editor cara mengesahkan serta menyediakan IntelliSense untuk templat anda. Lima bahagian utama yang berikutnya ialah parameters, variables, functions, resources dan outputs.

{
  '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#',
  'contentVersion': '1.0.0.0',
  'parameters': {},
  'variables': {},
  'functions': [],
  'resources': [],
  'outputs': {}
}

Mentakrifkan Parameter

Parameter menjadikan templat boleh digunakan semula dengan menerima input pada masa penggunaan. Setiap parameter mempunyai type (string, int, bool, object, array, secureString), defaultValue pilihan dan allowedValues pilihan untuk pengesahan. Menggunakan secureString untuk kata laluan memastikan nilai itu tidak pernah direkodkan dalam sejarah penggunaan.

"parameters": {
  "storageAccountName": {
    "type": "string",
    "minLength": 3,
    "maxLength": 24,
    "metadata": { "description": "Globally unique storage account name" }
  },
  "sku": {
    "type": "string",
    "defaultValue": "Standard_LRS",
    "allowedValues": ["Standard_LRS", "Standard_GRS", "Premium_LRS"]
  }
}

Menggunakan Pemboleh Ubah untuk Nilai yang Dikira

Pemboleh ubah menyimpan nilai yang dikira daripada parameter atau fungsi templat, sekali gus mengurangkan pengulangan dan menjadikan templat lebih mudah diselenggara. Pemboleh ubah dinilai sekali dan dirujuk di seluruh bahagian sumber menggunakan ungkapan [variables('name')]. Corak lazim ialah membina nama sumber dengan menggabungkan parameter dengan akhiran unik.

"variables": {
  "uniqueStorageName": "[concat(parameters('storageAccountName'), uniqueString(resourceGroup().id))]",
  "location": "[resourceGroup().location]"
}

Mentakrifkan Sumber

Tatasusunan resources ialah bahagian teras templat ARM. Setiap elemen menerangkan satu sumber Azure dengan medan wajib: type, apiVersion, name dan location. apiVersion menetapkan versi skema pembekal sumber — sentiasa gunakan versi stabil yang terkini untuk mengakses ciri terbaharu dan mengelakkan sifat yang tidak lagi disokong.

"resources": [
  {
    "type": "Microsoft.Storage/storageAccounts",
    "apiVersion": "2023-01-01",
    "name": "[variables('uniqueStorageName')]",
    "location": "[variables('location')]",
    "sku": { "name": "[parameters('sku')]" },
    "kind": "StorageV2",
    "properties": {
      "supportsHttpsTrafficOnly": true,
      "minimumTlsVersion": "TLS1_2"
    }
  }
]

Fungsi dan Ungkapan Templat

Ungkapan templat ARM dibungkus dalam kurungan siku [...] dan menyokong fungsi terbina dalam untuk rentetan, tatasusunan, objek dan ID sumber. Fungsi lazim termasuk concat(), resourceGroup(), resourceId(), uniqueString() dan parameters(). Fungsi ini dinilai pada bahagian pelayan oleh ARM pada masa penggunaan, bukan secara setempat.

// Reference a resource ID inside a template
"subnetId": "[resourceId('Microsoft.Network/virtualNetworks/subnets', 'myVNet', 'mySubnet')]"

// Build a unique, deterministic name
"name": "[concat('storage', uniqueString(resourceGroup().id))]"

// Conditionally include a resource
"condition": "[equals(parameters('deployStorage'), true)]"

Output: Mengembalikan Nilai

Bahagian outputs mentakrifkan nilai yang dikembalikan oleh ARM selepas penggunaan berjaya. Output penting untuk merangkaikan templat — anda menggunakan templat rangkaian dan mengeluarkan ID sumber subnet, kemudian menghantarnya sebagai parameter kepada templat VM. Output boleh merujuk kepada sebarang ungkapan, termasuk sifat sumber daripada penggunaan tersebut.

"outputs": {
  "storageAccountName": {
    "type": "string",
    "value": "[variables('uniqueStorageName')]"
  },
  "blobEndpoint": {
    "type": "string",
    "value": "[reference(variables('uniqueStorageName')).primaryEndpoints.blob]"
  }
}

Templat Terpaut dan Bersarang

Untuk seni bina yang kompleks, ARM menyokong templat terpaut (merujuk kepada URL templat luaran) dan templat bersarang (membenamkan templat dalam tatasusunan sumber menggunakan jenis Microsoft.Resources/deployments). Ini membolehkan anda memecahkan penggunaan infrastruktur yang besar kepada bahagian modular dan boleh digunakan semula, sambil mengekalkan satu templat penyelarasan sebagai titik masuk.

{
  "type": "Microsoft.Resources/deployments",
  "apiVersion": "2021-04-01",
  "name": "networkDeploy",
  "properties": {
    "mode": "Incremental",
    "templateLink": {
      "uri": "https://raw.githubusercontent.com/contoso/templates/main/network.json",
      "contentVersion": "1.0.0.0"
    },
    "parameters": {
      "vnetName": { "value": "[parameters('vnetName')]" }
    }
  }
}

Fail Parameter

Daripada menghantar parameter pada baris perintah, simpannya dalam fail parameter yang berasingan — fail JSON dengan objek parameters yang mengandungi pasangan nama-nilai. Fail parameter boleh dikhususkan mengikut persekitaran (contohnya, dev.parameters.json, prod.parameters.json) dan dihantar ke kawalan sumber, manakala nilai sensitif disimpan dalam rujukan Azure Key Vault dan bukannya teks biasa.

// dev.parameters.json
{
  '$schema': 'https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#',
  'contentVersion': '1.0.0.0',
  'parameters': {
    'storageAccountName': { 'value': 'devstorageacct' },
    'sku': { 'value': 'Standard_LRS' }
  }
}

// Deploy with parameters file
// az deployment group create -g MyRG -f azuredeploy.json -p dev.parameters.json

Menggunakan dan Mengesahkan Templat

Gunakan perintah Azure CLI az deployment group create untuk menggunakan templat pada kumpulan sumber. Sebelum menggunakan templat pada produksi, jalankan az deployment group validate untuk mengesan ralat skema dan logik, serta az deployment group what-if untuk melihat pratonton perubahan sumber. Ketiga-tiga perintah ini membentuk saluran penggunaan yang selamat: sahkan, pratonton, gunakan.

# Step 1: Validate the template syntax
az deployment group validate \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --parameters @dev.parameters.json

# Step 2: Preview changes
az deployment group what-if \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --parameters @dev.parameters.json

# Step 3: Deploy
az deployment group create \
  --resource-group MyRG \
  --template-file azuredeploy.json \
  --parameters @dev.parameters.json

Amalan Terbaik Templat ARM

Ikuti amalan terbaik templat ARM berikut: gunakan parameter untuk nilai khusus persekitaran, gunakan pemboleh ubah untuk mengelakkan pengulangan, tetapkan versi API kepada versi stabil, gunakan secureString untuk kata laluan, tambahkan perihalan metadata pada parameter dan asingkan templat besar kepada modul terpaut. Simpan templat dalam repositori Git dan gunakannya melalui saluran CI/CD untuk kebolehkesanan audit.

Semakan Pantas

Uji pemahaman anda tentang konsep Microsoft Azure Fundamentals (AZ-900) daripada pelajaran ini.

Ulang Kaji Pelajaran

Dalam pelajaran ini, anda telah mempelajari bahawa templat ARM ialah dokumen JSON yang mentakrifkan infrastruktur Azure secara Declarative, parameter dan pemboleh ubah menjadikan templat boleh digunakan semula dan diselenggara, serta aliran kerja validate, what-if, deploy membolehkan penggunaan yang selamat dan boleh diulang. Seterusnya, kita akan meneroka Bicep, iaitu lapisan abstraksi moden di atas JSON ARM.

Percuma untuk bermula

Pelajari Cloud & IT Cert Prep dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
150
Pelajaran
600

Soalan Lazim

Adakah pelajaran “Menulis Templat ARM” percuma?

Ya — teks penuh “Menulis Templat ARM” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Cloud & IT Cert Prep, tingkat taraf kepada CoddyKit PRO. Kursus Cloud & IT Cert Prep merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Menulis Templat ARM”?

Bina templat ARM berparameter dalam JSON untuk menggunakan akaun storan dan VM, serta gunakan fungsi templat dan pemboleh ubah supaya templat boleh digunakan semula. Anda berlatih Cloud & IT Cert Prep menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Cloud & IT Cert Prep?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Cloud & IT Cert Prep di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Menulis Templat ARM” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Cara Azure Resource Manager Berfungsi
  2. Menulis Templat ARM
  3. Bicep: IaC Azure Moden
  4. Terraform pada Azure
← Kembali ke Cloud & IT Cert Prep