Udostępnij za pośrednictwem


Tworzenie pliku parametrów usługi Resource Manager

Zamiast przekazywać parametry jako wartości wbudowane w skrycie, możesz użyć pliku JSON zawierającego wartości parametrów. W tym artykule pokazano, jak utworzyć plik parametrów używany z szablonem JSON.

Napiwek

Zalecamy Bicep , ponieważ oferuje te same możliwości co szablony usługi ARM, a składnia jest łatwiejsza w użyciu. Aby dowiedzieć się więcej, zobacz pliki parametrów.

Plik parametrów

Plik parametrów używa następującego formatu:

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

Warto zauważyć, że plik parametrów zapisuje wartości parametrów jako zwykły tekst. Ze względów bezpieczeństwa takie podejście nie jest zalecane w przypadku wartości poufnych, takich jak hasła. Jeśli musisz przekazać parametr z wartością wrażliwą, zachowaj wartość w magazynie kluczy. Następnie w pliku parametrów dołącz odwołanie do magazynu kluczy. Podczas wdrażania jest bezpiecznie pobierana wartość wrażliwa. Aby uzyskać więcej informacji, zobacz Używanie usługi Azure Key Vault do przekazywania bezpiecznej wartości parametru podczas wdrażania.

Poniższy plik parametrów zawiera wartość 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 Używanie usługi Azure Key Vault do przekazywania bezpiecznej wartości 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 sekcję parameters . 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 pierwszą szczegółową informacją 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ź szablon pod kątem parametrów 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 parametru 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 są zgodne z parametrami 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 z plikiem parametrów

Z poziomu interfejsu wiersza polecenia platformy Azure przekazujesz plik parametrów lokalnych przy użyciu polecenia @ i nazwę pliku parametru. 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 Wdrażanie zasobów przy użyciu szablonów usługi ARM i interfejsu wiersza polecenia platformy Azure.

W programie Azure PowerShell przekazujesz plik parametrów lokalnych przy użyciu parametru TemplateParameterFile .

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 przy użyciu szablonów usługi ARM i programu Azure PowerShell.

Uwaga

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

Napiwek

Jeśli używasz projektu Grupy zasobów platformy Azure w programie Visual Studio, upewnij się, że plik parametrów ma ustawioną wartość Akcja kompilacji na Zawartość.

Nazwa pliku

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

Aby wdrożyć w różnych środowiskach, należy utworzyć więcej niż jeden plik parametrów. Podczas nadawania nazw plikom parametrów zidentyfikuj ich użycie, takie jak programowanie i produkcja. Na przykład użyj azuredeploy.parameters-dev.json i azuredeploy.parameters-prod.json , aby wdrożyć zasoby.

Pierwszeństwo parametrów

Możesz użyć wbudowanych parametrów i pliku parametrów lokalnych w tej samej operacji wdrażania. Na przykład można określić niektóre wartości w pliku parametrów lokalnych i dodać inne wartości wbudowane podczas wdrażania. Jeśli podasz wartości parametru zarówno w pliku parametrów lokalnych, jak i wbudowanych, pierwszeństwo ma wartość śródliniowa.

Można użyć pliku parametrów zewnętrznych, podając identyfikator URI do pliku. W przypadku korzystania z pliku parametrów zewnętrznych nie można przekazać innych wartości 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 prefiksem FromTemplate. Na przykład parametr o nazwie ResourceGroupName w szablonie powoduje konflikt z parametrem ResourceGroupName w poleceniu cmdlet New-AzResourceGroupDeployment . Zostanie wyświetlony monit o podanie wartości .ResourceGroupNameFromTemplate Aby uniknąć tego zamieszania, użyj nazw parametrów, które nie są używane do poleceń wdrażania.

Następne kroki