在 ARM 模板中设置资源位置
部署 Azure 资源管理器模板(ARM 模板)时,必须提供每个资源的位置。 该位置不必与资源组位置相同。
获取可用位置
不同位置支持的资源类型不一样。 若要获取资源类型支持的位置,请使用 Azure PowerShell 或 Azure CLI。
((Get-AzResourceProvider -ProviderNamespace Microsoft.Batch).ResourceTypes `
| Where-Object ResourceTypeName -eq batchAccounts).Locations
使用 location 参数
若要在部署模板时实现灵活性,请使用参数指定资源的位置。 将参数的默认值设置为 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",
"Premium_LRS"
],
"metadata": {
"description": "Storage Account type"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"variables": {
"storageAccountName": "[concat('storage', uniquestring(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2018-07-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageAccountType')]"
},
"kind": "StorageV2",
"properties": {}
}
],
"outputs": {
"storageAccountName": {
"type": "string",
"value": "[variables('storageAccountName')]"
}
}
}
后续步骤
- 有关模板函数的完整列表,请参阅 ARM 模板函数。
- 若要详细了解模板文件,请参阅了解 ARM 模板的结构和语法。