使用 Bicep 创建应用服务应用
通过在本地 Shell 中使用 Bicep 文件和 Azure CLI 将应用部署到云,开始使用 Azure 应用服务。 由于使用的是免费应用服务层,因此完成本快速入门不会产生费用。
Bicep 是一种特定于域的语言 (DSL),使用声明性语法来部署 Azure 资源。 它提供简明的语法、可靠的类型安全性以及对代码重用的支持。 可以使用 Bicep 而非 JSON 来开发 Azure 资源管理器模板(ARM 模板)。 用于创建 ARM 模板的 JSON 语法可能比较繁琐,需要使用复杂的表达式。 Bicep 语法降低了这种复杂性,改进了开发体验。 Bicep 是基于 ARM 模板 JSON 的透明抽象,不会丢失任何 JSON 模板功能。 在部署过程中,Bicep CLI 将 Bicep 文件转译为 ARM 模板 JSON。
先决条件
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
若要使用 Bicep 有效创建资源,需要设置 Bicep 开发环境。 Visual Studio Code 的 Bicep 扩展提供语言支持和资源自动完成功能。 此扩展可帮助你创建和验证 Bicep 文件,建议那些要在完成本快速入门后使用 Bicep 创建资源的开发人员使用它。
查看模板
本快速入门中使用的模板如下所示。 它在 Linux 上部署应用服务计划和应用服务应用,并部署来自 Azure 示例存储库的示例 Node.js“Hello World”应用。
param webAppName string = uniqueString(resourceGroup().id) // Generate unique String for web app name
param sku string = 'F1' // The SKU of App Service Plan
param linuxFxVersion string = 'node|14-lts' // The runtime stack of web app
param location string = resourceGroup().location // Location for all resources
param repositoryUrl string = 'https://github.com/Azure-Samples/nodejs-docs-hello-world'
param branch string = 'main'
var appServicePlanName = toLower('AppServicePlan-${webAppName}')
var webSiteName = toLower('wapp-${webAppName}')
resource appServicePlan 'Microsoft.Web/serverfarms@2020-06-01' = {
name: appServicePlanName
location: location
properties: {
reserved: true
}
sku: {
name: sku
}
kind: 'linux'
}
resource appService 'Microsoft.Web/sites@2020-06-01' = {
name: webSiteName
location: location
properties: {
serverFarmId: appServicePlan.id
siteConfig: {
linuxFxVersion: linuxFxVersion
}
}
}
resource srcControls 'Microsoft.Web/sites/sourcecontrols@2021-01-01' = {
name: '${appService.name}/web'
properties: {
repoUrl: repositoryUrl
branch: branch
isManualIntegration: true
}
}
该模板中定义了三个 Azure 资源:
- Microsoft.Web/serverfarms:创建应用服务计划。
- Microsoft.Web/sites:创建应用服务应用。
- Microsoft.Web/sites/sourcecontrols:创建外部 git 部署配置。
为了便于你使用,此模板包含多个预定义的参数。 有关参数默认值及其说明,请参阅下表:
参数 | 类型 | 默认值 | DESCRIPTION |
---|---|---|---|
webAppName | 字符串 | "webApp- <uniqueString> " |
应用程序名称 |
location | 字符串 | "[resourceGroup().location]" | 应用区域 |
sku | 字符串 | "F1" | 实例大小 |
linuxFxVersion | 字符串 | "NODE|14-LTS" | "编程语言堆栈 | 版本" |
repositoryUrl | string | "https://github.com/Azure-Samples/nodejs-docs-hello-world"; | 外部 Git 存储库(可选) |
branch | string | “master” | 代码示例的默认分支 |
部署模板
将模板复制并粘贴到首选编辑器/IDE,并将文件保存到本地工作目录。
此处使用 Azure CLI 来部署模板。 还可以使用 Azure 门户、Azure PowerShell 和 REST API。 若要了解其他部署方法,请参阅 Bicep 部署命令。
以下代码将创建一个资源组、一个应用服务计划和一个 Web 应用。 已为你设置了默认资源组、应用服务计划和位置。 请将 <app-name>
替换为全局唯一的应用名称(有效字符是 a-z
、0-9
和 -
)。
打开一个在其中安装了 Azure CLI 的终端,运行以下代码,以在 Linux 上创建 Node.js 应用。
az group create --name myResourceGroup --location "chinaeast" &&
az deployment group create --resource-group myResourceGroup --template-file <path-to-template>
若要部署其他语言堆栈,请使用相应的值更新 linuxFxVersion
。 下面显示了示例。 要显示当前版本,请在本地 Shell 中运行以下命令:az webapp config show --resource-group myResourceGroup --name <app-name> --query linuxFxVersion
语言 | 示例: |
---|---|
.NET | linuxFxVersion="DOTNETCORE|3.0" |
PHP | linuxFxVersion="PHP|7.4" |
Node.js | linuxFxVersion="NODE|10.15" |
Java | linuxFxVersion="JAVA|1.8 |TOMCAT|9.0" |
Python | linuxFxVersion="PYTHON|3.8" |
验证部署
浏览到 http://<app_name>.chinacloudsites.cn/
并验证它是否已创建。
清理资源
不再需要资源组时,可将其删除。