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 jeho použití je jednodušší. 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 třeba 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ů přidejte odkaz na trezor klíčů. Během nasazení 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 ve formátu 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 nasazení.

Definování hodnot parametrů

Pokud chcete zjistit, jak definovat názvy a hodnoty parametrů, otevřete šablonu JSON a projděte si parameters část . 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"
    ]
  }
}

Prvním detailem v souboru parametrů je 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 š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 všechna omezení, jako je například maximální délka. Tyto hodnoty určují rozsah hodnot, které můžete parametru poskytnout. 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ů, 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 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.

Z Azure PowerShell předáte místní soubor parametrů 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 s oknem vlastní šablony na portálu.

Tip

Pokud v sadě Visual Studio používáte projekt Skupiny prostředků Azure, ujistěte se, že soubor parametrů má svou akci sestavení nastavenou na Obsah.

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 šablona název azuredeploy.json, soubor parametrů má název azuredeploy.parameters.json. Tato konvence vytváření názvů vám pomůže zjistit propojení mezi šablonou a parametry.

Pokud chcete provést 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 místní soubor parametrů. Můžete například zadat některé hodnoty v místním souboru 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.

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

Další kroky