Criar arquivo de parâmetro do Gerenciador de Recursos
Em vez de passar parâmetros como valores embutidos em seu script, você pode usar um arquivo JSON que contém os valores de parâmetro. Este artigo mostra como criar um arquivo de parâmetro que você usa com um modelo JSON.
Gorjeta
Recomendamos o Bicep porque ele oferece os mesmos recursos que os modelos ARM e a sintaxe é mais fácil de usar. Para saber mais, consulte Arquivos de parâmetro.
Arquivo de parâmetros
Um arquivo de parâmetro usa o seguinte formato:
{
"$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>"
}
}
}
Vale a pena notar que o arquivo de parâmetros salva valores de parâmetros como texto sem formatação. Por motivos de segurança, essa abordagem não é recomendada para valores confidenciais, como senhas. Se você precisar passar um parâmetro com um valor sensível, mantenha o valor em um cofre de chaves. Em seguida, no arquivo de parâmetros, inclua uma referência ao cofre de chaves. Durante a implantação, o valor confidencial é recuperado com segurança. Para obter mais informações, consulte Usar o Azure Key Vault para passar o valor do parâmetro seguro durante a implantação.
O arquivo de parâmetros a seguir inclui um valor de texto sem formatação e um valor confidencial armazenado em um cofre de chaves.
{
"$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>"
}
}
}
}
Para obter mais informações sobre como usar valores de um cofre de chaves, consulte Usar o Cofre de Chaves do Azure para passar valor de parâmetro seguro durante a implantação.
Definir valores de parâmetros
Para determinar como definir os nomes e valores dos parâmetros, abra o modelo JSON e revise a parameters
seção. O exemplo a seguir mostra os parâmetros do modelo JSON.
"parameters": {
"storagePrefix": {
"type": "string",
"maxLength": 11
},
"storageAccountType": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_ZRS",
"Premium_LRS"
]
}
}
No arquivo de parâmetros, o primeiro detalhe a ser observado é o nome de cada parâmetro. Os nomes dos parâmetros no arquivo de parâmetros devem corresponder aos nomes dos parâmetros no modelo.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
},
"storageAccountType": {
}
}
}
Observe o tipo de parâmetro. Os tipos de parâmetro no arquivo de parâmetros devem usar os mesmos tipos do modelo. Neste exemplo, ambos os tipos de parâmetro são strings.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storagePrefix": {
"value": ""
},
"storageAccountType": {
"value": ""
}
}
}
Verifique o modelo para parâmetros com um valor padrão. Se um parâmetro tiver um valor padrão, você poderá fornecer um valor no arquivo de parâmetro, mas ele não será necessário. O valor do arquivo de parâmetro substitui o valor padrão do modelo.
{
"$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.
}
}
}
Verifique os valores permitidos do modelo e quaisquer restrições, como comprimento máximo. Esses valores especificam o intervalo de valores que você pode fornecer para um parâmetro. Neste exemplo, storagePrefix
pode ter um máximo de 11 caracteres e storageAccountType
deve especificar um valor permitido.
{
"$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"
}
}
}
Nota
Seu arquivo de parâmetros só pode conter valores para parâmetros definidos no modelo. Se o arquivo de parâmetros contiver parâmetros extras que não correspondem aos parâmetros do modelo, você receberá um erro.
Formatos de tipo de parâmetro
O exemplo a seguir mostra os formatos de diferentes tipos de parâmetros: string, integer, boolean, array e 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"
}
}
}
}
Implantar modelo com arquivo de parâmetro
Na CLI do Azure, você passa um arquivo de parâmetro local usando @
e o nome do arquivo de parâmetro. Por exemplo, @storage.parameters.json
.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--template-file storage.json \
--parameters @storage.parameters.json
Para obter mais informações, consulte Implantar recursos com modelos ARM e CLI do Azure.
No Azure PowerShell, você passa um arquivo de parâmetro local usando o TemplateParameterFile
parâmetro.
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.json `
-TemplateParameterFile C:\MyTemplates\storage.parameters.json
Para obter mais informações, consulte Implantar recursos com modelos ARM e Azure PowerShell.
Nota
Não é possível usar um arquivo de parâmetro com a folha de modelo personalizado no portal.
Gorjeta
Se você estiver usando o projeto do Grupo de Recursos do Azure no Visual Studio, verifique se o arquivo de parâmetro tem sua Ação de Criação definida como Conteúdo.
Nome de ficheiro
A convenção geral de nomenclatura para o arquivo de parâmetros é incluir parâmetros no nome do modelo. Por exemplo, se o modelo tiver o nome azuredeploy.json, o arquivo de parâmetros será nomeado azuredeploy.parameters.json. Essa convenção de nomenclatura ajuda você a ver a conexão entre o modelo e os parâmetros.
Para implantar em ambientes diferentes, crie mais de um arquivo de parâmetro. Ao nomear os arquivos de parâmetro, identifique seu uso, como desenvolvimento e produção. Por exemplo, use azuredeploy.parameters-dev.json e azuredeploy.parameters-prod.json para implantar recursos.
Precedência dos parâmetros
Você pode usar parâmetros embutidos e um arquivo de parâmetro local na mesma operação de implantação. Por exemplo, você pode especificar alguns valores no arquivo de parâmetro local e adicionar outros valores embutidos durante a implantação. Se você fornecer valores para um parâmetro no arquivo de parâmetro local e embutido, o valor embutido terá precedência.
É possível usar um arquivo de parâmetro externo, fornecendo o URI para o arquivo. Quando você usa um arquivo de parâmetro externo, não pode passar outros valores embutidos ou de um arquivo local. Todos os parâmetros embutidos são ignorados. Forneça todos os valores de parâmetro no arquivo externo.
Conflitos de nome de parâmetro
Se o seu modelo incluir um parâmetro com o mesmo nome de um dos parâmetros no comando PowerShell, o PowerShell apresentará o parâmetro do seu modelo com o postfix FromTemplate
. Por exemplo, um parâmetro nomeado ResourceGroupName
em seu modelo entra em conflito com o ResourceGroupName
parâmetro no cmdlet New-AzResourceGroupDeployment . Você será solicitado a fornecer um valor para ResourceGroupNameFromTemplate
. Para evitar essa confusão, use nomes de parâmetros que não são usados para comandos de implantação.
Próximos passos
- Para obter mais informações sobre como definir parâmetros em um modelo, consulte Parâmetros em modelos ARM.
- Para obter mais informações sobre como usar valores de um cofre de chaves, consulte Usar o Cofre de Chaves do Azure para passar valor de parâmetro seguro durante a implantação.