你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
教程:部署本地 ARM 模板
了解如何从本地计算机部署 Azure 资源管理器模板(ARM 模板)。 完成本教程大约需要 8 分钟。
本文是相关教学系列的第一篇教程。 在学习该系列时,你将通过创建链接模板来将模板模块化,将链接模板存储在存储帐户中,使用 SAS 令牌保护链接模板,并了解如何创建 DevOps 管道来部署模板。 该系列重点介绍模板部署。 如果希望了解模板开发,请参阅初学者教程。
获取工具
首先,请确保已获取部署模板所需的工具。
命令行部署
你需要使用 Azure PowerShell 或 Azure CLI 来部署模板。 有关安装说明,请参阅:
安装 Azure PowerShell 或 Azure CLI 后,请务必完成首次登录。 有关帮助,请参阅登录 - PowerShell 或登录 - Azure CLI。
编辑器(可选)
模板是一些 JSON 文件。 若要查看/编辑模板,需要一个好用的 JSON 编辑器。 我们建议使用带有资源管理器工具扩展的 Visual Studio Code。 如果需要安装这些工具,请参阅快速入门:使用 Visual Studio Code 创建 ARM 模板。
审阅模板
模板部署一个存储帐户、应用服务计划和 Web 应用。 如果对创建模板感兴趣,则可完成关于快速入门模板的教程。 但这不是完成本教程所必需的。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"projectName": {
"type": "string",
"minLength": 3,
"maxLength": 11,
"metadata": {
"description": "Specify a project name that is used to generate resource names."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Specify a location for the resources."
}
},
"storageSKU": {
"type": "string",
"defaultValue": "Standard_LRS",
"allowedValues": [
"Standard_LRS",
"Standard_GRS",
"Standard_RAGRS",
"Standard_ZRS",
"Premium_LRS",
"Premium_ZRS",
"Standard_GZRS",
"Standard_RAGZRS"
],
"metadata": {
"description": "Specify the storage account type."
}
},
"linuxFxVersion": {
"type": "string",
"defaultValue": "php|7.0",
"metadata": {
"description": "Specify the Runtime stack of current web app"
}
}
},
"variables": {
"storageAccountName": "[format('{0}{1}', parameters('projectName'), uniqueString(resourceGroup().id))]",
"webAppName": "[format('{0}WebApp', parameters('projectName'))]",
"appServicePlanName": "[format('{0}Plan', parameters('projectName'))]"
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2023-01-01",
"name": "[variables('storageAccountName')]",
"location": "[parameters('location')]",
"sku": {
"name": "[parameters('storageSKU')]"
},
"kind": "StorageV2",
"properties": {
"supportsHttpsTrafficOnly": true
}
},
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2022-09-01",
"name": "[variables('appServicePlanName')]",
"location": "[parameters('location')]",
"sku": {
"name": "B1",
"tier": "Basic",
"size": "B1",
"family": "B",
"capacity": 1
},
"kind": "linux",
"properties": {
"perSiteScaling": false,
"reserved": true,
"targetWorkerCount": 0,
"targetWorkerSizeId": 0
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2022-09-01",
"name": "[variables('webAppName')]",
"location": "[parameters('location')]",
"kind": "app",
"properties": {
"serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
"siteConfig": {
"linuxFxVersion": "[parameters('linuxFxVersion')]"
}
},
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]"
]
}
],
"outputs": {
"storageEndpoint": {
"type": "object",
"value": "[reference(resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName')), '2023-01-01').primaryEndpoints]"
}
}
}
重要
存储帐户名称必须唯一,长度为 3 到 24 个字符,只能使用数字和小写字母 。 示例模板的 storageAccountName
变量将 projectName
参数的最大值(11 个字符)与 uniqueString 值(13 个字符)组合在一起。
以 .json 为扩展名将模板的副本保存到本地计算机,例如 azuredeploy.json 。 稍后在本教程中将部署此模板。
登录 Azure
若要开始使用 Azure PowerShell/Azure CLI 来部署模板,请使用你的 Azure 凭据登录。
Connect-AzAccount
如果你有多个 Azure 订阅,请选择要使用的订阅。 将 [SubscriptionID/SubscriptionName]
和方括号 []
替换为你的订阅信息:
Set-AzContext [SubscriptionID/SubscriptionName]
创建资源组
部署模板时,请指定一个包含资源的资源组。 在运行部署命令之前,请使用 Azure CLI 或 Azure PowerShell 创建该资源组。 使用以下代码部分中的选项卡在 Azure PowerShell 与 Azure CLI 之间进行选择。 本文中的 CLI 示例针对 Bash shell 编写。
$projectName = Read-Host -Prompt "Enter a project name that is used to generate resource and resource group names"
$resourceGroupName = "${projectName}rg"
New-AzResourceGroup `
-Name $resourceGroupName `
-Location "Central US"
部署模板
使用一个或两个部署选项来部署模板。
$projectName = Read-Host -Prompt "Enter the same project name"
$templateFile = Read-Host -Prompt "Enter the template file path and file name"
$resourceGroupName = "${projectName}rg"
New-AzResourceGroupDeployment `
-Name DeployLocalTemplate `
-ResourceGroupName $resourceGroupName `
-TemplateFile $templateFile `
-projectName $projectName `
-verbose
若要详细了解如何使用 Azure PowerShell 部署模板,请参阅使用 ARM 模板和 Azure PowerShell 部署资源。
清理资源
通过删除资源组来清理你部署的资源。
- 在 Azure 门户上的左侧菜单中选择“资源组” 。
- 在“按名称筛选”字段中输入资源组名称。
- 选择资源组名称。
- 在顶部菜单中选择“删除资源组”。
后续步骤
现在,你已了解了如何部署本地模板。 在下一教程中,你需要将该模板拆分为一个主模板和一个链接模板,并了解如何存储和保护链接模板。