本文档页面介绍了适用于以下情况的相关要求:当 Horizon Cloud on Microsoft Azure 利用 Azure 应用商店进行部署和升级过程时,以及当您的支持请求要求 VMware 技术支持团队部署故障排除 jump box 时。

如果您或者您的 IT 或安全组织已在 Horizon Cloud on Microsoft Azure 部署订阅中针对 Azure 应用商店产品使用或 Azure 应用商店产品订购设置限制,则此信息与您息息相关。

此外,如果您的 Horizon Cloud on Microsoft Azure 部署位于 Azure 中国内,则可能需要 VMware 技术支持团队的帮助,如此页面 Azure 中国部署一节中所述。

简介

从 2022 日历年年初开始,服务改进了 Horizon Cloud on Microsoft Azure 部署程序和升级代码,以便能以编程方式使用 Azure 应用商店中由 VMware 提供的 VMware 产品。

此项增强让初始部署过程和升级过程的运行速度更快,使容器管理器实例和 Unified Access Gateway 实例的升级实现了接近零的停机时间。

另外,此项增强还允许仅通过用于 App Volumes 功能的存储帐户来运行部署和升级,而无需使用任何其他存储帐户。

Azure 应用商店与部署、升级和支持 Jump Box 之间的关系

在部署和升级过程中,部署程序和升级代码会尝试通过 API 调用以编程方式接受 Azure 应用商店中与名为 vmware-inc 的 VMware publisherID 对应的 VMware 产品条款。

相关实体 publisherID offerID planID
容器管理器 vmware-inc euc-hcs-podmgr euc-hcs-podmgr
Unified Access Gateway vmware-inc euc-hcs-uag euc-hcs-uag
jump box,VMware 技术支持团队在对各种情况进行故障排除时需要 vmware-inc euc-hcs-jumpbox euc-hcs-jumpbox
注: 不支持通过导航到 Azure 应用商店使用 Azure 门户来查看这些产品。可通过 API 调用对 VMware 发布的这些产品进行编程访问。

服务的 API 调用要求

为成功使用此编程方式,Horizon Cloud on Microsoft Azure 部署的 Azure 订阅必须满足以下几节中所述的要求。

这些项目允许通过部署程序和升级 API 调用接受 Azure 应用商店中与上表所列 VMware publisherIDofferIDplanID 对应的 VMware 产品条款。

这些要求既适用于容器管理器实例使用的订阅,也适用于 Unified Access Gateway 实例部署在其自己的订阅中时所使用的订阅。

如果 Azure 订阅未满足以下要求,则部署程序和升级代码用于接受产品条款的 API 调用将失败,从而导致:

  • 涉及相应订阅的新部署失败。
  • 相应订阅中已部署的容器管理器和 Unified Access Gateway 实例升级失败。
  • 无法将 VMware 技术支持团队根据支持请求进行故障排除所需的故障排除 jump box 部署到该订阅中。

但是,存在一种特殊场景,即 Horizon Cloud on Microsoft Azure 部署位于 Azure 中国 内。在 Azure 中国,Microsoft 未提供服务 API 调用所需的 Microsoft.Marketplace.Ordering 资源类型。如果您的 Horizon Cloud on Microsoft Azure 部署位于 Azure 中国,请阅读 Azure 中国 - 特殊注意事项一节中的指导。

当部署的服务主体使用自定义角色时的要求

使用 此处所述的自定义角色时,自定义角色中必须包含以下权限:
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/read
Microsoft.MarketplaceOrdering/offertypes/publishers/offers/plans/agreements/write
  • 对于容器管理器实例或 Unified Access Gateway 实例的新部署,UI 中的部署向导会验证服务主体在订阅中是否具有这两项权限。如果该验证失败,UI 将阻止启动部署。
  • 对于升级,系统预检查会尝试确认服务主体在订阅中具有这两项权限。如果缺少所需权限,预检查会报告阻止更新错误。解决方法便是在自定义角色中包含这两项权限。
  • 如果 VMware 技术支持团队需要部署用于故障排除的 jump box 以响应您的支持请求,jump box 部署过程将指示 VMware 技术支持团队缺少所需权限。

在此场景下,VMware 技术支持团队将看到按以下模式记录的错误消息,例如:无法继续升级,因为配置的订阅读取权限不足,无法使用商城映像产品。无法继续升级,因为配置的订阅写入权限不足,无法使用商城映像产品 (Could not proceed with upgrade as configured subscription has insufficient read permission to use marketplace image offers. Could not proceed with upgrade as configured subscription has insufficient write permission to use marketplace image offers)

当 Azure 策略限制订阅中允许的 Azure 资源类型时的要求

有些 IT 组织的 Azure 策略可能会指定禁止使用除按名称明确允许的特定 Azure 资源类型之外的所有其他资源类型。

如果您的 IT 或安全组织设置了此类 Azure 策略来限制组织 Azure 订阅中允许的 Azure 资源类型,则 Azure 策略中的 AllowedResourceTypes 设置必须包含 Microsoft.MarketplaceOrdering/* 资源类型以允许此类资源。

如果订阅的 Azure 策略不包含 Microsoft.MarketplaceOrdering/*,VMware 技术支持团队将看到按以下模式记录的错误消息:由于验证错误,无法购买 PublisherId 为“vmware-inc”和 OfferId 为“euc-hcs-xxxxx”的产品。根据 IT 管理员设置的策略,您无法在部署中使用由发布者“vmware-inc”提供的产品“euc-hcs-xxxxxx”的 SKU“euc-hcs-xxxxxx”(Offer with PublisherId: 'vmware-inc', OfferId: 'euc-hcs-xxxxx' cannot be purchased due to validation errors. Sku 'euc-hcs-xxxxxx' of offer 'euc-hcs-xxxxxx' by publisher 'vmware-inc' is not available to you for deployment per the policy set by your IT Admin),其中 xxxxx 对应于上表中的某个 planID

通过允许访问 Microsoft.MarketplaceOrdering/* 资源类型,部署程序和升级代码将可以通过进行 API 调用来接受 Azure 应用商店中其使用的 VMware Horizon Cloud on Microsoft Azure 产品。

如果您的 IT 或安全组织拒绝在订阅中允许此资源类型,他们可以通过执行后面将 VMware 产品添加到企业的 Azure 专用应用商店集合一节中所述的操作,将相应 VMware 产品 SKU 添加到企业的 Azure 专用应用商店。然后,服务的 API 调用便可以从那里获取相应的 VMware 产品。

当企业管理员为其 Azure 企业租户关闭 Azure 应用商店购买功能时的要求

如 Microsoft Azure 文档中所述,企业管理员可以针对其企业 Azure 租户下的所有 Azure 订阅关闭 Azure 应用商店购买功能。

这样做将限制从 Azure 应用商店购买来自 Microsoft 发布者的产品。这种限制购买的行为会阻止服务的 API 调用获取来自 vmware-inc publisherID 的 VMware 产品,因而会阻止需要这些 API 调用的部署和升级过程。

在这种情况下,VMware 技术支持团队将看到按以下模式记录的错误消息:无法完成购买,因为您注册的此订阅不允许购买商城内的付费产品。您的 Azure 注册管理员可以启用付费商城产品的购买。(Cannot complete purchase as your enrollment for this subscription doesn't allow purchase of marketplace paid products. Your Azure enrollment administrator can enable purchase of paid marketplace products)

在这种情况下,补救措施是请求企业管理员创建和管理专用 Azure 应用商店集合,然后通过执行将 VMware 产品添加到企业的 Azure 专用应用商店集合中所述操作来添加 VMware 产品。

将 VMware 产品添加到企业的 Azure 专用应用商店集合

Microsoft Azure 提供了创建和管理专用 Azure 应用商店集合以供订阅使用的功能。如创建和管理专用 Azure 应用商店中所述,此功能允许 IT 管理员预先批准、挑选和控制其用户可以使用全球 Azure 应用商店中的哪些第三方解决方案。如上一句中链接的 Microsoft 文档页面所述,必须为将负责管理专用应用商店的管理员分配商城管理员角色。

为企业 Azure 租户创建专用商城后,具有商城管理员角色的管理员即可以将 VMware 产品添加到专用应用商店集合中。将 VMware 产品添加到租户的专用应用商店后,将可以通过服务 API 调用获取这些 VMware 产品以供在部署和升级时使用。

Microsoft 提供了一些 PowerShell 命令,用于将特定发布者提供的产品添加到专用应用商店集合。

请参阅相应 Microsoft 参考文档中的向专用商城添加产品,了解运行 PowerShell 命令的必备条件。该 Microsoft 页面还介绍了 Microsoft 为此提供的各个 PowerShell 命令。

以下示例展示了在满足运行命令的必备条件后,用于将 VMware 产品添加到专用应用商店的 Microsoft PowerShell 命令。首先,使用 Get-AzMarketplacePrivateStore 获取 Azure 租户的 privateStoreId。然后,使用 Set-AzMarketplacePrivateStoreOffer 将 VMware 产品添加到专用应用商店。

Get-AzMarketplacePrivateStore
  1. 使用 Get-AzMarketplacePrivateStore 获取 Azure 租户的 privateStoreId,以在下一组命令中使用。
    Get-AzMarketplacePrivateStore
    
  2. Set-AzMarketplacePrivateStoreOffer 命令中使用返回的 privateStoreId 依次添加 euc-hcs-podmgreuc-hcs-uageuc-hcs-jumpbox 所对应的 VMware 产品。
    • 添加容器管理器实例对应的产品:
      Set-AzMarketplacePrivateStoreOffer -privateStoreId your-tenant-privateStoreID -offerId vmware-inc.euc-hcs-podmgr -SpecificPlanIdsLimitation @("euc-hcs-podmgr")
    • 添加 Unified Access Gateway 实例对应的产品:
      Set-AzMarketplacePrivateStoreOffer -privateStoreId your-tenant-privateStoreID -offerId vmware-inc.euc-hcs-uag -SpecificPlanIdsLimitation @("euc-hcs-uag")
    • 添加用于故障排除的 jump box 实例所对应的产品:
      Set-AzMarketplacePrivateStoreOffer -privateStoreId your-tenant-privateStoreID -offerId vmware-inc.euc-hcs-jumpbox -SpecificPlanIdsLimitation @("euc-hcs-jumpbox")
  3. 验证相应 VMware 产品现在是否已在租户的专用应用商店中列出。
    Get-AzMarketplacePrivateStoreOffer -PrivateStoreId your-tenant-privateStoreID

Azure 中国 - 特殊注意事项

由于 Microsoft 未在 Azure 中国提供 Microsoft.Marketplace.Ordering 资源类型,因此不支持使用 API 调用获取 Azure 应用商店中 VMware 产品的服务功能。Microsoft.Marketplace.Ordering 类型未在 Azure 中国资源提供商的此 Microsoft 参考文档中列出。

因此,当您使用 Azure 中国的订阅进行 Horizon Cloud on Microsoft Azure 部署时,请记住以下特殊注意事项。

  • 对于位于 Azure 中国的现有 Horizon Cloud on Microsoft Azure 部署,在升级该部署之前,请从 VMware 技术支持团队获取支持以将 Horizon Cloud 租户配置为使用之前的升级方法而不是 API 调用来访问 Azure 应用商店。
  • 如果计划部署到 Azure 中国,在开始该部署之前,请从 VMware 技术支持团队获取支持以配置 Horizon Cloud 租户,以便部署程序使用之前的部署方法而不是 API 调用来访问 Azure 应用商店。
  • 如果 VMware 技术支持团队需要部署临时 jump box 以对位于 Azure 中国的部署进行故障排除,VMware 技术支持团队可以将 Horizon Cloud 租户临时配置为启用将临时 jump box 部署到订阅中的功能,而不是通过服务 API 调用来访问 Azure 应用商店。如果除 Azure 中国外,租户还在位于其他地区的订阅中部署了容器,则在部署临时 jump box 以进行故障排除后,VMware 技术支持团队可以重新启用使用服务 API 调用的功能。

如果不使用 Azure 应用商店,完成部署和升级需要更长时间。此外,此类部署和升级需要使用临时 jump box 来编排部署和升级过程,并使用订阅中的存储帐户来保存服务 API 调用将从 Horizon Cloud 控制平面检索的映像,而不是使用 Azure 应用商店中的 VMware 产品。