Bagikan melalui


Membuat file parameter Resource Manager

Alih-alih meneruskan parameter sebagai nilai sebaris dalam skrip, Anda dapat menggunakan file JSON yang berisi nilai parameter. Artikel ini menunjukkan cara membuat file parameter yang Anda gunakan dengan templat JSON.

Petunjuk / Saran

Kami merekomendasikan Bicep karena menawarkan kemampuan yang sama dengan templat ARM dan sintaksnya lebih mudah digunakan. Untuk mempelajari lebih lanjut, lihat file parameter.

File parameter

File parameter menggunakan format berikut:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "<first-parameter-name>": {
      "value": "<first-value>"
    },
    "<second-parameter-name>": {
      "value": "<second-value>"
    }
  }
}

Perlu dicatat bahwa file parameter menyimpan nilai parameter sebagai teks biasa. Untuk alasan keamanan, pendekatan ini tidak disarankan untuk nilai sensitif seperti kata sandi. Jika Anda harus meneruskan parameter dengan nilai sensitif, pertahankan nilai dalam brankas kunci. Kemudian, dalam file parameter Anda, sertakan referensi ke brankas kunci. Selama penyebaran, nilai sensitif diambil dengan aman. Untuk informasi selengkapnya, lihat Menggunakan Azure Key Vault untuk meneruskan nilai parameter aman selama penyebaran.

File parameter berikut mencakup nilai teks biasa dan nilai sensitif yang disimpan dalam brankas kunci.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "<first-parameter-name>": {
      "value": "<first-value>"
    },
    "<second-parameter-name>": {
      "reference": {
        "keyVault": {
          "id": "<resource-id-key-vault>"
        },
        "secretName": "<secret-name>"
      }
    }
  }
}

Untuk informasi selengkapnya tentang menggunakan nilai dari brankas kunci, lihat Menggunakan Azure Key Vault untuk meneruskan nilai parameter aman selama penyebaran.

Menentukan nilai parameter

Untuk menentukan cara menentukan nama dan nilai parameter, buka templat JSON Anda dan tinjau parameters bagiannya. Contoh berikut menunjukkan parameter templat JSON.

"parameters": {
  "storagePrefix": {
    "type": "string",
    "maxLength": 11
  },
  "storageAccountType": {
    "type": "string",
    "defaultValue": "Standard_LRS",
    "allowedValues": [
    "Standard_LRS",
    "Standard_GRS",
    "Standard_ZRS",
    "Premium_LRS"
    ]
  }
}

Dalam file parameter, detail pertama yang perlu diperhatikan adalah nama setiap parameter. Nama parameter dalam file parameter Anda harus cocok dengan nama parameter dalam templat Anda.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
    },
    "storageAccountType": {
    }
  }
}

Perhatikan jenis parameter. Jenis parameter dalam file parameter Anda harus menggunakan jenis yang sama dengan template Anda. Dalam contoh ini, kedua jenis parameter adalah untai (karakter).

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "value": ""
    },
    "storageAccountType": {
      "value": ""
    }
  }
}

Periksa templat untuk parameter dengan nilai default. Jika parameter memiliki nilai default, Anda dapat memberikan nilai dalam file parameter tetapi tidak diperlukan. Nilai file parameter menggantikan nilai default templat.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "value": "" // This value must be provided.
    },
    "storageAccountType": {
      "value": "" // This value is optional. Template will use default value if not provided.
    }
  }
}

Periksa nilai templat yang diizinkan dan batasan apa pun seperti panjang maksimum. Nilai-nilai tersebut menentukan rentang nilai yang dapat Anda berikan untuk parameter. Dalam contoh ini, storagePrefix dapat memiliki maksimum 11 karakter dan storageAccountType harus menentukan nilai yang diizinkan.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storagePrefix": {
      "value": "storage"
    },
    "storageAccountType": {
      "value": "Standard_ZRS"
    }
  }
}

Nota

File parameter Anda hanya dapat berisi nilai untuk parameter yang ditentukan dalam templat. Jika file parameter Anda berisi parameter tambahan yang tidak cocok dengan parameter template, Anda akan menerima error.

Format jenis parameter

Contoh berikut menunjukkan format jenis parameter yang berbeda: untai (karakter), bilangan bulat, boolean, array, dan objek.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "exampleString": {
      "value": "test string"
    },
    "exampleInt": {
      "value": 4
    },
    "exampleBool": {
      "value": true
    },
    "exampleArray": {
      "value": [
        "value 1",
        "value 2"
      ]
    },
    "exampleObject": {
      "value": {
        "property1": "value1",
        "property2": "value2"
      }
    }
  }
}

Menyebarkan templat dengan file parameter

Dari Azure CLI, Anda meneruskan file parameter lokal menggunakan @ dan nama file parameter. Contohnya, @storage.parameters.json.

az deployment group create \
  --name ExampleDeployment \
  --resource-group ExampleGroup \
  --template-file storage.json \
  --parameters @storage.parameters.json

Untuk informasi selengkapnya, lihat Menyebarkan sumber daya dengan templat ARM dan Azure CLI.

Dari Azure PowerShell, Anda meneruskan file parameter lokal menggunakan TemplateParameterFile parameter.

New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
  -TemplateFile C:\MyTemplates\storage.json `
  -TemplateParameterFile C:\MyTemplates\storage.parameters.json

Untuk informasi selengkapnya, lihat Menyebarkan sumber daya dengan templat ARM dan Azure PowerShell.

Nota

Tidak mungkin menggunakan file parameter dengan bilah templat kustom di portal.

Petunjuk / Saran

Jika Anda menggunakan proyek Grup Sumber Daya Azure di Visual Studio, pastikan file parameter memiliki Tindakan Build yang diatur ke Konten.

Nama file

Konvensi penamaan umum untuk file parameter adalah menyertakan parameter dalam nama templat. Misalnya, jika templat Anda bernama azuredeploy.json, file parameter Anda bernama azuredeploy.parameters.json. Konvensi penamaan ini membantu Anda melihat hubungan antara templat dan parameter.

Untuk menyebarkan ke lingkungan yang berbeda, Anda membuat lebih dari satu file parameter. Saat Anda memberi nama file parameter, identifikasi penggunaannya seperti pengembangan dan produksi. Misalnya, gunakan azuredeploy.parameters-dev.json dan azuredeploy.parameters-prod.json untuk menyebarkan sumber daya.

Parameter diutamakan

Anda dapat menggunakan parameter sebaris dan file parameter lokal dalam operasi penyebaran yang sama. Misalnya, Anda dapat menentukan beberapa nilai dalam file parameter lokal dan menambahkan nilai lain sebaris selama penyebaran. Jika Anda memberikan nilai untuk parameter dalam file parameter lokal dan sebaris, nilai sebaris akan diutamakan.

Dimungkinkan untuk menggunakan file parameter eksternal, dengan memberikan URI ke file. Saat Anda menggunakan file parameter eksternal, Anda tidak dapat meneruskan nilai lain baik sebaris atau dari file lokal. Semua parameter sebaris diabaikan. Berikan semua nilai parameter dalam file eksternal.

Konflik pada nama parameter

Jika templat Anda menyertakan parameter dengan nama yang sama dengan salah satu parameter dalam perintah PowerShell, PowerShell menyajikan parameter dari templat Anda dengan postfix FromTemplate. Misalnya, parameter bernama dalam ResourceGroupName templat Anda bertentangan dengan ResourceGroupName parameter dalam cmdlet New-AzResourceGroupDeployment. Anda diminta memberikan nilai untuk ResourceGroupNameFromTemplate. Untuk menghindari kebingungan ini, gunakan nama parameter yang tidak digunakan untuk perintah penyebaran.

Langkah selanjutnya