Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Em vez de passar parâmetros como valores embutidos em seu script, você pode usar um arquivo JSON que contenha os valores de parâmetro. Este artigo mostra como criar um arquivo de parâmetro que você usa com um modelo JSON.
Dica
Recomendamos o Bicep porque ele oferece os mesmos recursos que os modelos do ARM e a sintaxe é mais fácil de usar. Para saber mais, confira os 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 observar que o arquivo de parâmetro salva valores de parâmetro 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 confidencial, mantenha o valor em um cofre de chaves. Em seguida, no arquivo de parâmetro, 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âmetro 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 Azure Key Vault para passar o valor do parâmetro seguro durante a implantação.
Definir valores de parâmetro
Para determinar como definir os nomes e valores dos parâmetros, abra o modelo JSON e examine 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âmetro, o primeiro detalhe a ser notado é o nome de cada parâmetro. Os nomes de parâmetro no arquivo de parâmetro devem corresponder aos nomes de parâmetro em seu 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âmetro devem usar os mesmos tipos que o modelo. Neste exemplo, ambos os tipos de parâmetro são cadeias de caracteres.
{
"$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 as 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 no máximo 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"
}
}
}
Observação
Seu arquivo de parâmetro só pode conter valores para parâmetros definidos no modelo. Se o arquivo de parâmetro contiver parâmetros extras que não correspondem aos parâmetros do modelo, você receberá um erro.
Formatos de tipos de parâmetros
O exemplo a seguir mostra os formatos dos diferentes tipos de parâmetro: cadeia de caracteres, inteiro, booleano, matriz e objeto.
{
"$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 do ARM e a 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 do ARM e o Azure PowerShell.
Observação
Não é possível usar um arquivo de parâmetros com a folha do modelo personalizado no portal.
Dica
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 Build definida como Conteúdo.
Nome do arquivo
A convenção de nomenclatura geral para o arquivo de parâmetro é incluir parâmetros no nome do modelo. Por exemplo, se o modelo for nomeado azuredeploy.json, o arquivo de parâmetro 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, você cria mais de um arquivo de parâmetro. Quando você nomear os arquivos de parâmetro, identifique sua finalidade, como desenvolvimento e produção. Por exemplo, use azuredeploy.parameters-dev.json e azuredeploy.parameters-prod.json para implantar recursos.
Precedência de parâmetro
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 tanto no arquivo local de parâmetros quanto diretamente, o valor fornecido diretamente terá precedência.
É possível usar um arquivo de parâmetro externo, fornecendo o URI para o arquivo. Ao usar um arquivo de parâmetro externo, você 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 modelo incluir um parâmetro com o mesmo nome de um dos parâmetros no comando do PowerShell, o PowerShell apresentará o parâmetro do modelo com o postfixo FromTemplate. Por exemplo, um parâmetro nomeado ResourceGroupName em seu modelo entra em conflito com o ResourceGroupName parâmetro no cmdlet New-AzResourceGroupDeployment . Você é 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óximas etapas
- Para obter mais informações sobre como definir parâmetros em um modelo, consulte Parâmetros em modelos do ARM.
- Para obter mais informações sobre como usar valores de um cofre de chaves, consulte Usar o Azure Key Vault para passar o valor do parâmetro seguro durante a implantação.