Membuat file parameter Azure Resource Manager

Daripada meneruskan parameter sebagai nilai sebaris dalam skrip Anda, Anda mungkin merasa lebih mudah untuk menggunakan file JSON yang berisi nilai parameter. Artikel ini memperlihatkan cara membuat file parameter yang Anda gunakan dengan templat JSON.

Tip

Kami merekomendasikan Bicep karena menawarkan kemampuan yang sama dengan templat ARM dan sintaksnya lebih mudah digunakan. Untuk mempelajari selengkapnya, 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 Gunakan Azure Key Vault untuk meneruskan nilai parameter yang aman selama penyebaran.

File parameter berikut menyertakan 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 lengkap tentang penggunaan brankas kunci, lihat Menggunakan Azure Key Vault untuk meneruskan nilai parameter yang aman selama penyebaran.

Menentukan nilai parameter

Untuk menentukan cara menetapkan nama dan nilai parameter, buka templat JSON dan tinjau bagian parameters. 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 diperhatikan adalah nama setiap parameter. Nama parameter dalam file parameter Anda harus sesuai dengan nama parameter di 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 templat 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 itu tidak diperlukan. Nilai file parameter akan 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 maksimal 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"
    }
  }
}

Catatan

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 templat, Anda akan menerima pemberitahuan kesalahan.

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 parameter TemplateParameterFile.

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 Microsoft Azure PowerShell.

Catatan

Tidak dimungkinkan untuk menggunakan file parameter dengan bilah templat kustom di portal.

Tip

Jika Anda menggunakan Proyek Azure Resource Group di Visual Studio, pastikan Build Action file parameternya diatur ke Konten.

Nama file

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

Untuk menyebarkan ke lingkungan yang berbeda, buat 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 pada file parameter lokal dan sebaris, nilai sebaris lebih 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. Sediakan semua nilai parameter dalam file eksternal.

Konflik nama parameter

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

Langkah berikutnya