ARM 템플릿에서 리소스 위치 설정

Azure 리소스 관리자 템플릿 (ARM 템플릿)을 배포하는 경우 각 리소스의 위치를 제공해야 합니다. 위치가 리소스 그룹 위치와 동일한 위치가 아니어도 됩니다.

사용 가능한 위치 가져오기

다양한 리소스 형식이 다양한 위치에서 지원됩니다. 리소스 종류에 대해 지원되는 위치를 가져오려면 Azure PowerShell 또는 Azure CLI를 사용합니다.

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

위치 매개 변수 사용

템플릿을 배포할 때 유연성을 허용하려면 매개 변수를 사용하여 리소스의 위치를 지정합니다. 매개 변수의 기본값을 resourceGroup().location로 가져옵니다.

다음 예제에서는 매개 변수로 지정된 위치에 배포되는 스토리지 계정을 보여줍니다.

{
  "$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')]"
    }
  }
}

다음 단계