Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Para implantar um recurso por meio de um modelo do Azure Resource Manager (modelo ARM), adicione uma declaração de recurso. Use a resources matriz em um modelo JSON.
languageVersion 2.0 faz uma lista de aprimoramentos para modelos JSON ARM, como alterar a declaração de recursos de uma matriz para um objeto. A maioria dos exemplos mostrados neste artigo ainda usa resources matriz. Para obter informações específicas sobre languageVersion 2.0, consulte Usar nome simbólico.
Sugestão
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 Declaração de recursos.
Você está limitado a 800 recursos em um modelo. Para obter mais informações, consulte Limites de modelo.
Definir o tipo e a versão do recurso
Ao adicionar um recurso ao seu modelo, comece definindo o tipo de recurso e a versão da API. Esses valores determinam as outras propriedades que estão disponíveis para o recurso.
O exemplo a seguir mostra como definir o tipo de recurso e a versão da API para uma conta de armazenamento. O exemplo não mostra a declaração de recurso completa.
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
...
}
]
Definir nome do recurso
Cada recurso tem um nome. Ao definir o nome do recurso, preste atenção às regras e restrições para nomes de recursos.
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]",
...
}
]
Definir localização
Muitos recursos requerem uma localização. Você pode determinar se o recurso precisa de um local por meio do intellisense ou da referência de modelo. O exemplo a seguir adiciona um parâmetro location que é usado para a conta de armazenamento.
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
...
}
]
Para obter mais informações, consulte Definir local do recurso no modelo ARM.
Definir tags
Você pode aplicar tags a um recurso durante a implantação. As tags ajudam você a organizar logicamente os recursos implantados. Para obter exemplos das diferentes maneiras de especificar as tags, consulte Tags de modelo ARM.
Definir propriedades específicas do recurso
As propriedades anteriores são genéricas para a maioria dos tipos de recursos. Depois de definir esses valores, você precisa definir as propriedades específicas para o tipo de recurso que está implantando.
Use intellisense ou referência de modelo para determinar quais propriedades estão disponíveis e quais são necessárias. O exemplo a seguir define as propriedades restantes de uma conta de armazenamento.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"minLength": 3,
"maxLength": 24
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"functions": [],
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS",
"tier": "Standard"
},
"kind": "StorageV2",
"properties": {
"accessTier": "Hot"
}
}
]
}
Usar nome simbólico
No Bicep, cada definição de recurso tem um nome simbólico. O nome simbólico é usado para fazer referência ao recurso nas outras partes do ficheiro Bicep. Para dar suporte ao nome simbólico em modelos JSON ARM, adicione languageVersion com a versão 2.0e altere a definição de recurso de uma matriz para um objeto. Quando languageVersion é especificado para um modelo, o nome simbólico deve ser especificado para recursos de nível raiz. Por exemplo:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"resources": [
{
"type": "Microsoft.ContainerService/managedClusters",
...
}
]
}
O JSON anterior pode ser escrito no seguinte JSON:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"languageVersion": "2.0",
"contentVersion": "1.0.0.0",
"resources": {
"aks": {
"type": "Microsoft.ContainerService/managedClusters",
...
}
}
}
Os nomes simbólicos diferenciam maiúsculas de minúsculas. Os caracteres permitidos para nomes simbólicos são letras, números e _. Os nomes simbólicos devem ser exclusivos em um modelo, mas podem se sobrepor a nomes de variáveis, nomes de parâmetros e nomes de saída em um modelo. No exemplo a seguir, o nome simbólico do recurso de conta de armazenamento tem o mesmo nome que a saída.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"languageVersion": "2.0",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccountName": {
"type": "string",
"defaultValue": "[format('storage{0}', uniqueString(resourceGroup().id))]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": {
"myStorage": {
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "[parameters('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"properties": {}
}
},
"outputs": {
"myStorage":{
"type": "object",
"value": "[reference('myStorage')]"
}
}
}
A função de referência pode usar o nome simbólico de um recurso, como mostrado no exemplo anterior. A função de referência não pode mais usar o nome de um recurso, por exemplo, reference(parameters('storageAccountName')) não é permitida.
Se o recurso Deployments for usado numa implementação de nome simbólico, utilize apiVersion 2020-09-01 ou posterior.
Declarar recursos existentes
Com languageVersion 2.0 e usando o nome simbólico para a declaração de recursos, você pode declarar recursos existentes. Uma propriedade de recurso de nível superior de "existing": true faz com que o ARM leia, em vez de implantar um recurso, conforme mostrado no exemplo a seguir:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"languageVersion": "2.0",
"resources": {
"storageAccount": {
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2025-06-01",
"name": "storageacct",
"existing": true
}
},
"outputs": {
"saBlocksPlaintext": {
"type": "bool",
"value": "[ reference('storageAccount').supportsHttpsTrafficOnly]"
}
}
}
Os recursos existentes não precisam definir nenhuma propriedade além de type, apiVersione name.
Próximos passos
- Para implantar condicionalmente um recurso, consulte Implantação condicional em modelos ARM.
- Para definir dependências de recursos, consulte Definir a ordem de implantação de recursos em modelos ARM.