Paraméterek az ARM-sablonokban

Ez a cikk azt ismerteti, hogyan definiálhat és használhat paramétereket a Azure Resource Manager sablonban (ARM-sablon). Ha különböző értékeket ad meg a paraméterekhez, újra felhasználhatja a sablonokat a különböző környezetekben.

Resource Manager az üzembe helyezési műveletek megkezdése előtt oldja fel a paraméterértékeket. Bárhol is használja a paramétert a sablonban, Resource Manager lecseréli a feloldott értékre.

Minden paramétert a adattípusok egyikéhez kell beállítani.

Minimális deklaráció

Legalább minden paraméternek szüksége van egy névre és típusra.

Amikor sablont helyez üzembe a Azure Portal, a camel-case paraméternevek szóközrel elválasztott nevekre állnak. A következő példában például a demoString bemutató sztringként jelenik meg. További információ: Üzembe helyezés gomb használata sablonok üzembe helyezéséhez GitHub tárházból és Erőforrások üzembe helyezése ARM-sablonokkal és Azure Portal.

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

Biztonságos paraméterek

A sztring- vagy objektumparamétereket megjelölheti biztonságosként. A biztonságos paraméterek értékét a rendszer nem menti az üzembehelyhely helyezési előzményekbe, és nem naplózza.

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

Megengedett értékek

Definiálhat engedélyezett értékeket egy paraméterhez. Meg kell adnia az engedélyezett értékeket egy tömbben. Az üzembe helyezés meghiúsul az ellenőrzés során, ha olyan értéket ad át a paraméternek, amely nem az engedélyezett értékek egyike.

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

Alapértelmezett érték

Megadhat egy alapértelmezett értéket egy paraméterhez. Az alapértelmezett értéket akkor használja a rendszer, ha az üzembe helyezés során nem ad meg értéket.

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

Az alapértelmezett érték és a paraméter egyéb tulajdonságainak megadásához használja a következő szintaxist.

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

Az alapértelmezett értékkel használhat kifejezéseket. A paraméterek szakaszban nem használhatja a referencia-függvényt vagy a lista egyetlen függvényét sem. Ezek a függvények lekérte egy erőforrás futásidejű állapotát, és a paraméterek feloldása után nem hajtható végre az üzembe helyezés előtt.

A kifejezések más paramétertulajdonságokkal nem használhatók.

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

Egy másik paraméterérték használatával is felépíthet egy alapértelmezett értéket. A következő sablon egy gazdagépterv-nevet épít fel a hely nevéből.

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

Hosszkorlátozások

A sztring- és tömbparaméterek minimális és maximális hosszát is megadhatja. Egy vagy mindkét korlátozás beállítható. Sztringeknál a hossz a karakterek számát jelzi. Tömböknél a hossz a tömb elemeinek számát jelzi.

Az alábbi példa két paramétert deklarál. Az egyik paraméter a tárfiók 3–24 karakterből állhat. A másik paraméter egy tömb, amely 1–5 elemet tartalmaz.

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

Egész számra vonatkozó megkötések

Az egész szám paraméterekhez minimális és maximális értékeket is meg lehet állítani. Egy vagy mindkét korlátozás beállítható.

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

Leírás

Ha leírást ad egy paraméterhez, a sablon felhasználóinak segít megérteni a megadni kívánt értéket. Amikor a sablont a portálon keresztül telepíti, a rendszer automatikusan a leírásban megadott szöveget használja tippként az adott paraméterhez. Csak akkor adjon meg leírást, ha a szöveg több információt tartalmaz, mint amennyit a paraméter nevéből kikövetkeztethet.

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

Paraméter használata

Egy paraméter értékével való hivatkozáshoz használja a parameters függvényt. Az alábbi példa egy paraméterértéket használ egy kulcstartó nevéhez.

{
  "$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')]",
      ...
    }
  ]
}

Objektumok mint paraméterek

A kapcsolódó értékeket objektumként való átadással rendszerezheti. Ez a megközelítés a sablonban a paraméterek számát is csökkenti.

Az alábbi példa egy objektum paraméterét mutatja be. Az alapértelmezett érték az objektum várt tulajdonságait jeleníti meg. Ezek a tulajdonságok az üzembe helyezni szükséges erőforrás meghatározásakor használatosak.

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

Példasablonok

Az alábbi példák a paraméterek használatára vonatkozó forgatókönyveket mutatják be.

Sablon Leírás
paraméterek az alapértelmezett értékek függvényeivel Bemutatja, hogyan használhatók a sablonfunkciók a paraméterek alapértelmezett értékeinek definiálására. A sablon nem helyez üzembe erőforrásokat. Paraméterértékeket épít fel, és visszaadja ezeket az értékeket.
paraméterobjektum Bemutatja, hogyan használható egy objektum egy paraméterhez. A sablon nem helyez üzembe erőforrásokat. Paraméterértékeket épít fel, és visszaadja ezeket az értékeket.

Következő lépések