Vytvoření souboru parametrů Resource Manager

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žijete se šablonou JSON.

Tip

Doporučujeme Bicep , protože nabízí stejné funkce jako šablony ARM a syntaxe se snadněji používá. Další informace najdete v tématu Soubory 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>"
    }
  }
}

Stojí za zmínku, ž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íčů. Pak do souboru parametrů přidejte odkaz na trezor klíčů. Během nasazování se citlivá hodnota bezpečně načte. Další informace najdete v tématu Použití Azure Key Vault k předání hodnoty zabezpečeného parametru během nasazení.

Následující soubor parametrů obsahuje hodnotu prostého textu a citlivou hodnotu, která je uložená 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í 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šimnete, název každého parametru. Názvy parametrů v souboru parametrů se musí shodovat s názvy 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 vaše š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 v šabloně parametry 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 případná omezení, například maximální délku. Tyto hodnoty určují rozsah hodnot, které můžete parametru zadat. V tomto příkladu storagePrefix může obsahovat 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ů, které jsou definované 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ázvu souboru parametru. 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.

Z Azure PowerShell 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 PowerShell.

Poznámka

Soubor parametrů není možné použít v okně vlastní šablony na portálu.

Tip

Pokud používáte projekt Skupina prostředků Azure v sadě Visual Studio, ujistěte se, že je v souboru parametru akce sestavení nastavená hodnotaObsah.

Název souboru

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

K nasazení do různých prostředí vytvoříte více než jeden soubor parametrů. Při pojmenování souborů 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 parametrů

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

Je možné použít externí soubor parametrů zadáním identifikátoru URI k souboru. Když použijete externí soubor parametrů, nemůžete předat další hodnoty vložené ani 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 s názvem ResourceGroupName v šabloně koliduje s parametrem ResourceGroupName v rutině New-AzResourceGroupDeployment . Zobrazí se výzva k zadání hodnoty pro ResourceGroupNameFromTemplate. Abyste se vyhnuli tomuto nejasnostem, použijte názvy parametrů, které se nepoužívají pro příkazy nasazení.

Další kroky