Skip to content
返回云服务

Azure 应用服务

全托管 PaaS 平台,用于托管 Web 应用和 REST API,支持自动缩放、部署槽和内置 CI/CD。

Azure进阶

为什么

App Service 免除了操作系统补丁、负载均衡器配置和 TLS 证书管理,让团队更快交付 Web 应用。它开箱即用支持 .NET、Node.js、Python、Java、PHP 运行时,并与 Azure Monitor、Key Vault、AD 集成,提供企业级安全。

何时使用

适用于业务线 Web 应用、内部门户和需要 PaaS 简化运维的 REST API。不想管理操作系统时优于虚拟机;有长时间运行或常驻工作负载且流量可预测时优于 Functions。

如何做

1. 创建 App Service 计划(定义定价层、区域、操作系统)。 2. 在计划上创建 App Service 并选择运行时栈。 3. 配置部署源:Azure DevOps、GitHub Actions 或本地 Git。 4. 设置应用设置(连接字符串、通过 Key Vault 引用的密钥)。 5. 启用部署槽(staging)实现零停机交换。 6. 在计划上配置自动缩放规则。 7. 部署代码并在 https://<app-name>.azurewebsites.net 验证。 ```bash az appservice plan create --name myPlan --resource-group rg --sku B1 --is-linux az webapp create --name myapp --plan myPlan --resource-group rg --runtime "NODE:18-lts" az webapp config appsettings set --name myapp --resource-group rg --settings DB_URL="\${DB_URL}" ```

示例

GitHub Actions 工作流,将 Node.js 应用部署到 staging 槽,然后交换到生产环境: ```yaml # .github/workflows/deploy.yml on: { push: { branches: [main] } } jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: azure/login@v1 with: { creds: ${{ secrets.AZURE_CREDS }} } - uses: azure/webapps-deploy@v3 with: app-name: myapp slot-name: staging package: . - run: az webapp deployment slot swap --name myapp --slot staging --resource-group rg ```

常见问题

  • ⚠本地正常但在 Azure 上报 'module not found' —— 通常是本地与 --runtime 设置的 Node.js 版本不一致。
  • ⚠Free/F1 层空闲 20 分钟后冷启动;升级到 B1 或启用 Always On 保持应用常驻。
  • ⚠部署槽交换失败,因为应用设置未标记为槽粘性('deployment slot setting'),导致连接字符串指向错误数据库。

最佳实践

  • ✓在应用设置中使用 Key Vault 引用(@Microsoft.KeyVault(...))而非直接粘贴密钥,使密钥可轮换而无需重新部署。
  • ✓将连接字符串和 API 密钥设为槽粘性,避免交换时生产环境意外指向 staging 数据库。
  • ✓从第一天起就启用 Application Insights,免费获得请求追踪、依赖关系图和故障分析。

常见问题解答

什么是Azure 应用服务?它解决什么问题?

全托管 PaaS 平台,用于托管 Web 应用和 REST API,支持自动缩放、部署槽和内置 CI/CD。 它可帮助开发者在不自建基础设施的前提下完成部署、存储与扩展,是云服务选型的核心参考。

如何在 5 分钟内上手Azure 应用服务?

两步即可跑通:① 创建 App Service 计划(定义定价层、区域、操作系统)。;② 在计划上创建 App Service 并选择运行时栈。。建议先用免费套餐验证流程,再接入生产环境。

Azure 应用服务 最容易踩的坑是什么?

最高频的问题是:本地正常但在 Azure 上报 'module not found' —— 通常是本地与 --runtime 设置的 Node.js 版本不一致。。建议在上线前用 checklist 逐项核对,并在 CI 中加入策略与配置扫描。

Azure 应用服务 的最佳实践有哪些?

Azure 应用服务 的最佳实践包括:在应用设置中使用 Key Vault 引用(@Microsoft.KeyVault(...))而非直接粘贴密钥,使密钥可轮换而无需重新部署。;将连接字符串和 API 密钥设为槽粘性,避免交换时生产环境意外指向 staging 数据库。;从第一天起就启用 Application Insights,免费获得请求追踪、依赖关系图和故障分析。。其中首条「在应用设置中使用 Key Vault 引用(@Microsoft.KeyVault(...))而非直接粘贴密钥,使密钥可轮换而无需重新部署。」应作为团队默认规范写入 IaC 模板。

Azure 应用服务 如何控制成本与避免账单意外?

三招防超支:① 为所有资源打 env/team 标签并启用账单告警;② 用预算阈值触发 Slack/邮件通知;③ 定期用 Cost Explorer 审查闲置资源并清理。Azure 应用服务 多数提供免费套餐,先在免费额度内验证再放量。