通过


你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

在App Service Environment中托管 Web 应用

应用服务环境是一个与 Azure 虚拟网络实例和子网集成的 Azure 应用服务单一租户的部署。 在此方案中,可以在独立环境中托管 Web 应用,在该环境中,你是系统的唯一用户。 部署的应用受应用于App Service Environment虚拟网络子网的网络功能的约束。 Web 应用无需其他功能即可访问网络功能。

在App Service Environment中创建 Web 应用时,使用略有不同的方法遵循标准创建过程:

  • 对于 Web 应用区域,与其选择地理位置作为应用部署地点,不如选择应用服务环境。
  • 对于应用服务环境中的新应用服务计划,选择独立 v2 定价层。

本文介绍如何按照Azure门户中的过程在App Service Environment中创建应用服务 Web 应用。

先决条件

  • 应用服务环境 若要创建新环境,请按照 Quickstart:创建 App Service Environment 中的步骤作。

  • 创建应用时,请记住,Windows和 Linux 应用可以位于同一App Service Environment中,但它们不能位于同一应用服务计划中。

创建 Web 应用

在Azure门户中,在App Service Environment中创建 Web 应用:

  1. 登录到 Azure 门户

  2. 选择“ 创建资源”,在资源列表中选择 Web 应用 ,然后选择“ 创建”。

    “ 创建 Web 应用 ”窗格将打开到“ 基本 ”选项卡:

    截图显示如何在 Azure portal 的 App Service Environment 中创建 Web 应用。

  3. 在“ 基本 ”选项卡中,选择 你的订阅。

  4. 选择现有 资源组 ,或为新实例选择 “新建 ”。

  5. 输入新 Web 应用 的名称 。

    如果之前在App Service Environment中选择了应用服务计划,则应用的域名反映App Service Environment的域名。 例如,对于应用 zava-hosted-web-app 和 App Service Environment zava-app-service-envrionment-1,应用的域名为 zava-hosted-web-app-zava-app-service-envrionment-1.appserviceenvironment.net

  6. 根据应用要求配置发布、运行时堆栈和操作系统设置。

  7. 对于 区域 设置,请使用下拉列表进行选择。

    • 若要使用现有App Service Environment,请在下拉列表中的“应用服务环境 v3 部分下选择环境。

    • 若要创建新的App Service Environment,请在下拉列表中的 Regions 节下选择一个区域。 选择区域后,创建 Web 应用窗格会添加一个分区,其中包含新App Service Environment的配置选项。 您将在本过程的后续步骤中完成新环境的配置。

    可以筛选 区域 列表,以显示环境和区域的列表中的匹配项。 该示例筛选列表以匹配 加拿大。

    截图显示如何将 App Service Environment 选择为应用区域,并对匹配“Canada”的项目进行筛选。

  8. 对于 “定价计划 ”选项,请指定应用服务计划名称和计划定价层。

    • 对于应用服务 Linux 计划,请使用下拉列表并选择现有计划,或为新计划 选择“新建 ”。

    • 对于定价计划层,如果你选择了现有计划,该值将填充当前计划的定价层。

      如果要创建新的应用服务计划,请使用下拉列表并选择层大小。 此列表显示 热门计划。 唯一可以为应用选择的 SKU 是专用 v2 定价 SKU。

      可以选择 “浏览定价计划 ”来比较计划功能。 下图显示了定价计划和功能的示例。 在 “选择应用服务定价计划 ”窗格中,选择列表中的计划,然后选择 “选择”。

      显示 Azure 门户中应用服务计划定价层、功能及其硬件的截图。

      创建新的应用服务计划大约需要 20 分钟。

  9. 如果您在创建新的应用服务计划时要同时创建新的应用服务环境,请配置以下 App Service Environment 设置:

    • 输入应用服务环境名称。

    • 选择 虚拟 IP 类型 (内部或外部)。 有关此设置的详细信息,请参阅 规划应用的访问级别。

    截图,展示如何在 Azure 门户中配置新的 App Service Environment。

  10. 切换到“创建 Web 应用”窗格中的“网络”选项卡,并配置设置。

    • 如果您正在创建新的应用服务环境:

      • 标识要用于部署的 Virtual NetworkSubnet。 可以选择现有资源或创建新实例。

      • 配置 DNS 设置。 如果希望系统在App Service Environment的虚拟网络中配置 DNS,请选择Azure DNS专用区域

        如果想要手动配置 DNS,请选择“ 手动”。 部署完成后,可以修改配置以使用自己的 DNS 服务器或指定Azure DNS专用区域

      • 配置入站 IP 地址设置。 选择 “自动 ”(子网中的系统分配的 IP 地址)或 “手动 ”(输入首选 IP 地址)。

    • 如果您使用现有的 App Service Environment 进行部署,请根据需要配置 虚拟网络集成选项。

  11. (可选)根据应用要求,在 “创建 Web 应用 ”窗格中的剩余选项卡上配置选项。 默认情况下,大多数设置处于禁用状态。

    • Deployment:配置持续部署、身份验证和GitHub设置。
    • Monitor + Secure:使用 Azure Monitor Application Insights 或 Microsoft Defender for Cloud。
    • 标记:定义应用的标记。

    如果要创建新的App Service Environment,请确认Hosting选项卡上的设置。

  12. 选择“查看 + 创建”。 确认 Web 应用配置正确,然后选择“ 创建”。

查看缩放选项

每个应用服务应用在应用服务计划中运行。 应用服务环境保存应用服务计划,应用服务计划保存应用。 缩放某个应用时,也会缩放应用服务计划,以及同一计划中的所有应用。

缩放应用服务计划时,会自动添加所需的基础结构。 请注意,在添加基础结构时,缩放操作存在时间延迟。 例如,当你缩放应用服务计划时,如果正在对相同操作系统和大小执行另一个缩放操作,则请求的缩放操作可能会延迟几分钟才开始。

一种大小和操作系统的缩放操作不会影响其他大小和操作系统组合的缩放。 例如,如果你正在缩放 Windows I2v2 应用服务计划,缩放为 Windows I3v2 应用服务计划会立即开始。 通常情况下,缩放操作需要不到 15 分钟,但最多可能需要 45 分钟。

在多租户应用服务场景中,可以实现快速缩放,因为共享资源池随时可以提供支持。 App Service Environment是单租户服务,因此没有共享缓冲区,并且会根据需要分配资源。

规划应用的访问级别

在"应用服务环境"中具有内部虚拟 IP(VIP)的场景下,创建应用时使用的域后缀是<app-service-environment-name>.appserviceenvironment.net。 对于承载名为 zava-environment 的应用的名为 hosted-web-app 的App Service Environment,可以使用以下 URL 访问环境:

  • hosted-web-app.zava-environment.appserviceenvironment.net
  • hosted-web-app.scm.zava-environment.appserviceenvironment.net

托管在使用内部 VIP 的应用服务环境上的应用只有在你位于同一虚拟网络或连接到该虚拟网络时才可访问。 同样,只有在位于同一虚拟网络中或连接到该虚拟网络时,才能发布。

在一个具有外部 VIP 的 App Service Environment 中,用于创建应用的域后缀是<app-service-environment-name>.p.azurewebsites.net。 如果名为 hosted-web-app 的应用服务环境托管名为 zava-environment 的应用,你可以使用以下 URL 访问环境:

  • hosted-web-app.zava-environment.p.azurewebsites.net
  • hosted-web-app.scm.zava-environment.p.azurewebsites.net

使用 一个 URL 访问 Kudu 控制台,或使用 Web 部署工具发布应用。 有关更多信息,请参阅 Kudu 服务适用于 Azure App Service。 Kudu 控制台提供 Web UI,可在其中进行调试、上传文件、编辑文件。

配置 DNS

如果您的应用服务环境是使用外部 VIP 创建的,则应用会自动放入公共 DNS 中。 如果您的 App Service Environment 是使用内部虚拟 IP(VIP)创建的,则可能需要手动配置 DNS。

  • 创建您的应用时,如果选择了Azure DNS专用区域的自动配置,则会在您的 App Service Environment 的虚拟网络中为您配置 DNS。

  • 如果选择手动配置 DNS,则需要使用自己的 DNS 服务器或配置Azure DNS专用区域,如以下部分所述。

可以在Azure门户中找到App Service Environment的 IP 地址:

  1. 在 Azure 门户中,转到您的应用的 App Service Environment (应用服务环境)的 Overview 页。

  2. 在左侧菜单中,选择 “设置IP 地址”。

“ IP 地址 ”页显示 入站 和 出站 IP 地址:

截图显示如何在 Azure 门户中查找 App Service Environment 的入站 IP 地址。

使用自己的 DNS 服务器

如果要使用自己的 DNS 服务器,请添加以下记录:

  1. 在 DNS 服务器中,创建DNS 区域,其名称为 App Service Environment,<app-service-environment-name>.appserviceenvironment.net。 此过程的后续步骤将此区域称为 区域主区域。

  2. zone-main 中创建 A 记录,将星号 *(通配符表示法)指向应用服务环境使用的入站 IP 地址。

  3. zone-main 中创建 A 记录,将 @ 符号表示法指向应用服务环境使用的入站 IP 地址。

  4. 在 zone-main 中创建一个名为“.”的区域。

  5. scm 区域中创建 A 记录,将星号 *(通配符表示法)指向应用服务环境使用的入站地址。

在Azure DNS专用区域中配置 DNS

在Azure DNS专用区域中配置 DNS:

  1. 创建 Azure Private DNS 区域资源。 使用应用服务环境的名称 <app-service-environment-name>.appserviceenvironment.net。 此过程的后续步骤将此区域称为 区域主区域。

  2. 在 zone-main 中创建 记录,将星号 (通配符表示法)指向入站 IP 地址。

  3. 在 zone-main 区域中创建一条记录,该记录将 “@” 符号表示法指向入站 IP 地址。

  4. 在区域主体中创建一条记录,该记录将区域表示法指向入站 IP 地址。

App Service Environment的默认域后缀的 DNS 设置不会将应用的访问权限限制为仅你指定的值。 可以在App Service Environment中设置自定义域名,而无需对应用进行任何验证。 如果以后创建一个名为 的区域,则可以将其指向入站 IP 地址。

自定义域名适用于应用请求。 如果自定义域后缀证书包含 scm 的通配符 SAN,则自定义域名也适用于 站点。 可以创建记录 并将其指向入站 IP 地址。

发布 Web 应用

可以通过以下任一方法发布 Web 应用:

  • Web 部署
  • 持续集成 (CI)
  • 在 Kudu 控制台中进行拖放操作
  • 集成开发环境(IDE),例如 Visual Studio、Eclipse 或 IntelliJ IDEA

对于内部 VIP 应用服务环境,发布终结点仅可通过入站地址访问。 如果没有对入站 IP 地址的网络访问权限,则不能在该App Service Environment上发布任何应用。 IDE 还必须能够访问应用服务环境上的入站地址,以便于直接发布到它。

如果没有其他更改,基于 Internet 的 CI 系统(如GitHub和Azure DevOps)不适用于内部 VIP App Service Environment。 发布终结点无法通过 Internet 访问。 你可以通过在虚拟网络中安装自托管发布代理,启用从 Azure DevOps 发布到内部 VIP 应用服务环境。

为 Web 应用配置存储

您的应用服务环境提供 1 TB 的存储空间,供所有应用程序使用。 “独立”定价 SKU 中的一个应用服务计划限制为 250 GB。 在App Service Environment中,每个应用服务计划添加 250 GB 的存储,最大限制为 1-TB。 应用服务计划数可能超过 4 个,但没有超出 1 TB 限制的其他存储。

监视应用服务环境

Microsoft监视和管理 App Service Environment v3 中的平台基础结构,并根据需要进行缩放。 作为客户,应仅监视应用服务计划和单个正在运行的应用,并采取适当的措施。 可以 配置用于监视的诊断设置 以支持你的方案。

在Azure门户中,可以看到App Service Environment的一些指标。 但是,这些指标适用于 App Service Environment v1 和两个资源。 App Service Environment v3 资源的指标不可见。 对于早期版本的 App Service Environment,请查看 App Service Environment 概述中的功能差异。

检查日志记录情景和消息

可以与Azure Monitor集成,将日志发送到Azure Storage、Azure Event Hubs或Azure Monitor日志。

下表显示了可以记录的方案和消息。

应用服务环境状态 消息
子网几乎已满 The specified App Service Environment is in a subnet that is almost out of space. There are {0} remaining addresses. Once these addresses are exhausted, the App Service Environment will not be able to scale.
环境接近实例限制 The specified App Service Environment is approaching the total instance limit of the App Service Environment. It currently contains {0} App Service Plan instances of a maximum 200 instances.
环境已暂停 The specified App Service Environment is suspended. The App Service Environment suspension may be due to an account shortfall or an invalid virtual network configuration. Resolve the root cause and resume the App Service Environment to continue serving traffic.
升级已启动 A platform upgrade to the specified App Service Environment has begun. Expect delays in scaling operations.
升级完成 A platform upgrade to the specified App Service Environment has finished.
创建应用服务计划 消息
Started An App Service plan ({0}) creation has started. Desired state: {1} I{2}v2 workers.
完成 An App Service plan ({0}) creation has finished. Current state: {1} I{2}v2 workers.
Failed An App Service plan ({0}) creation has failed. This may be due to the App Service Environment operating at peak number of instances, or run out of subnet addresses.
缩放操作 消息
Started An App Service plan ({0}) has begun scaling. Current state: {1} I(2)v2. Desired state: {3} I{4}v2 workers.
完成 An App Service plan ({0}) has finished scaling. Current state: {1} I{2}v2 workers.
中断 An App Service plan ({0}) was interrupted while scaling. Previous desired state: {1} I{2}v2 workers. New desired state: {3} I{4}v2 workers.
Failed An App Service plan ({0}) has failed to scale. Current state: {1} I{2}v2 workers.

启用诊断日志记录

若要为 Web 应用启用诊断日志记录,请执行以下步骤:

  1. 在 Azure 门户中,转到 Web 应用的 Overview 页。

  2. 在左侧菜单中,选择“ 监视诊断设置”。

  3. 在 “诊断设置 ”页中,选择“ 添加诊断设置”。

    ‘c1’‘c0’‘sb0’此屏幕截图显示如何在 Azure 门户中为应用服务环境选择“添加诊断设置”。’/sb0’‘/c0’‘/c1’

  4. 在 “诊断设置 ”窗格中,为日志集成提供 诊断设置名称 ,例如 。

  5. 选择并配置首选 日志。 对于此示例,请选择 “应用服务平台日志”。

  6. 选择首选 目标。

  7. 如果希望诊断包含指标数据,请选择 “指标”。

  8. 选择“保存”。

“ 诊断设置” 页将刷新以显示添加到列表中的新日志。

如果与 Azure Monitor Logs 集成,可以通过从 App Service Environment 门户选择 Logs,然后针对 AppServicePlatformLogs1 创建查询来查看日志。 仅当应用服务环境具有触发日志的事件时才会发出日志。 如果 App Service Environment 没有此类事件,则不会收集任何日志。 若要快速查看日志示例,请使用应用服务计划执行缩放操作。 然后,可以针对 AppServicePlatformLogs 运行查询以查看生成的日志。

创建警报规则

若要针对 Web 应用日志创建警报,请按照 创建或编辑日志搜索警报规则中的详细说明 - Azure Monitor

下面是为托管 Web 应用创建警报规则的基本步骤:

  1. 在 Azure 门户中,转到App Service Environment的 Monitoring>Alerts 页,然后选择创建警报规则

  2. Scope 选项卡中,确认已将 Scope 级别设置为订阅,并将 resource 设置为 Azure Monitor Logs 工作区。

  3. 在 “条件 ”选项卡中,指定规则的查询并配置条件。

    1. 将 Signal 名称 设置为使用 自定义日志搜索。 此时会打开 “日志 ”窗格。

    2. 在“ 日志 ”窗格中,为警报生成查询。 例如,。 还可以从预定义的查询开始,并根据需要进行修改。 保存查询。

    3. 为规则配置其他条件,例如警报逻辑组中的阈值。

  4. 在“ 详细信息 ”选项卡中,提供有关规则的详细信息:

    • 对于项目详情,请确认“订阅”和“资源组”已按预期设置。

    • 对于 警报规则详细信息,请选择规则 “严重性 ”和 “区域”,然后输入新警报 的名称 。

    • 对于日志查询 标识,请选择运行日志查询时要使用的标识。

    • (可选)根据需要配置 高级选项 。

  5. (可选)在“ 创建警报规则 ”窗格中的剩余选项卡上配置选项:

    • 操作:添加或创建操作组。 你可以在操作组中定义对警报的响应,如发送电子邮件或短信。

    • 标记:定义 Web 应用警报规则的标记。

  6. 选择“查看 + 创建”。 确认警报配置正确,然后选择“ 创建”。

配置内部加密

在 App Service Environment 系统内,您无法看到其内部组件或通信。 为了实现更高的吞吐量,默认情况下,在内部组件之间不启用加密。 系统是安全的,因为流量无法被监视和访问。

如果您有数据路径完整加密的合规性要求,可以启用该功能:

  1. 在 Azure 门户中,转到App Service Environment的 Overview 页。

  2. 在左侧菜单中,选择 “设置配置”。

  3. App Service Environment配置窗格中,选中Internal encryption复选框,然后选择Apply

&&&&截图显示如何在 Azure 门户中启用 App Service Environment 的内部加密。&&&

此选项会加密内部网络流量、页文件以及工作节点磁盘。

重要

启用加密可能会影响系统性能。 应用服务环境在更改完全传播之前处于不稳定状态。 更改的完整传播可能需要几个小时才能完成,具体取决于要更新的实例数。

避免在使用App Service Environment时启用加密。 若要在环境使用时启用加密,请在作完成之前将流量转移到备份。

配置升级首选项

如果有多个应用服务环境,则可能需要在其他环境之前升级一个或多个应用服务环境。

对于每个环境,请配置 升级首选项 设置:

  1. 在Azure门户中,转到App Service Environment的 Overview 页。

  2. 在左侧菜单中,选择 “设置配置”。

  3. App Service Environment配置窗格中,选择升级的首选项。

    • Automatic:自动根据您选择的选项升级“App Service Environment”:

      • :(默认值)在区域的升级过程中自动升级。
      • :相比区域中的其他资源,以高优先级自动升级。
      • :相比区域中的其他资源,以低优先级自动升级。
    • 手动 当升级可用时收到通知,并在 15 天内启动该过程。 15 天后,升级将与其他区域中的自动升级一起进行。 有关详细信息,请参阅计划内维护的 App Service Environment 的升级首选项

  4. 若要保存更改,请选择“ 应用”。

屏幕截图,展示如何在 Azure 门户中设置 App Service Environment 的升级偏好设置

当具有多个应用服务环境时,此功能最为有用,并且可以从对升级进行排序中受益。 例如,可以将开发和测试应用服务环境设置为提前升级,生产应用服务环境稍后升级。

删除应用服务环境

按照以下步骤删除“App Service Environment”:

  1. 在 Azure 门户中的 Overview 页上,选择 App Service Environment,选择 Delete

  2. 要确认删除操作,请输入您的 App Service Environment 的名称,然后选择 OK

删除App Service Environment时,还会删除环境中的所有内容和资源。

截图演示如何在 Azure 门户中删除 App Service Environment。