在本快速入门中,你将使用 Azure Cloud 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 a unique string for the web app name
param sku string = 'F1' // Tier of the App Service plan
param linuxFxVersion string = 'node|20-lts' // Runtime stack of the 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@2023-12-01' = {
name: appServicePlanName
location: location
properties: {
reserved: true
}
sku: {
name: sku
}
kind: 'linux'
}
resource appService 'Microsoft.Web/sites@2023-12-01' = {
name: webSiteName
location: location
properties: {
serverFarmId: appServicePlan.id
siteConfig: {
linuxFxVersion: linuxFxVersion
}
}
}
resource srcControls 'Microsoft.Web/sites/sourcecontrols@2023-12-01' = {
parent: 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> |
应用名称。 有关详细信息,请参阅 ARM 模板的字符串函数。 |
location |
字符串 | resourceGroup().location |
应用区域。 有关详细信息,请参阅 ARM 模板的资源函数。 |
sku |
字符串 | F1 |
实例大小。 |
linuxFxVersion |
字符串 | NODE |20-LTS |
编程语言堆栈和版本。 |
repositoryUrl |
字符串 | https://github.com/Azure-Samples/nodejs-docs-hello-world |
外部 Git 存储库(可选)。 |
branch |
字符串 | master |
代码示例的默认分支。 |
部署模板
将模板复制并粘贴到您首选的编辑器或 IDE 中的空白文件中。 然后将该文件保存到本地工作目录。 使用 .bicep 文件扩展名。
在这里,使用 Azure CLI 部署模板。 还可以使用 Azure 门户、Azure PowerShell 或 REST API。 若要了解其他部署方法,请参阅 使用 Azure CLI 部署 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
。 下表列出了示例。 若要显示当前版本,请在 Cloud 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" |
爪哇岛 | linuxFxVersion="JAVA|1.8 |TOMCAT|9.0" |
Python语言 | linuxFxVersion="PYTHON|3.8" |
本快速入门使用以下模板。 它在 Windows 上部署应用服务计划和应用服务应用。 它还从 Azure 示例存储库部署示例 .NET Hello World 应用。
param webAppName string = uniqueString(resourceGroup().id) // Generate a unique name for the web app
param location string = resourceGroup().location // Location for all resources
param sku string = 'P1V3' // Tier of the App Service plan
param dockerContainerImage string = 'mcr.microsoft.com/dotnet/framework/samples:aspnetapp' // Sample .NET app
var appServicePlanName = toLower('ASP-${webAppName}') // Generate a unique name for the App Service plan
resource appServicePlan 'Microsoft.Web/serverfarms@2021-02-01' = {
name: appServicePlanName
location: location
sku: {
name: sku
}
properties: {
hyperV: true
}
}
resource webApp 'Microsoft.Web/sites@2024-04-01' = {
name: webAppName
location: location
kind:'app,container,windows'
properties: {
serverFarmId: appServicePlan.id
siteConfig: {
windowsFxVersion: 'DOCKER|${dockerContainerImage}'
appCommandLine: ''
alwaysOn: true
minTlsVersion: '1.3'
}
httpsOnly: true
}
}
该模板定义两个 Azure 资源:
- Microsoft.Web/serverfarms:创建应用服务计划。
- Microsoft.Web/sites:创建应用服务应用。
该模板包含以下为方便起见预定义的参数:
参数 | 类型 | 默认值 | DESCRIPTION |
---|---|---|---|
webAppName |
字符串 | webApp-<uniqueString> |
应用名称。 有关详细信息,请参阅 ARM 模板的字符串函数。 |
location |
字符串 | resourceGroup().location |
应用区域。 有关详细信息,请参阅 ARM 模板的资源函数。 |
sku |
字符串 | P1V3 |
实例大小 |
appServicePlanName |
字符串 | toLower('ASP-${webAppName}') |
应用服务计划名称 |
dockerContainerImage |
字符串 | mcr.microsoft.com/dotnet/framework/samples:aspnetapp |
容器映像示例 |
部署模板
将模板复制并粘贴到首选编辑器或 IDE。 然后将该文件保存到本地工作目录。 使用 .bicep 文件扩展名。
在这里,使用 Azure CLI 部署模板。 还可以使用 Azure 门户、Azure PowerShell 或 REST API。 若要了解其他部署方法,请参阅 使用 Azure CLI 部署 Bicep 文件。
以下代码将创建一个资源组、一个应用服务计划和一个 Web 应用。 系统会为你设置默认资源组、应用服务计划和位置。 将 <app-name>
替换为一个全局唯一的应用名称。 有效字符是 a-z
, 0-9
和连字符(-
)。
打开安装 Azure CLI 的终端。 运行此代码以创建 .NET 应用:
az group create --name myResourceGroup --location "southchinanorth2" &&
az deployment group create --resource-group myResourceGroup --template-file <path-to-template>
验证部署
浏览到应用程序的 URL 并验证您是否创建了该应用程序。
清理资源
如果不再需要为本快速入门创建的资源, 请删除资源组。