Tworzenie pliku parametrów Resource Manager

Zamiast przekazywać parametry jako wartości wbudowane w skry 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.

Porada

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

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 poufnych wartości, 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 Use Azure Key Vault to pass secure parameter value during deployment (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 Use Azure Key Vault to pass secure parameter value during deployment (Używanie usługi Azure Key Vault do przekazywania wartości parametru bezpiecznego 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ółą do powiadomienia 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 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 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

Za pomocą interfejsu wiersza polecenia platformy Azure przekażesz lokalny plik parametrów 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.

Z Azure PowerShell należy przekazać lokalny plik parametrów 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 Deploy resources with ARM templates and Azure PowerShell (Wdrażanie zasobów przy użyciu 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 programie Visual Studio, upewnij się, że plik parametrów ma wartość Akcja kompilacji ustawiona 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 nosi 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 pliku azuredeploy.parameters-dev.json i azuredeploy.parameters-prod.json , aby wdrożyć zasoby.

Pierwszeństwo parametru

W tej samej operacji wdrażania można użyć parametrów wbudowanych i pliku parametrów lokalnych. 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 dla ResourceGroupNameFromTemplateelementu . Aby uniknąć tego nieporozumień, użyj nazw parametrów, które nie są używane do poleceń wdrażania.

Następne kroki