在 Azure Stack Hub 中部署应用服务

重要

在部署或更新应用服务资源提供程序(RP)之前,如有必要,请将 Azure Stack Hub 更新为受支持的版本。 请务必阅读 RP 发行说明,了解可能影响部署的新功能、修补程序和任何已知问题。

支持的最低 Azure Stack Hub 版本 应用程序服务 RP 版本
2311 及更高版本 25R1 Installer 25R1 离线包发行说明

重要

在运行资源提供程序安装程序之前,必须完成准备工作中的步骤

本文介绍如何将 Azure 应用服务资源提供程序部署到处于以下状态的 Azure Stack Hub 环境中:

  • 已连接互联网或断开互联网连接
  • 受 Entra ID 或 Active Directory 联合身份验证服务(AD FS)保护。

若要将 Azure 应用服务资源提供程序添加到 Azure Stack Hub 部署,必须完成以下顶级任务:

  1. 完成先决条件步骤(例如购买证书,可能需要数天才能接收到)。
  2. 下载并提取安装和帮助程序文件
  3. 下载脱机安装包。
  4. 运行 appservice.exe 安装程序文件。

完成 Azure Stack Hub 上的 Azure 应用服务的安装

  1. 在可以访问“Azure Stack Hub 管理”Azure 资源管理终结点的计算机上,以管理员身份运行 appservice.exe。

  2. 选择“高级”>“完成脱机安装”。

    在 Azure 应用服务安装程序中完成脱机安装

  3. 浏览到之前下载的脱机安装包的位置,然后选择“ 下一步”。

    在 Azure 应用服务安装程序中指定脱机安装包路径

  4. 查看并接受 Microsoft 软件许可条款,然后选择“下一步”。

  5. 查看并接受第三方许可条款,然后选择“下一步”。

  6. 请确保 Azure 应用服务云配置信息正确无误。 如果在 Azure Stack 开发工具包部署过程中使用了默认设置,可以接受此处的默认值。 但是,如果在部署 Azure Stack Hub 时自定义了选项,或者要部署到集成系统,则必须在此窗口中编辑相应的值,以反映这些更改。 例如,如果使用域后缀 mycloud.com,则必须将“Azure Stack Hub 租户”Azure 资源管理器终结点更改为 management.<region>.mycloud.com。 确认信息后,选择“下一步”。

    在 Azure 应用服务安装程序中配置 Azure 应用服务云

  7. 在下一个应用服务安装程序页上,将连接到 Azure Stack Hub:

    1. 选择要使用的连接方法-“凭据”或“服务主体”

      • 凭据
        • 如果使用 Microsoft Entra ID,请输入部署 Azure Stack Hub 时提供的 Microsoft Entra 管理员帐户和密码。 选择“连接”。
        • 如果使用 Active Directory 联合身份验证服务 (AD FS),请提供管理员帐户。 例如,cloudadmin@azurestack.local。 输入密码,然后选择“连接”
      • 服务主体
        • 使用的服务主体必须对“默认提供程序订阅”拥有“所有者”权限
        • 提供“服务主体 ID”、“证书文件”和“密码”,然后选择“连接”
    2. 在“Azure Stack Hub 订阅”中,选择“默认提供程序订阅”。 Azure Stack Hub 上的 Azure 应用服务必须部署在默认提供程序订阅中。

    3. 在“Azure Stack Hub 位置”中,选择要部署到的区域所对应的位置。 例如,若要部署到 ASDK,请选择“本地”。

    4. 管理员可以为每个已部署虚拟机规模集中的单个实例指定三个字符的“部署前缀”。 如果管理多个 Azure Stack Hub 实例,则部署前缀非常有用。

  8. 可以让 Azure 应用服务安装程序创建虚拟网络和关联的子网。 或者,可以部署到通过这些步骤配置的现有虚拟网络。

    • 若要使用 Azure 应用服务安装程序方法,请选择“使用默认设置创建 VNet”,接受默认设置,然后选择“下一步”。

    • 若要部署到现有网络,请选择“使用现有 VNet 和子网”,然后:

      1. 选择包含该虚拟网络的“资源组”选项。
      2. 选择要部署到其中的虚拟网络的名称。
      3. 为每个所需角色子网选择正确的“子网”值。
      4. 选择“下一步”。

      Azure 应用服务安装程序中的虚拟网络和子网信息

  9. 输入文件共享的信息,然后选择“下一步”。 文件共享的地址必须使用文件服务器的完全限定域名 (FQDN) 或 IP 地址。 例如:\\appservicefileserver.local.cloudapp.azurestack.external\websites 或 \\10.0.0.1\websites。 如果使用已加入域的文件服务器,则必须提供完整的用户名,包括域。 例如:<myfileserverdomain>\<FileShareOwner>

    注意

    在继续下一步之前,安装程序会尝试测试与文件共享的连接。 但是,如果前面已选择部署到现有虚拟网络,则安装程序可能无法连接到文件共享,并显示警告来询问是否继续。 验证文件共享信息,如果正确,请继续。

    Azure 应用服务安装程序中的文件共享信息

  10. 在下一页上执行以下操作:

    1. “标识应用程序 ID ”框中,输入作为 先决条件的一部分创建的标识应用程序的 GUID。
    2. 在“标识应用程序证书文件”框中,输入(或浏览到)证书文件的位置。
    3. 在“标识应用程序证书密码”框中,输入证书的密码。 此密码是在使用脚本创建证书时记下的密码。
    4. 在“Azure 资源管理器根证书文件”框中,输入(或浏览到)证书文件的位置。
    5. 选择“下一步”。

    在 Azure 应用服务安装程序中输入应用 ID 和证书信息

  11. 对于三个证书文件框的每一个框,请选择“浏览”并导航到相应的证书文件。 必须为每个证书提供密码。 这些证书是在 Azure Stack Hub 上部署应用服务的先决条件中创建的证书。 输入所有信息后,选择“下一步”。

    证书文件名示例
    应用服务默认 SSL 证书文件 _.appservice.local.AzureStack.external.pfx
    应用服务 API SSL 证书文件 api.appservice.local.AzureStack.external.pfx
    应用服务发布者 SSL 证书文件 ftp.appservice.local.AzureStack.external.pfx

    如果在创建证书时使用了其他域后缀,证书文件名不要使用 local.AzureStack.external, 而要改用自定义域信息。

    在 Azure 应用服务安装程序中输入 SSL 证书信息

  12. 为用于托管 Azure 应用服务资源提供程序数据库的服务器实例输入 SQL Server 详细信息,然后选择“下一步”。 安装程序将验证 SQL 连接属性。 必须输入内部 IP 或 FQDN 作为 SQL Server 名称。

    注意

    在继续下一步之前,安装程序会尝试测试连接到运行 SQL Server 的计算机。 但是,如果前面已选择部署到现有虚拟网络,则安装程序可能无法连接到运行 SQL Server 的计算机,并显示警告来询问是否继续。 验证 SQL Server 信息,如果正确,请继续。

    从 Azure Stack Hub 1.3 上的 Azure 应用服务开始,安装程序将检查运行 SQL Server 的计算机是否在 SQL Server 级别启用了数据库包含。 如果未启用,则会出现以下异常提示:

       Enable contained database authentication for SQL server by running below command on SQL server (Ctrl+C to copy)
       ***********************************************************
       sp_configure 'contained database authentication', 1;
       GO
       RECONFIGURE;
       GO
       ***********************************************************
    

    在 Azure 应用服务安装程序中输入 SQL Server 信息

  13. 查看角色实例和 SKU 选项。 默认设置中填充了生产部署中每个角色的最小实例数和最低 SKU 层级。 对于 ASDK 部署,可以将资源实例缩减到较低的 SKU,以减少核心和内存的使用量,但性能会降低。 提供 vCPU 和内存要求摘要是为了帮助你规划部署。 进行选择后,请选择“下一步”。

    注意

    对于生产部署,请遵循 Azure Stack Hub 中 Azure 应用服务服务器角色的容量规划中的指导。

    角色 最小实例数 最小 SKU 注释
    控制器 2 Standard_A4_v2 -(4 核,8192 MB) 管理和维护应用服务云的运行状况。
    管理 1 Standard_D3_v2 -(4 核,14336 MB) 管理应用服务 Azure 资源管理器和 API 终结点、门户扩展(管理员门户、租户门户、Functions 门户)和数据服务。 为了支持故障转移,已将建议的实例数增加到 2 个。
    发布者 1 Standard_A2_v2 -(2 核,4096 MB) 通过 FTP 和 Web 部署发布内容。
    FrontEnd 1 Standard_A4_v2 -(4 核,8192 MB) 将请求路由到应用服务应用。
    共享辅助角色 1 Standard_A4_v2 -(4 核,8192 MB) 托管 Web 应用或 API 应用和 Azure Functions 应用。 可能需要添加更多实例。 作为操作员,可以定义产品/服务,并选择任何 SKU 层。 这些层必须至少具有一个 vCPU。

    在 Azure 应用服务安装程序中设置角色层和 SKU 选项

  14. 在“选择平台映像”框中选择已准备的 Windows Server 2022 Datacenter 虚拟机 (VM) 映像,该映像是 Azure 应用服务云的计算资源提供程序提供的映像之一。 选择“下一步”。

    注意

    支持将 Windows Server 2022 Core 平台映像与 Azure Stack Hub 上的 Azure 应用服务配合使用。 请勿将评估映像用于生产部署。 基于 Azure Stack Hub 的 Azure 应用服务要求在用于部署的映像上激活 Microsoft.NET 3.5.1 SP1。 通过“市场”发布的 Windows Server 2022 映像未启用此功能。 因此,在脱机环境中部署时,必须创建并使用预启用此功能的 Windows Server 2022 映像。

    若要详细了解如何创建自定义映像并将其添加到市场,请参阅在 Azure Stack Hub 上部署应用服务的先决条件。 将映像添加到市场时,请务必指定以下信息:

    • 发布者 = MicrosoftWindowsServer
    • 套餐 = WindowsServer
    • SKU = AppService
    • 版本 = 指定“最新”版本
  15. 在下一页上执行以下操作:

    1. 输入辅助角色 VM 管理员用户名和密码。
    2. 输入其他角色 VM 管理员用户名和密码。
    3. 选择“下一步”。

    在 Azure 应用服务安装程序中输入角色 VM 管理员

  16. 在摘要页上执行以下操作:

    1. 验证所做的选择。 若要进行更改,请使用“上一步”按钮访问前面的页面。
    2. 如果配置正确,则选中此复选框。
    3. 若要开始部署,请选择“下一步”。

    在 Azure 应用服务安装程序中所做选择的摘要

  17. 在下一页上执行以下操作:

    1. 跟踪安装进度。 部署 Azure Stack Hub 上的应用服务最长可能需要 240 分钟,具体取决于所做的默认选择,以及 Windows 2016 Datacenter 基础映像的期限。

    2. 安装程序完成运行后,请选择“退出”。

    在 Azure 应用服务安装程序中跟踪安装过程

部署后步骤

重要

如果已向 Azure 应用服务资源提供程序提供 SQL Always On 实例, 则必须将appservice_hosting数据库和appservice_metering数据库添加到可用性组。 此外,必须同步数据库,以防止在发生数据库故障转移时丢失任何服务。

如果选择部署到现有虚拟网络并使用内部 IP 地址连接到文件服务器,则必须添加一条出站安全规则,以启用在工作子网和文件服务器之间的 SMB 流量。 在管理员门户中,转到 WorkersNsg 网络安全组并添加具有以下属性的出站安全规则:

  • 源:任意
  • 源端口范围:*
  • 目标:IP 地址
  • 目标 IP 地址范围:文件服务器的 IP 范围
  • 目标端口范围:445
  • 协议:TCP
  • 操作:允许
  • 优先级:700
  • 姓名:Outbound_Allow_SMB445

若要在辅助角色与文件服务器通信时消除延迟,我们还建议将以下规则添加到辅助角色网络安全组,以便在使用 Active Directory 保护文件服务器时允许出站 LDAP 和 Kerberos 流量发送到 Active Directory 控制器,例如,如果已使用快速入门模板部署 HA 文件服务器和 SQL Server。

转到管理门户中的 WorkersNsg 并添加具有以下属性的出站安全规则:

  • 源:任意
  • 源端口范围:*
  • 目标:IP 地址
  • 目标 IP 地址范围:AD 服务器的 IP 范围,例如,使用快速入门模板 10.0.0.100、10.0.0.101
  • 目标端口范围:389,88
  • 协议: 任何
  • 操作:允许
  • 优先级:710
  • 名称:Outbound_Allow_LDAP_and_Kerberos_to_Domain_Controllers

验证 Azure Stack Hub 上的 Azure 应用服务安装

  1. 在 Azure Stack Hub 管理员门户中,转到“管理 - 应用服务”。

  2. 在“概述”中,在“状态”下,检查“状态”是否显示了“所有角色已就绪”。

    Azure 应用服务管理中的概述

体验 Azure Stack Hub 上的 Azure 应用服务

部署并注册 Azure 应用服务资源提供程序后,对其进行测试以确保用户可以部署 Web 应用和 API 应用。

注意

必须创建一个套餐,其中的计划包含 Microsoft.Web 命名空间。 然后,需要有订阅此套餐的租户订阅。 有关详细信息,请参阅创建套餐创建计划

必须有租户订阅,才能创建使用 Azure Stack Hub 上的 Azure 应用服务的应用。 服务管理员只能在管理员门户中完成的功能与资源提供程序对 Azure 应用服务的管理相关。 这些功能包括添加容量、配置部署源以及添加辅助角色层和 SKU。

至于第三个技术预览版,若要创建 Web 应用、API 应用和 Azure Functions 应用,必须使用用户门户并有租户订阅。

  1. 在 Azure Stack Hub 用户门户中,选择“+ 创建资源”>“Web + 移动”>“Web 应用”。

  2. 在“Web 应用”边栏选项卡上的“Web 应用”框中键入名称。

  3. 在“资源组”下,选择“新建”。 在“资源组”框中键入名称。

  4. 选择“应用服务计划/位置”>“新建”。

  5. 在“应用服务计划”边栏选项卡上的“应用服务计划”框中键入名称。

  6. 选择“定价层”>“免费共享”或“共享共享”>“选择”>“确定”>“创建”。

  7. 在不到一分钟之内,新 Web 应用的磁贴将显示在仪表板上。 选择磁贴。

  8. 在“Web 应用”边栏选项卡上选择“浏览”,查看此应用的默认网站。

部署 WordPress、DNN 或 Django 网站(可选)

  1. 在 Azure Stack Hub 用户门户中选择 + ,转到 Azure 市场,部署 Django 网站并等待成功完成。 Django Web 平台使用基于文件系统的数据库。 它不需要任何其他资源提供程序,例如 SQL 或 MySQL。

  2. 如果还部署了 MySQL 资源提供程序,则可从 Azure 市场部署 WordPress 网站。 当系统提示输入数据库参数时,请输入用户名,其格式为 User1@Server1(使用所选的用户名和服务器名称)。

  3. 如果还部署了 SQL Server 资源提供程序,则可从 Azure 市场部署 DNN 网站。 当系统提示输入数据库参数时,请在运行 SQL Server 的计算机中选择连接到资源提供程序的数据库。

后续步骤

为 Azure Stack Hub 上的应用服务准备其他管理操作: