Vytvoření souboru parametrů Resource Manageru

Místo předávání parametrů jako vložených hodnot ve skriptu můžete použít soubor JSON, který obsahuje hodnoty parametrů. Tento článek ukazuje, jak vytvořit soubor parametrů, který používáte se šablonou JSON.

Tip

Doporučujeme Bicep, protože nabízí stejné možnosti jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v souborech parametrů.

Soubor parametrů

Soubor parametrů používá následující formát:

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

Je dobré poznamenat, že soubor parametrů ukládá hodnoty parametrů jako prostý text. Z bezpečnostních důvodů se tento přístup nedoporučuje pro citlivé hodnoty, jako jsou hesla. Pokud musíte předat parametr s citlivou hodnotou, ponechte hodnotu v trezoru klíčů. Potom do souboru parametrů zahrňte odkaz na trezor klíčů. Během nasazování se citlivá hodnota bezpečně načte. Další informace najdete v tématu Použití služby Azure Key Vault k předání hodnoty zabezpečeného parametru během nasazování.

Následující soubor parametrů obsahuje hodnotu prostého textu a citlivou hodnotu uloženou v trezoru klíčů.

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

Další informace o používání hodnot z trezoru klíčů najdete v tématu Použití služby Azure Key Vault k předání hodnoty zabezpečeného parametru během nasazování.

Definování hodnot parametrů

Pokud chcete zjistit, jak definovat názvy a hodnoty parametrů, otevřete šablonu JSON a projděte si parameters oddíl. Následující příklad ukazuje parametry šablony JSON.

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

V souboru parametrů je prvním detailem, který si všimněte, název každého parametru. Názvy parametrů v souboru parametrů musí odpovídat názvům parametrů v šabloně.

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

Všimněte si typu parametru. Typy parametrů v souboru parametrů musí používat stejné typy jako šablona. V tomto příkladu jsou oba typy parametrů řetězce.

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

Zkontrolujte parametry šablony s výchozí hodnotou. Pokud má parametr výchozí hodnotu, můžete zadat hodnotu v souboru parametrů, ale není to povinné. Hodnota souboru parametrů přepíše výchozí hodnotu šablony.

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

Zkontrolujte povolené hodnoty šablony a všechna omezení, jako je maximální délka. Tyto hodnoty určují rozsah hodnot, které můžete zadat pro parametr. V tomto příkladu storagePrefix může mít maximálně 11 znaků a storageAccountType musí zadat povolenou hodnotu.

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

Poznámka:

Soubor parametrů může obsahovat pouze hodnoty parametrů definovaných v šabloně. Pokud soubor parametrů obsahuje další parametry, které neodpovídají parametrům šablony, zobrazí se chyba.

Formáty typů parametrů

Následující příklad ukazuje formáty různých typů parametrů: string, integer, boolean, array a object.

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

Nasazení šablony se souborem parametrů

Z Azure CLI předáte místní soubor parametrů pomocí @ a název souboru parametrů. Například @storage.parameters.json.

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

Další informace najdete v tématu Nasazení prostředků pomocí šablon ARM a Azure CLI.

V Azure PowerShellu předáte soubor místního parametru pomocí parametru TemplateParameterFile .

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

Další informace najdete v tématu Nasazení prostředků pomocí šablon ARM a Azure PowerShellu.

Poznámka:

Soubor parametrů s oknem vlastní šablony na portálu není možné použít.

Název souboru

Obecná konvence vytváření názvů pro soubor parametrů spočívá v zahrnutí parametrů do názvu šablony. Pokud je například vaše šablona pojmenovaná azuredeploy.json, soubor parametrů má název azuredeploy.parameters.json. Tato konvence vytváření názvů vám pomůže zobrazit propojení mezi šablonou a parametry.

Pokud chcete provést nasazení do různých prostředí, vytvoříte více než jeden soubor parametrů. Když pojmenujete soubory parametrů, identifikujte jejich použití, jako je vývoj a produkce. K nasazení prostředků použijte například azuredeploy.parameters-dev.json a azuredeploy.parameters-prod.json .

Priorita parametru

Ve stejné operaci nasazení můžete použít vložené parametry a místní soubor parametrů. Můžete například zadat některé hodnoty v souboru místního parametru a přidat další hodnoty vložené během nasazování. Pokud zadáte hodnoty parametru v místním souboru parametrů i vložené, bude mít přednost vložená hodnota.

Soubor externích parametrů je možné použít zadáním identifikátoru URI souboru. Při použití externího souboru parametrů nemůžete předávat jiné hodnoty buď vložené, nebo z místního souboru. Všechny vložené parametry se ignorují. Zadejte všechny hodnoty parametrů v externím souboru.

Konflikty názvů parametrů

Pokud vaše šablona obsahuje parametr se stejným názvem jako jeden z parametrů v příkazu PowerShellu, PowerShell zobrazí parametr z vaší šablony s příponou FromTemplate. Například parametr pojmenovaný ResourceGroupName v šabloně koliduje s ResourceGroupName parametrem v rutině New-AzResourceGroupDeployment . Zobrazí se výzva k zadání hodnoty ResourceGroupNameFromTemplate. Abyste se vyhnuli tomuto nejasnostem, použijte názvy parametrů, které se nepoužívají pro příkazy nasazení.

Další kroky