ARM şablonlarındaki parametreler

Bu makalede, Azure Resource Manager şablonunuzda (ARM şablonunda) parametrelerin nasıl tanımlanacağı ve kullanılacağı açıklanmaktadır. Parametreler için farklı değerler sunarak, farklı ortamlar için bir şablonu yeniden kullanabilirsiniz.

Kaynak Yöneticisi, dağıtım işlemlerini başlatmadan önce parametre değerlerini çözer. Parametrenin şablonda kullanıldığı her yerde, Kaynak Yöneticisi çözümlenme değeriyle değiştirilir.

Her parametrenin veri türlerindenbirine ayarlanması gerekir.

En az bildirim

En azından, her parametre bir ad ve tür gerektirir.

Azure portal aracılığıyla bir şablon dağıttığınızda, Camel-cased parametre adları boşlukla ayrılmış adlara açıktır. Örneğin, aşağıdaki örnekteki DemoString tanıtım dizesi olarak gösterilmiştir. daha fazla bilgi için bkz. GitHub deposundan şablon dağıtmak ve ARM şablonları ve Azure portal kullanarak kaynak dağıtmakiçin dağıtım düğmesi kullanma.

"parameters": {
  "demoString": {
    "type": "string"
  },
  "demoInt": {
    "type": "int"
  },
  "demoBool": {
    "type": "bool"
  },
  "demoObject": {
    "type": "object"
  },
  "demoArray": {
    "type": "array"
  }
}

Güvenli parametreler

Dize veya nesne parametrelerini güvenli olarak işaretleyebilirsiniz. Güvenli bir parametrenin değeri dağıtım geçmişine kaydedilmez ve günlüğe kaydedilmez.

"parameters": {
  "demoPassword": {
    "type": "secureString"
  },
  "demoSecretObject": {
    "type": "secureObject"
  }
}

İzin verilen değerler

Bir parametre için izin verilen değerleri tanımlayabilirsiniz. Bir dizide izin verilen değerleri sağlarsınız. İzin verilen değerlerden biri olmayan bir parametre için bir değer geçirilirse, doğrulama sırasında dağıtım başarısız olur.

"parameters": {
  "demoEnum": {
    "type": "string",
    "allowedValues": [
      "one",
      "two"
    ]
  }
}

Varsayılan değer

Bir parametre için varsayılan bir değer belirtebilirsiniz. Dağıtım sırasında bir değer sağlanmamışsa varsayılan değer kullanılır.

"parameters": {
  "demoParam": {
    "type": "string",
    "defaultValue": "Contoso"
  }
}

Parametresi için diğer özelliklerle birlikte varsayılan bir değer belirtmek için aşağıdaki sözdizimini kullanın.

"parameters": {
  "demoParam": {
    "type": "string",
    "defaultValue": "Contoso",
    "allowedValues": [
      "Contoso",
      "Fabrikam"
    ]
  }
}

Varsayılan değer ile ifadeleri kullanabilirsiniz. Parameters bölümünde başvuru işlevini veya liste işlevlerinden herhangi birini kullanamazsınız. Bu işlevler, bir kaynağın çalışma zamanı durumunu alır ve parametreler çözümlendiğinde dağıtımdan önce yürütülemez.

Diğer parametre özellikleriyle ifadelere izin verilmez.

"parameters": {
  "location": {
    "type": "string",
    "defaultValue": "[resourceGroup().location]"
  }
}

Varsayılan bir değer oluşturmak için başka bir parametre değeri de kullanabilirsiniz. Aşağıdaki şablon, site adından bir konak planı adı oluşturur.

"parameters": {
  "siteName": {
    "type": "string",
    "defaultValue": "[concat('site', uniqueString(resourceGroup().id))]"
  },
  "hostingPlanName": {
    "type": "string",
    "defaultValue": "[concat(parameters('siteName'),'-plan')]"
  }
}

Uzunluk kısıtlamaları

Dize ve dizi parametreleri için minimum ve maksimum uzunlukları belirtebilirsiniz. Bir veya her iki kısıtlamayı da ayarlayabilirsiniz. Dizeler için uzunluk, karakter sayısını belirtir. Diziler için, Uzunluk dizideki öğelerin sayısını belirtir.

Aşağıdaki örnek iki parametre bildirir. Tek parametre 3-24 karakter uzunluğunda olması gereken depolama hesabı adına yöneliktir. Diğer parametre 1-5 öğeden olması gereken bir dizidir.

"parameters": {
  "storageAccountName": {
    "type": "string",
    "minLength": 3,
    "maxLength": 24
  },
  "appNames": {
    "type": "array",
    "minLength": 1,
    "maxLength": 5
  }
}

Tamsayı kısıtlamaları

Tamsayı parametreleri için en düşük ve en yüksek değerleri ayarlayabilirsiniz. Bir veya her iki kısıtlamayı da ayarlayabilirsiniz.

"parameters": {
  "month": {
    "type": "int",
    "minValue": 1,
    "maxValue": 12
  }
}

Description

Şablonunuzun kullanıcılarının sağlanacak değeri anlamasına yardımcı olması için parametreye bir açıklama ekleyebilirsiniz. Şablonu Portal üzerinden dağıttığınızda, açıklamada sağladığınız metin, bu parametre için bir ipucu olarak otomatik olarak kullanılır. Yalnızca metin, parametre adından çıkarsandan daha fazla bilgi sağlıyorsa açıklama ekleyin.

"parameters": {
  "virtualMachineSize": {
    "type": "string",
    "metadata": {
      "description": "Must be at least Standard_A3 to support 2 NICs."
    },
    "defaultValue": "Standard_DS1_v2"
  }
}

Parametre kullan

Bir parametrenin değerine başvurmak için Parametreler işlevini kullanın. Aşağıdaki örnek, bir Anahtar Kasası adı için bir parametre değeri kullanır.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vaultName": {
      "type": "string",
      "defaultValue": "[format('keyVault{0}', uniqueString(resourceGroup().id))]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.KeyVault/vaults",
      "apiVersion": "2021-06-01-preview",
      "name": "[parameters('vaultName')]",
      ...
    }
  ]
}

Parametre olarak nesneler

İlgili değerleri bir nesne olarak geçirerek organize edebilirsiniz. Bu yaklaşım ayrıca şablondaki parametre sayısını azaltır.

Aşağıdaki örnek bir nesnesi olan bir parametresini gösterir. Varsayılan değer, nesne için beklenen özellikleri gösterir. Bu özellikler, dağıtılacak kaynağı tanımlarken kullanılır.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "vNetSettings": {
      "type": "object",
      "defaultValue": {
        "name": "VNet1",
        "location": "eastus",
        "addressPrefixes": [
          {
            "name": "firstPrefix",
            "addressPrefix": "10.0.0.0/22"
          }
        ],
        "subnets": [
          {
            "name": "firstSubnet",
            "addressPrefix": "10.0.0.0/24"
          },
          {
            "name": "secondSubnet",
            "addressPrefix": "10.0.1.0/24"
          }
        ]
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Network/virtualNetworks",
      "apiVersion": "2021-02-01",
      "name": "[parameters('vNetSettings').name]",
      "location": "[parameters('vNetSettings').location]",
      "properties": {
        "addressSpace": {
          "addressPrefixes": [
            "[parameters('vNetSettings').addressPrefixes[0].addressPrefix]"
          ]
        },
        "subnets": [
          {
            "name": "[parameters('vNetSettings').subnets[0].name]",
            "properties": {
              "addressPrefix": "[parameters('vNetSettings').subnets[0].addressPrefix]"
            }
          },
          {
            "name": "[parameters('vNetSettings').subnets[1].name]",
            "properties": {
              "addressPrefix": "[parameters('vNetSettings').subnets[1].addressPrefix]"
            }
          }
        ]
      }
    }
  ]
}

Örnek Şablonlar

Aşağıdaki örneklerde, parametreleri kullanmaya yönelik senaryolar gösterilmektedir.

Şablon Description
Varsayılan değerler için işlevlere sahip parametreler Parametreler için varsayılan değerleri tanımlarken şablon işlevlerinin nasıl kullanılacağını gösterir. Şablon hiçbir kaynak dağıtmaz. Parametre değerlerini oluşturur ve bu değerleri döndürür.
Parameter nesnesi Bir parametre için bir nesne kullanmayı gösterir. Şablon hiçbir kaynak dağıtmaz. Parametre değerlerini oluşturur ve bu değerleri döndürür.

Sonraki adımlar