Tworzenie Resource Manager parametrów

Zamiast przekazywania parametrów jako wartości w tekście w skrypcie, można użyć pliku JSON zawierającego wartości parametrów. W tym artykule pokazano, jak utworzyć plik parametrów, który będzie używać szablonu JSON.

Plik parametrów

Plik parametrów ma następujący format:

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

Zwróć uwagę, że w pliku parametrów wartości parametrów są przechowywane jako zwykły tekst. To podejście działa w przypadku wartości, które nie są poufne, takich jak zasób SKU. Zwykły tekst nie działa w przypadku wartości poufnych, takich jak hasła. Jeśli musisz przekazać parametr zawierający wartość po poufne, przechowuj wartość w magazynie kluczy. Następnie odwołaj się do magazynu kluczy w pliku parametrów. Wartość wrażliwa jest bezpiecznie pobierana podczas wdrażania.

Poniższy plik parametrów zawiera wartość w postaci zwykłego tekstu i wartość wrażliwą przechowywaną w magazynie kluczy.

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

Aby uzyskać więcej informacji na temat używania wartości z magazynu kluczy, zobacz Use Azure Key Vault to pass secure parameter value during deployment (Używanie usługi Azure Key Vault do przekazania wartości bezpiecznego parametru podczas wdrażania.

Definiowanie wartości parametrów

Aby określić sposób definiowania nazw parametrów i wartości, otwórz szablon JSON i przejrzyj parameters sekcję . W poniższym przykładzie przedstawiono parametry szablonu JSON.

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

W pliku parametrów pierwszymi szczegółami, które należy zauważyć, jest nazwa każdego parametru. Nazwy parametrów w pliku parametrów muszą być zgodne z nazwami parametrów w szablonie.

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

Zwróć uwagę na typ parametru . Typy parametrów w pliku parametrów muszą używać tych samych typów co szablon. W tym przykładzie oba typy parametrów są ciągami.

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

Sprawdź w szablonie parametry z wartością domyślną. Jeśli parametr ma wartość domyślną, możesz podać wartość w pliku parametrów, ale nie jest to wymagane. Wartość pliku parametrów zastępuje wartość domyślną szablonu.

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

Sprawdź dozwolone wartości szablonu i wszelkie ograniczenia, takie jak maksymalna długość. Te wartości określają zakres wartości, które można podać dla parametru. W tym przykładzie storagePrefix może mieć maksymalnie 11 znaków i storageAccountType musi określać dozwoloną wartość.

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

Uwaga

Plik parametrów może zawierać tylko wartości parametrów zdefiniowanych w szablonie. Jeśli plik parametrów zawiera dodatkowe parametry, które nie pasują do parametrów szablonu, zostanie wyświetlony błąd.

Formaty typów parametrów

W poniższym przykładzie przedstawiono formaty różnych typów parametrów: ciąg, liczba całkowita, wartość logiczna, tablica i obiekt.

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

Wdrażanie szablonu za pomocą pliku parametrów

Z interfejsu wiersza polecenia platformy Azure przekaż lokalny plik parametrów przy użyciu polecenia @ i nazwę pliku parametrów. Na przykład @storage.parameters.json.

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

Aby uzyskać więcej informacji, zobacz Deploy resources with ARM templates and Azure CLI (Wdrażanie zasobów za pomocą szablonów usługi ARM i interfejsu wiersza polecenia platformy Azure).

Z Azure PowerShell przekazać plik parametrów lokalnych przy użyciu TemplateParameterFile parametru .

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

Aby uzyskać więcej informacji, zobacz Wdrażanie zasobów za pomocą szablonów usługi ARM i Azure PowerShell.

Uwaga

Nie można użyć pliku parametrów z blokiem szablonu niestandardowego w portalu.

Porada

Jeśli używasz projektu grupy zasobów platformy Azure w usłudze Visual Studio , upewnij się, że plik parametrówma akcję kompilacji ustawioną na wartość Zawartość.

Nazwa pliku

Ogólna konwencja nazewnictwa dla pliku parametrów obejmuje dołączenie parametrów w nazwie szablonu. Jeśli na przykład szablon ma nazwęazuredeploy.js , plik parametrów ma nazwęazuredeploy.parameters.js na. Ta konwencja nazewnictwa pomaga zobaczyć połączenie między szablonem i parametrami.

Aby wdrożyć w różnych środowiskach, należy utworzyć więcej niż jeden plik parametrów. Nadaj plikom parametrów nazwę, która będzie ich używać, na przykład w środowisku dewelopera i produkcyjnym. Możesz na przykład użyć azuredeploy.parameters-dev.jsi azuredeploy.parameters-prod.js w celu wdrożenia zasobów.

Pierwszeństwo parametrów

W tej samej operacji wdrażania można użyć parametrów w tekście i pliku parametrów lokalnych. Można na przykład określić niektóre wartości w lokalnym pliku parametrów i dodać inne wartości w tekście podczas wdrażania. W przypadku podania wartości parametru zarówno w lokalnym pliku parametrów, jak i w tekście, pierwszeństwo ma wartość w tekście.

Można użyć zewnętrznego pliku parametrów, podając w pliku wartość URI. W przypadku użycia zewnętrznego pliku parametrów nie można przekazać innych wartości ani w tekście, ani z pliku lokalnego. Wszystkie parametry wbudowane są ignorowane. Podaj wszystkie wartości parametrów w pliku zewnętrznym.

Konflikty nazw parametrów

Jeśli szablon zawiera parametr o takiej samej nazwie jak jeden z parametrów w poleceniu programu PowerShell, program PowerShell przedstawia parametr z szablonu z przyrostką FromTemplate . Na przykład parametr o nazwie w szablonie powoduje konflikt z ResourceGroupName ResourceGroupName parametrem w poleceniach cmdlet New-AzResourceGroupDeployment. Zostanie wyświetlony monit o podanie wartości dla ResourceGroupNameFromTemplate . Aby uniknąć tego nieporozumień, użyj nazw parametrów, które nie są używane w poleceniach wdrażania.

Następne kroki

  • Aby uzyskać więcej informacji na temat definiowania parametrów w szablonie, zobacz Parametry w szablonach usługi ARM.
  • Aby uzyskać więcej informacji na temat używania wartości z magazynu kluczy, zobacz Use Azure Key Vault to pass secure parameter value during deployment (Używanie usługi Azure Key Vault do przekazania wartości bezpiecznego parametru podczas wdrażania.