Resource Manager parametre dosyası oluşturma

Parametreleri betiğinizde satır içi değerler olarak geçirmek yerine parametre değerlerini içeren bir JSON dosyası kullanabilirsiniz. Bu makalede, JSON şablonuyla kullandığınız bir parametre dosyasının nasıl oluşturulacağı gösterilmektedir.

İpucu

ARM şablonlarıyla aynı özellikleri sunduğundan ve söz diziminin kullanımı daha kolay olduğundan Bicep'i öneririz. Daha fazla bilgi edinmek için bkz. parametre dosyaları.

Parametre dosyası

Parametre dosyası aşağıdaki biçimi kullanır:

{
  "$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>"
    }
  }
}

Parametre dosyasının parametre değerlerini düz metin olarak kaydettiğine dikkat etmek gerekir. Güvenlik nedeniyle, parolalar gibi hassas değerler için bu yaklaşım önerilmez. Hassas bir değere sahip bir parametre geçirmeniz gerekiyorsa, değeri bir anahtar kasasında tutun. Ardından parametre dosyanıza anahtar kasasına bir başvuru ekleyin. Dağıtım sırasında hassas değer güvenli bir şekilde alınır. Daha fazla bilgi için bkz. Dağıtım sırasında güvenli parametre değeri geçirmek için Azure Key Vault kullanma.

Aşağıdaki parametre dosyası bir düz metin değeri ve anahtar kasasında depolanan hassas bir değer içerir.

{
  "$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>"
      }
    }
  }
}

Anahtar kasasından değerleri kullanma hakkında daha fazla bilgi için bkz. Dağıtım sırasında güvenli parametre değeri geçirmek için Azure Key Vault kullanma.

Parametre değerlerini tanımlama

Parametre adlarının ve değerlerinin nasıl tanımlanacağına karar vermek için JSON şablonunuzu açın ve bölümünü gözden geçirin parameters . Aşağıdaki örnekte JSON şablonunun parametreleri gösterilmektedir.

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

Parametre dosyasında dikkate değer ilk ayrıntı her parametrenin adıdır. Parametre dosyanızdaki parametre adları, şablonunuzdaki parametre adlarla eşleşmelidir.

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

Parametre türüne dikkat edin. Parametre dosyanızdaki parametre türleri, şablonunuzla aynı türleri kullanmalıdır. Bu örnekte her iki parametre türü de dizedir.

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

Varsayılan değere sahip parametreler için şablonu denetleyin. Parametrenin varsayılan değeri varsa, parametre dosyasında bir değer sağlayabilirsiniz, ancak gerekli değildir. Parametre dosyası değeri, şablonun varsayılan değerini geçersiz kılar.

{
  "$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.
    }
  }
}

Şablonun izin verilen değerlerini ve uzunluk üst sınırı gibi kısıtlamaları denetleyin. Bu değerler, parametre için sağlayabileceğiniz değer aralığını belirtir. Bu örnekte, storagePrefix en fazla 11 karakter olabilir ve storageAccountType izin verilen bir değer belirtmelidir.

{
  "$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"
    }
  }
}

Not

Parametre dosyanız yalnızca şablonda tanımlanan parametrelerin değerlerini içerebilir. Parametre dosyanız şablonun parametreleriyle eşleşmeyen ek parametreler içeriyorsa bir hata alırsınız.

Parametre türü biçimleri

Aşağıdaki örnekte farklı parametre türlerinin biçimleri gösterilmektedir: dize, tamsayı, boole, dizi ve nesne.

{
  "$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"
      }
    }
  }
}

Parametre dosyasıyla şablon dağıtma

Azure CLI'dan ve parametre dosyası adını kullanarak @ yerel bir parametre dosyası geçirirsiniz. Örneğin, @storage.parameters.json.

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

Daha fazla bilgi için bkz . ARM şablonları ve Azure CLI ile kaynakları dağıtma.

Azure PowerShell parametresini TemplateParameterFile kullanarak yerel bir parametre dosyası geçirirsiniz.

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

Daha fazla bilgi için bkz. ARM şablonları ve Azure PowerShell ile kaynakları dağıtma.

Not

Portalda özel şablon dikey penceresiyle parametre dosyası kullanmak mümkün değildir.

İpucu

Visual Studio'da Azure Kaynak Grubu projesini kullanıyorsanız, parametre dosyasının Derleme Eylemi'ninİçerik olarak ayarlandığından emin olun.

Dosya adı

Parametre dosyasının genel adlandırma kuralı, şablon adına parametreleri eklemektir. Örneğin, şablonunuzun adı azuredeploy.json ise, parametre dosyanız azuredeploy.parameters.json olarak adlandırılır. Bu adlandırma kuralı, şablon ve parametreler arasındaki bağlantıyı görmenize yardımcı olur.

Farklı ortamlara dağıtmak için birden fazla parametre dosyası oluşturursunuz. Parametre dosyalarını adlandırdığınızda, bunların geliştirme ve üretim gibi kullanımlarını tanımlayın. Örneğin, kaynakları dağıtmak için azuredeploy.parameters-dev.json ve azuredeploy.parameters-prod.json kullanın.

Parametre önceliği

Aynı dağıtım işleminde satır içi parametreleri ve yerel parametre dosyasını kullanabilirsiniz. Örneğin, yerel parametre dosyasında bazı değerler belirtebilir ve dağıtım sırasında satır içi başka değerler ekleyebilirsiniz. Hem yerel parametre dosyasında hem de satır içi bir parametre için değerler sağlarsanız, satır içi değer öncelikli olur.

Dosyaya URI sağlayarak bir dış parametre dosyası kullanmak mümkündür. Dış parametre dosyası kullandığınızda, satır içi veya yerel bir dosyadan başka değerler geçiremezsiniz. Tüm satır içi parametreler yoksayılır. Dış dosyadaki tüm parametre değerlerini sağlayın.

Parametre adı çakışmaları

Şablonunuz PowerShell komutundaki parametrelerden biriyle aynı ada sahip bir parametre içeriyorsa, PowerShell şablonunuzdaki parametreyi sonekiyle FromTemplatebirlikte sunar. Örneğin, şablonunuzda adlı ResourceGroupName bir parametre New-AzResourceGroupDeployment cmdlet'indeki parametresiyle ResourceGroupName çakışır. için ResourceGroupNameFromTemplatebir değer sağlamanız istenir. Bu karışıklığı önlemek için dağıtım komutları için kullanılmayan parametre adlarını kullanın.

Sonraki adımlar