Jenis data dalam templat ARM

Artikel ini menguraikan jenis data yang didukung dalam templat Azure Resource Manager (templat ARM).

Jenis yang didukung

Dalam templat ARM, Anda dapat menggunakan jenis data ini:

  • array
  • bool
  • int
  • object
  • secureObject
  • securestring
  • string

Larik

Array dimulai dengan tanda kurung siku kiri ([) dan diakhiri dengan tanda kurung siku kanan (]). Array dapat dinyatakan dalam satu baris atau beberapa baris. Setiap elemen dipisahkan dengan koma.

"parameters": {
  "exampleArray": {
    "type": "array",
    "defaultValue": [
      1,
      2,
      3
    ]
  }
},

"outputs": {
  "arrayOutput": {
    "type": "array",
    "value": "[variables('exampleArray')]"
  },
  "firstExampleArrayElement": {
    "type": "int",
    "value": "[parameters('exampleArray')[0]]"
  }
}

Elemen array bisa berupa jenis yang sama atau jenis yang berbeda.

"variables": {
  "mixedArray": [
    "[resourceGroup().name]",
    1,
    true,
    "example string"
  ]
}

"outputs": {
  "arrayOutput": {
    "type": "array",
    "value": "[variables('mixedArray')]"
  },
  "firstMixedArrayElement": {
    "type": "string",
    "value": "[variables('mixedArray')[0]]"
  }
}

Boolean

Saat menentukan nilai boolean, gunakan true atau false. Jangan mengapit nilai dengan tanda petik.

"parameters": {
  "exampleBool": {
    "type": "bool",
    "defaultValue": true
  }
},

Bilangan bulat

Saat menentukan nilai bilangan bulat, jangan gunakan tanda kutip.

"parameters": {
  "exampleInt": {
    "type": "int",
    "defaultValue": 1
  }
}

Untuk bilangan bulat yang diteruskan sebagai parameter sebaris, rentang nilai mungkin dibatasi oleh SDK atau alat baris perintah yang Anda gunakan untuk penyebaran. Misalnya, saat menggunakan PowerShell untuk menyebarkan templat, jenis bilangan bulat dapat berkisar dari -2147483648 hingga 2147483647. Untuk menghindari batasan ini, tentukan nilai bilangan bulat besar dalam file parameter. Jenis sumber daya menerapkan batasannya sendiri untuk properti bilangan bulat.

Objek

Objek dimulai dengan kurung kurawal ({) dan diakhiri dengan kurung kurawal (}). Setiap properti dalam sebuah objek terdiri dari key dan value. key dan value diapit oleh tanda kutip ganda dan dipisahkan oleh titik dua (:). Setiap properti dipisahkan dengan koma.

"parameters": {
  "exampleObject": {
    "type": "object",
    "defaultValue": {
      "name": "test name",
      "id": "123-abc",
      "isCurrent": true,
      "tier": 1
    }
  }
}

Anda bisa mendapatkan properti dari objek dengan notasi titik.

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "exampleObject": {
            "type": "object",
            "defaultValue": {
                "name": "test name",
                "id": "123-abc",
                "isCurrent": true,
                "tier": 1
            }
        }
    },
    "resources": [
    ],
    "outputs": {
        "nameFromObject": {
            "type": "string",
            "value": "[parameters('exampleObject').name]"
        }
    }
}

Di JSON, objek adalah kumpulan pasangan kunci/nilai nol atau lebih yang tidak diurutkan. Pengurutan dapat berbeda bergantung pada implementasinya. Misalnya, fungsi item() Bicep mengurutkan objek dalam urutan abjad. Di tempat lain, pengurutan asli dapat dipertahankan. Karena non-determinisme ini, hindari membuat asumsi tentang pengurutan kunci objek saat menulis kode, yang berinteraksi dengan parameter penyebaran &output.

String

String ditandai dengan tanda kutip ganda.

"parameters": {
  "exampleString": {
    "type": "string",
    "defaultValue": "test value"
  }
},

String dan objek yang aman

String aman menggunakan format yang sama dengan string, dan objek aman menggunakan format yang sama dengan objek. Saat Anda mengatur parameter ke string aman atau objek aman, nilai parameter tidak disimpan ke riwayat penyebaran dan tidak dicatat. Namun, jika Anda mengatur nilai aman tersebut ke properti yang tidak mengharapkan nilai aman, nilai tersebut tidak dilindungi. Misalnya, jika Anda mengatur string aman ke tag, nilai tersebut disimpan sebagai teks biasa. Gunakan string aman untuk kata sandi dan rahasia.

Contoh berikut menunjukkan dua parameter aman.

"parameters": {
  "password": {
    "type": "securestring"
  },
  "configValues": {
    "type": "secureObject"
  }
}

Catatan

Jangan gunakan string atau objek aman sebagai nilai output. Jika Anda menyertakan nilai aman sebagai nilai keluaran, nilai tersebut tidak ditampilkan dalam riwayat penyebaran dan tidak dapat diambil dari templat lain. Sebagai gantinya, simpan nilai aman dalam brankas kunci, dan teruskan sebagai parameter dari brankas kunci.

Langkah berikutnya

Untuk mempelajari tentang sintaks templat, lihat Memahami struktur dan sintaks templat ARM.