Definir a localização do recurso no modelo do ARM

Ao implementar um modelo do Azure Resource Manager (modelo arm), tem de fornecer uma localização para cada recurso. A localização não tem de ser a mesma localização que a localização do grupo de recursos.

Obter localizações disponíveis

São suportados diferentes tipos de recursos em localizações diferentes. Para obter as localizações suportadas para um tipo de recurso, utilize Azure PowerShell ou a CLI do Azure.

((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes `
  | Where-Object ResourceTypeName -eq batchAccounts).Locations

Utilizar o parâmetro de localização

Para permitir flexibilidade ao implementar o modelo, utilize um parâmetro para especificar a localização dos recursos. Defina o valor predefinido do parâmetro como resourceGroup().location.

O exemplo seguinte mostra uma conta de armazenamento que é implementada numa localização especificada como um parâmetro:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_GRS",
        "Standard_ZRS",
        "Premium_LRS"
      ],
      "metadata": {
        "description": "Storage Account type"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "variables": {
    "storageAccountName": "[format('storage{0}', uniqueString(resourceGroup().id))]"
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      "apiVersion": "2022-09-01",
      "name": "[variables('storageAccountName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "[parameters('storageAccountType')]"
      },
      "kind": "StorageV2",
      "properties": {}
    }
  ],
  "outputs": {
    "storageAccountName": {
      "type": "string",
      "value": "[variables('storageAccountName')]"
    }
  }
}

Passos seguintes