Aracılığıyla paylaş


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.

Tavsiye

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 edin. 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 referans 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, farkedecek 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, bir 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"
    }
  }
}

Uyarı

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ını 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 üzerinden TemplateParameterFile parametresini 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.

Uyarı

Portaldaki özel şablon bileşeni ile parametre dosyası kullanamazsınız.

Tavsiye

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

Dosya adı

Parametre dosyasının genel adlandırma kuralı, şablon adına parametreleri eklemektir. Örneğin, şablonunuz azuredeploy.jsonolarak adlandırılmışsa, parametre dosyanız azuredeploy.parameters.jsonolarak 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çine 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 önceliklidir.

Dosyaya URI sağlayarak bir dış parametre dosyası kullanmak mümkündür. Dış parametre dosyası kullandığınızda, diğer değerleri satır içinde veya yerel bir dosyadan 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 şablonunuzdan parametresini sonek FromTemplateile sunar. Örneğin, şablonunuzdaki ResourceGroupName adlı parametre, ResourceGroupName cmdlet'indeki parametresiyle çakışıyor. 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