应用服务概述

Azure 应用服务是一项基于 HTTP 的服务,用于托管 Web 应用程序、REST API 和移动后端 。 可以使用 .NET、NET Core、Java、Ruby、Node.js、PHP 或 Python 等偏好的语言进行开发。 在基于 Windows 和 Linux 的环境中,应用程序都可以轻松地运行和缩放。

应用服务不仅可将 Azure 的强大功能(例如安全性、负载均衡、自动缩放和自动管理)添加到应用程序。 还可以利用其 DevOps 功能,例如包管理、过渡环境、自定义域和 TLS/SSL 证书。

使用应用服务时,需要支付 Azure 计算资源的使用费。 使用的计算资源量由运行应用的应用服务计划确定。 有关详细信息,请参阅 Azure 应用服务计划概述

为何使用应用服务?

下面是应用服务的一些主要功能:

  • 多个语言和框架 - 应用服务针对 ASP.NET、ASP.NET Core、Java、Ruby、Node.js、PHP 或 Python 提供一流支持。
  • 托管生产环境 - 应用服务会自动修补并维护 OS 和语言框架。 将时间花在编写优秀应用上,让 Azure 来考虑平台问题。
  • 容器化和 Docker - 将应用 Docker 化并在应用服务中托管自定义 Windows 或 Linux 容器。 将多容器应用与 Docker Compose 一起运行。 直接将 Docker 技能迁移到应用服务。
  • 具有高可用性的全局缩放 - 以手动或自动方式进行增大扩大。 在 Azure.cn 的全国数据中心基础结构中的任意位置托管应用,并且应用服务 SLA 承诺高可用性。
  • 与 SaaS 平台和本地数据建立连接 - 从适用于企业系统(例如 SAP)的 50 多个连接器、SaaS 服务(例如 Salesforce)以及 Internet 服务中进行选择。 使用混合连接Azure 虚拟网络访问本地数据。
  • 安全性和合规性 - 应用服务符合 ISO、SOC 和 PCI的要求。 使用 Azure Active DirectoryMicrosoft 帐户对用户进行身份验证。 创建 IP 地址限制管理服务标识
  • 应用程序模板 - 从 Azure 市场的大量应用程序模板列表中进行选择,例如 WordPress、Joomla 和 Drupal。
  • Visual Studio 与 Visual Studio Code 集成 - Visual Studio 和 Visual Studio Code 中的专用工具可简化创建、部署和调试工作。
  • API 和移动功能 - 应用服务针对 RESTful API 方案提供统包式 CORS 支持,通过启用身份验证、脱机数据同步、推送通知等功能简化移动应用方案。
  • 无服务器代码 - 按需运行代码片段或脚本,无需显式预配或管理基础结构,并且只需为代码实际使用的计算时间付费(请参阅 Azure Functions)。

除了应用服务,Azure 还提供可用来托管网站和 Web 应用程序的其他服务。 大多数情况下,应用服务是最佳选择。 对于微服务体系结构,请考虑使用 Service Fabric。 如果需要更好地控制运行代码的 VM,请考虑使用 Azure 虚拟机

Linux 上的应用服务

应用服务也可以在 Linux 上为支持的应用堆栈本地托管 Web 应用。 它还可以运行自定义 Linux 容器(也称为用于容器的 Web 应用)。

内置语言和框架

Linux 上的应用服务支持许多特定于语言的内置映像。 只需部署代码。 支持的语言包括:Node.js、Java (JRE 8 & JRE 11)、PHP、Python、.NET Core 和 Ruby。 运行 az webapp list-runtimes --linux 查看最新语言和支持的版本。 如果内置映像中不支持应用程序所需的运行时,则可以使用自定义容器部署运行时。

过期运行时会定期从门户的“Web 应用创建和配置”边栏选项卡中删除。 当维护组织弃用这些运行时,或发现存在重大漏洞时,这些运行时将在门户中隐藏。 隐藏这些选项可指引客户使用最新的运行时,这样他们才最能成功。

在门户中隐藏过期运行时后,任何使用该版本的现有站点都将继续运行。 如果从应用服务平台完全删除了运行时,在删除前,Azure 订阅所有者将收到电子邮件通知。

如果需要使用门户上不再显示的过期运行时版本创建另一款 Web 应用,请参阅语言配置指南,获取有关如何获取站点运行时版本的说明。 可以使用 Azure CLI 创建另一个具有相同运行时的站点。 此外,还可以使用门户中的“Web 应用”边栏选项卡上的“导出模板”按钮,导出站点的 ARM 模板。 可重复使用此模板,向新站点部署相同的运行时和配置。

Debian 9 生命周期终结

2022 年 6 月 30 日,Debian 9(也称为“Stretch”)将进入生命周期终结 (EOL) 状态,这意味着,将不再提供安全修补程序和更新。 自 2022 年 6 月开始,将推出平台更新以提供 Debian 11(也称为“Bullseye”)的升级路径。 下面列出的运行时目前使用 Debian 9;如果你使用其中列出的某个运行时,请按照以下说明将站点升级到 Bullseye。

  • Python 3.8
  • Python 3.7
  • .NET 3.1
  • PHP 7.4

注意

为确保客户应用程序在安全且受支持的 Debian 发行版上运行,在 2023 年 2 月之后,仍在 Debian 9 (Stretch) 上运行的所有 Linux Web 应用将自动升级到 Debian 11 (Bullseye)。

验证平台更新

首先,验证包含 Debian 11 的新平台更新是否已进入你的站点。

  1. 导航到 Web 应用的 SCM 站点(也称为 Kudu 站点)。 可以通过 http://<your-site-name>.scm.chinacloudsites.cn/Env 浏览到此站点(请将 \<your-site-name> 替换为你的 Web 应用名称)。
  2. 在“环境变量”下,搜索 PLATFORM_VERSION。 此环境变量的值是 Web 应用的当前平台版本。
  3. 如果 PLATFORM_VERSION 的值以“99”或更大的数字开头,则表示站点已收到最新平台更新,你可以继续阅读下面的部分。 如果该值不是显示为“99”或更大数字,则表示站点尚未收到最新平台更新 - 请在今后再次检查。

接下来,在将更改应用于生产环境之前,请先创建一个部署槽,以测试你的应用程序是否在 Debian 11 上正常工作。

  1. 创建一个部署槽(如果尚未创建),并克隆生产槽中的设置。 使用部署槽可以安全地测试对应用程序所做的更改(例如升级到 Debian 11),并在检查后将这些更改交换到生产环境。

  2. 若要升级到 Debian 11 (Bullseye),请在部署槽上创建名为 ORYX_DEFAULT_OS、值为 bullseye 的应用设置。

    az webapp config appsettings set -g MyResourceGroup -n MyUniqueApp --settings ORYX_DEFAULT_OS=bullseye
    
  3. 使用所选的工具(VS Code、Azure CLI、GitHub Actions 等)将应用程序部署到部署槽

  4. 确认应用程序在部署槽中按预期方式运行。

  5. 交换生产槽和过渡槽。 这会将 APPSETTING_DEFAULT_OS=bullseye 应用设置应用到生产环境。

  6. 如果不再使用部署槽,请将其删除。

资源

限制

注意

Linux 和 Windows 应用服务计划现在可以共享资源组。 此限制已从平台中解除,现有资源组已更新以支持这一点。

  • 共享定价层不支持 Linux 上的应用服务。
  • Azure 门户仅显示当前可用于 Linux 应用的功能。 功能启用后,它们在门户上被激活。
  • 部署到内置映像时,代码和内容将被分配一个 Web 内容存储卷,由 Azure 存储提供支持。 与容器文件系统的延迟相比,此卷的磁盘延迟更高,并且变化更大。 自定义容器选项将文件放在容器文件系统而非内容卷中,因此可能更适用于需要频繁以只读方式访问内容文件的应用。

后续步骤

创建第一个 Web 应用。