创建应用服务计划和 Web 应用
预配应用服务计划,了解 SKU 层级,并使用持续部署从 ZIP 文件或 GitHub 存储库部署 Web 应用程序。
创建应用服务计划和 Web 应用 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
Azure App Service 是什么
Azure App Service 是一种完全托管的平台即服务(PaaS),用于托管 Web 应用、REST API 和移动后端。您只需部署代码,Azure 会负责底层基础结构的 OS 修补、负载均衡和自动缩放。App Service 支持 .NET、Node.js、Python、Java、PHP、Ruby 以及自定义容器,是 Azure 中功能最全面的计算服务之一。
App Service 计划:计费单位
App Service 计划定义分配给应用的区域、OS(Windows 或 Linux)和计算资源(CPU、RAM)。您需要为计划付费,而不是为单个应用付费;多个应用可以共享同一计划,且不会产生额外费用。计划的 SKU 层级决定部署槽位数量、自动缩放功能和 VNet 集成支持等功能。
# Create an App Service Plan (Linux, Standard S1 tier)
az appservice plan create \
--name MyAppServicePlan \
--resource-group MyRG \
--location eastus \
--sku S1 \
--is-linuxApp Service 计划 SKU 层级
App Service 计划提供多个层级,功能和费用逐级增加。Free (F1) 和 Shared (D1) 运行在共享基础结构上,仅供开发使用。Basic (B1-B3) 提供专用计算资源,但不支持自动缩放或部署槽位。Standard (S1-S3) 增加了自动缩放和 5 个部署槽位。Premium (P1-P3v3) 提供更多计算资源和 VNet 集成。Isolated (I1-I3) 运行在私有专用环境中。
# App Service Plan tiers (ordered by capability)
# Free: F1 — shared, 60 min/day compute
# Shared: D1 — shared, custom domain support
# Basic: B1, B2, B3 — dedicated, no autoscale
# Standard: S1, S2, S3 — autoscale, 5 slots
# Premium: P1v3, P2v3, P3v3 — VNet integration
# Isolated: I1v2, I2v2 — App Service Environment (ASE)创建 Web 应用
Web 应用是在 App Service 计划中托管的独立应用。每个 Web 应用都会获得一个格式为 <appname>.azurewebsites.net 的唯一默认主机名。创建应用时需要指定运行时堆栈(例如 NODE:18-lts 或 DOTNET:7.0),但之后可以更新,无需重新部署。
# Create a Node.js Web App on the Linux plan
az webapp create \
--name MyUniqueWebApp \
--resource-group MyRG \
--plan MyAppServicePlan \
--runtime 'NODE:18-lts'
# Access the app
# https://MyUniqueWebApp.azurewebsites.net将代码部署到 App Service
App Service 支持多种部署方法。ZIP 部署最简单:将应用打包并推送 ZIP 文件。Git 部署连接到 Git 存储库,并在推送时进行构建。GitHub Actions 和 Azure Pipelines 是推荐的 CI/CD 集成方式。您还可以从 Azure 容器注册表或任何公共注册表部署 Docker 容器映像。
# Deploy a ZIP package
zip -r app.zip . --exclude '.git/*' --exclude 'node_modules/*'
az webapp deploy \
--name MyUniqueWebApp \
--resource-group MyRG \
--src-path app.zip
# Configure deployment from GitHub
az webapp deployment source config \
--name MyUniqueWebApp \
--resource-group MyRG \
--repo-url https://github.com/myorg/myrepo \
--branch main \
--manual-integration应用设置和环境变量
App Service 会将应用设置作为环境变量提供给应用代码。这是注入数据库连接字符串、API 密钥和功能标志等配置的推荐方式,无需将这些配置硬编码。设置在静态存储时会加密,并且可以使用 Key Vault 引用字符串引用Azure Key Vault 机密,从而无需在门户中存储机密。
# Set application settings
az webapp config appsettings set \
--name MyUniqueWebApp \
--resource-group MyRG \
--settings \
NODE_ENV=production \
DATABASE_URL='@Microsoft.KeyVault(SecretUri=https://mykv.vault.azure.net/secrets/dburl/)'
# View current settings
az webapp config appsettings list \
--name MyUniqueWebApp \
--resource-group MyRGAlways On 和运行状况检查
默认情况下,App Service 会在应用一段时间未活动后将其卸载。启用 Always On(Standard 层级及更高层级)可使应用始终保持加载状态,这对于需要快速冷启动响应的后台作业和 API 十分重要。运行状况检查功能会向您定义的 URL 发送请求,并将运行状况不佳的实例从负载均衡器中移除,从而实现自动替换实例。
# Enable Always On
az webapp config set \
--name MyUniqueWebApp \
--resource-group MyRG \
--always-on true
# Configure health check endpoint
az webapp config set \
--name MyUniqueWebApp \
--resource-group MyRG \
--generic-configurations '{"healthCheckPath": "/health"}'App Service 日志和诊断
App Service 提供内置日志记录功能,用于记录应用日志(代码的 stdout/stderr)、Web 服务器日志(HTTP 访问日志)和部署日志。您可以使用 Azure CLI 实时流式传输日志,或在 Blob Storage 中启用日志存储。启用 Application Insights,即可对完整请求生命周期进行分布式跟踪和性能监控。
# Enable application logging to file system
az webapp log config \
--name MyUniqueWebApp \
--resource-group MyRG \
--application-logging filesystem \
--level information
# Tail logs in real time
az webapp log tail \
--name MyUniqueWebApp \
--resource-group MyRG手动扩展 App Service
您可以将 App Service 纵向扩展(升级到 CPU/RAM 更多的更大 SKU),也可以横向扩展(添加更多实例)。手动横向扩展会立即增加实例数量,并且从基本层开始即可使用。纵向扩展到更高层级可以启用部署 slot 和 VNet 集成等额外功能,且不会中断服务——更改 SKU 期间应用会短暂重启。
# Scale out: increase instance count to 3
az appservice plan update \
--name MyAppServicePlan \
--resource-group MyRG \
--number-of-workers 3
# Scale up: upgrade from S1 to P2v3
az appservice plan update \
--name MyAppServicePlan \
--resource-group MyRG \
--sku P2V3在 Azure 门户中进行监视
App Service 的概述窗格会显示请求、响应时间、传入/传出数据和错误率的实时图表。诊断并解决问题窗格会针对常见问题运行自动检测器。指标选项卡允许您固定自定义图表并设置警报规则。与应用程序洞察集成后,您可以跨整个应用程序技术栈进行端到端请求跟踪并查看依赖关系图。
# View recent HTTP metrics via CLI
az monitor metrics list \
--resource '/subscriptions/<sub>/resourceGroups/MyRG/providers/Microsoft.Web/sites/MyUniqueWebApp' \
--metric 'Requests,Http5xx,AverageResponseTime' \
--interval PT1M \
--start-time 2025-01-01T00:00:00Z \
--end-time 2025-01-01T01:00:00ZApp Service 定价策略
当多个应用具有兼容的资源需求时,可以将多个应用整合到单个计划中,并在开发和测试环境中使用免费层,还可以为可预测的生产工作负载采用Azure 预留(承诺 1 年或 3 年),从而最多节省 55% 的费用。自动缩放(下一课将介绍)可以确保您不会在非高峰时段为闲置实例付费。
快速检查
请测试您对本课 Microsoft Azure 基础知识(AZ-900)概念的理解。
课程回顾
本课介绍了以下内容:App Service 计划定义 Web 应用的计算层级和计费单位;您可以通过 ZIP、Git 或持续集成/持续交付管道部署代码;应用程序设置会将配置注入为环境变量,而无需将机密信息硬编码。接下来我们将学习部署 slot,以实现零停机发布。
常见问题解答
「创建应用服务计划和 Web 应用」课时是免费的吗?
是的 — 「创建应用服务计划和 Web 应用」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「创建应用服务计划和 Web 应用」这节课中我会学到什么?
预配应用服务计划,了解 SKU 层级,并使用持续部署从 ZIP 文件或 GitHub 存储库部署 Web 应用程序。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「创建应用服务计划和 Web 应用」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 创建应用服务计划和 Web 应用
- 部署槽位和交换
- 自动缩放和自定义域
- 应用服务身份验证和网络