在Azure上部署虚幻引擎4像素流

关于如何在Microsoft Azure上设置虚幻引擎4像素流的简短教程

Choose your operating system:

Windows

macOS

Linux

虚幻像素流(Unreal Pixel Streaming)是Azure商城中的一款产品,由Microsoft与Epic联合打造,允许Azure订阅者在一台启用了GPU的远程虚拟机("VM")尚部署并流送其UE应用。根据该方案,只需将应用打包成一个 .zip 文件,就能面向多个地区生成少则一个、多则几千个VM实例,允许你实现一种自动缩放的部署方案,并且可通过单个URL访问。本教程介绍了在Azure上部署像素流项目的步骤。

先决条件

Azure账户和订阅

你需要有一个Azure账户,并且至少需要一个能让你拥有权限来创建资源的订阅。有关创建新订阅的信息,请参阅本指南。订阅还要求你设置结算账户。

虽然虚幻像素流解决方案免费,但产生的Azure资源会有相关的费用。如果你的账户与你的雇主或另一方关联,请在设置你的部署实例之前,确认他们是否准备好承担所涉及的费用。 要更准确地估算你的成本,请查看虚拟机定价页面上的定价信息,按所需地区筛选,然后搜索 "NV12s v3" 查看"即用即付"定价。

Azure VM配额

Azure订阅对于同时能使用的VM资源数量设置了限制,称为配额。按照Microsoft的文档操作,确保你有足够的配额用于 你想部署的每个地区 的VM系列。

默认配置所需的配额是 标准NVSv3系列vCPU(Standard NVSv3 Family vCPUs) ,并且你使用的每个NV12s_v3实例需要12个vCPU。例如,如果你希望有2个实例在美国东部运行,2个实例在欧洲北部运行,你需要申请增加配额,使两个地区中此系列都有24个vCPU。

打包像素流应用程序

此Azure解决方案只能与你创建的现有像素流应用程序一起使用。确保你已按照入门文档操作,并在本地测试了应用,然后再继续处理云部署。

默认情况下,此解决方案将完全覆盖 Samples 文件夹中的所有Web服务器文件。如果你对网页或服务器进行了自定义,请确保你已下载Azure修改并根据随附的 README.txt 文件合并了你的更改,然后再继续。

打包好像素流应用程序之后,将整个 WindowsNoEditor 文件夹压缩为 .zip 文件,这样存档目录将形如 PROJECTNAME.zip\WindowsNoEditor\Engine…

将WindowsNoEditor文件夹压缩为zip文件

使用Azure门户和Azure商城

  1. 登录到Azure账户

  2. 虚幻像素流托管在Azure商城。打开应用页面

    Azure商城上的虚幻像素流应用页面

  3. 使用右上角的按钮登录Azure商城。请使用同一个账号来使用所有Azure服务。

    Azure商城登录页面

  4. 点击虚幻引擎图标下方的 立即获取(Get It Now) 。你还可以使用心形图标将其保存到收藏夹,供以后使用。

    立即获取按钮特写

  5. 界面上将弹出对话框,要求你确认你的信息并将此应用添加到你的账户。填写并点击 继续(Continue)

    确认信息并创建应用

  6. Azure门户将打开到你账户中的虚幻像素流产品。在其中点击 创建(Create) 以开始配置部署的过程。

    点击"创建"以开始配置部署

基础知识

创建页面的第一个选项卡涵盖了像素流部署的基本信息,如订阅详情、实例类型和上传应用程序。

  1. 基础知识(Basics) 选项卡中,首先选择 订阅(Subscription) 以及要将全局资源部署到的空的 资源组(Resource Group) ,如流量管理器(Traffic Manager)、密钥保管库(Key Vault)和管理员操作面板(Admin Dashboard)。你可能需要使用 新建(Create new) 按钮。

    点击"新建"链接以创建新的资源组

  2. 为全局资源选择你的主要 地区(Region)。然后,你可以为配对器VM和UE4应用VM选择实例大小。此模板默认采用推荐大小。

    默认实例大小

    继续之前,请检查你的订阅中是否针对所选GPU虚拟机大小有如上所述的合适配额。如果你没有足够的配额,此部署将失败,并且你可能需要从头再来。

  3. 接下来,必须上传包含像素流应用的 .zip 文件。使用 浏览(Browse) 按钮打开所选订阅的 存储账户(Storage Accounts)

    找到像素流应用包

    创建新的存储账户

    如果你尚无存储账户,可以使用顶部的 + 存储账户(+ Storage Accounts) 按钮添加一个账户。为其提供 名称(Name)位置(Location) 、新的 资源组(Resource Group) ,然后点击 确定(OK) 。稍等片刻,你的新存储账户应该会出现在列表中。选择一个列出的存储账户,将其打开。

    添加关于新存储账户的详情

  4. 凡是你想上传到Azure存储账户的文件,都必须放入 容器(Container) 中。如果你尚无容器,可以使用顶部的 + 容器(+ Container) 按钮添加容器。为其提供 名称(Name) ,然后点击 创建(Create) 。从列表中选择一个容器,将其打开。

    点击"+ 容器"按钮并命名新容器

  5. 在所选容器内,点击顶部的 上传(Upload) 按钮,并使用文件夹图标浏览,以查找应用程序的 .zip 文件,然后点击 上传(Upload) 。根据项目大小和网络带宽,上传可能需要几分钟时间才能完成。

    将应用上传到容器

    应用完成上传后,选择容器中的文件,然后点击 选择(Select)

    选择容器中的文件

  6. 返回主配置页面,指定 .zip 文件中UE应用程序的名称。此名称与可执行文件名称相同,但去掉了".exe"。这用于在VM上自动启动应用,如果此处有误,你的应用将无法运行。

    如果你根据随附的说明对 配对器(Matchmaker)信令(Signalling) 服务器进行了自定义修改,请确保选中提示符下面的复选框。

    自定义修改复选框

  7. 最后,为VM设置用户名和密码。如果你在实例上启用远程桌面(这有助于调试问题),你将用到这些凭证。

    虚拟机的访问凭证

完成基础知识(Basics)选项卡的设置后,点击 下一步:缩放(Next: Scale)

缩放

在此选项卡中,你可以指定部署的大小和作用范围。借助Azure上的虚幻像素流,应用可以在全球多个地区的许多实例上运行。

我们推荐一开始使用较小、较简单的部署,以测试你的应用程序,并避免高昂的账单开销。在许多地区创建大量虚拟机将对你的订阅收费金额产生指数级影响。

  1. 选择要部署的地区(Select regions to deploy) 旁边的下拉菜单中,最多选择4个要部署UE应用的地区。用户连接到你的网址后,将定向到距其最近的地区(按最低ping计算),因此你需要考虑用户最有可能位于什么地方。

    请记住,每个地区都有自己的虚拟机配额,你需要提前管理,如上所述,否则部署将失败。

    ![选择要部署虚拟机的地区](select-region.png)

  2. 每个地区的GPU VM实例数(GPU VM Instances Per Region) 将控制在所选地区会启动的虚拟机数量。如果按如下所述启用了 自动缩放(Auto-scaling) ,此数量将根据需求增加或减少。

    每个GPU VM的流数(Streams Per GPU VM) 是每个VM上运行的UE应用实例数,上限为2。如果你的应用程序很轻巧,或者不需要高帧率,像这样共享GPU可能非常有助于尽量降低开销。一般来说,在两个正在运行的应用之间共享GPU资源可能会对帧率产生负面影响。

    控制流数和虚拟机实例数的滑块

  3. 启用 自动缩放(Auto-scaling) ,此部署就可以在更多用户尝试连接到你的应用程序时生成更多GPU实例,并在太多实例空闲时进行缩减。如果你需要固定数量的可用实例,可以禁用此功能。请先查看下面的选项,然后再单击 下一步:流配置(Next : Stream Configs)

    启用自动缩放

    请参阅下表,了解有关可用缩放参数的信息。

参数

说明

缩放前需要的缓冲区百分比(Percent Buffer Required Before Scale)

必须可用的流(UE应用实例)的百分比,低于此百分比将发生扩展操作以维持此缓冲区。这有助于防止新用户在负载增加的时段等待新VM生成。选择0可忽略此策略。默认值为25%。

缩放前需要的缓冲区实例数量(Instance Count Buffer Required Before Scale)

必须可用的流(UE应用实例)的数量,低于此数量将发生扩展操作以维持此缓冲区。这有助于防止新用户在负载增加的时段等待新VM生成。设置为0可忽略此策略。默认值为1。

缩减前的空闲分钟数(Idle Minutes Before Scale-Down)

未发生新扩展操作达到多少分钟之后,就会计算缩减为最低缓冲区数量。默认值为60。

缩减数量(Scale Down Amount)

在发生缩减时要缩减的最大节点数。默认值为1。

空闲时的最低实例数量(Min Instance Count While Idle)

在空闲期(即,夜间等活动很少的时间段)解决方案将缩减为的最低流(UE应用实例)数。默认值为1。

最高节点缩放数量(Max Node Scale Count)

包含将扩展的流(UE应用实例)的最高GPU VM数量。默认值为20。请务必检查你的配额,以支持此实例数量。

总结

  1. 流配置(Stream Configs) 选项卡中,你可以调整应用的分辨率和帧率。如果你要针对每个GPU 2个流的情况进行优化,这会很有用。

    调整应用分辨率和帧率

  2. 安全性(Security) 中,有一个选项可使用现有Azure DNS资源中你自己的自定义域名,可选择利用HTTPS连接。这在默认情况下是禁用的,但此文档可用于启用此选项。

    允许使用自定义域

    如果配置了HTTPS,你还可以 在信令服务器上启用身份验证(Enable Auth on Signalling Server) ,这会在用户首次尝试通过浏览器访问应用程序时,将用户重定向到登录页面。通过身份验证之后,用户将重定向到应用程序。如果启用了此设置,你还需要在下一步中启用管理员操作面板(Admin Dashboard)以添加用户账户。

    在信令服务器上启用身份验证

  3. 管理员操作面板(Admin Dashboard) 选项卡中,你可以启用管理员操作面板(Admin Dashboard),它提供了一个简单的界面,用于查看基本流量分析,向用户授予访问权限(如果启用),上传应用的新版本,以及更改自动缩放参数。

    此功能需要在Azure活动目录中的应用注册,因此你需要在贵组织中拥有恰当的权限。按照此Microsoft文档操作,在另一个选项卡中创建应用注册,然后复制粘贴 应用程序(客户端)ID

    管理员操作面板的应用注册

    启用管理员操作面板

  4. 配置所有设置之后,点击 查看 + 创建(Review + create) 。如果通过验证,并且一切正常,请点击 创建(Create) 以开始部署。可能需要几分钟时间才能创建必要的资源,尤其是需要启动并下载应用的GPU VM。部署完成后,点击 转至资源组(Go to resource group)

    部署完成后点击"转至资源组"

连接到你的流送实例

  1. 在部署的主资源组中,选择 流量管理器配置文件(Traffic Manager profile)

    选择流量管理器配置文件

  2. 基本信息(Essentials)分段的右上角是 DNS名称(DNS name) 。此URL可以从此处复制并粘贴到新的浏览器选项卡中。这是通用URL,可供所有用户访问应用程序。用户将重新路由到距其最近的地区的配对器VM,并再次重定向到GPU实例上第一个可用的流。

    复制流量管理器DNS名称

    浏览器中的像素流应用

激活管理员操作面板

如果在配置期间启用了管理员操作面板(Admin Dashboard),在部署所有资源之后,还需要执行某个额外的设置将其激活。

  1. 在主资源组中,打开其名称带有"-dashboard"字样的 应用服务(App Service)

    打开操作面板应用服务

  2. 基本信息(Essentials) 分段的右上角是此资源的 URL 。复制此地址。

    资源URL

  3. 回到你为此操作面板创建的 AAD应用注册(AAD App Registration)。在 基本信息(Essentials) 的右侧列中,点击 添加重定向URI(Add a Redirect URI)

    添加重定向URI

  4. 点击 添加平台(Add a platform) 。点击弹出式边栏选项卡中的 网页(Web)

    添加网页平台

  5. 将操作面板应用服务的URL粘贴到 重定向URI(Redirect URI) 中,并将以下文本附加到其末尾:/.auth/login/aad/callback 。点击 配置(Configure)

    配置网页平台重定向URI

  6. 现在,如果你访问之前粘贴的原始URL,将显示 管理员操作面板(Admin Dashboard) 。你可以随时返回 应用服务(App Service) 中查找此URL。

    像素流管理员操作面板

更新应用程序

如果启用了管理员操作面板(Admin Dashboard),你可以执行下面的步骤,以使用UE应用的新版本更新像素流部署。如果没有管理员操作面板(Admin Dashboard),就必须重新运行整个设置和配置。操作面板方法将利用现有资源和资源组,但新部署将创建所有新资源,并且不会覆盖或删除现有部署。

  1. 执行相同的先决条件步骤,以将应用的WindowsNoEditor文件夹压缩为 .zip 文件。

  2. 在全局资源组中选择 存储账户(Storage Account)

    选择存储账户

  3. 在左侧面板中,选择 容器(Containers) 并打开 上传(Uploads) 容器。然后将 .zip 文件上传到此处。

    将zip文件上传到容器

  4. 在浏览器中找到管理员操作面板(Admin Dashboard)。从左侧导航中选择 设置(Settings)

  5. 点击 添加新版本(Add New Version) 并根据需要调整设置。使用 选择blob(Select blob) 选择你上传到存储账户的 .zip 文件。完成后,点击 添加版本(Add Version)

    在"设置"中点击"添加新版本"

    "添加新版本"细节

  6. 配对器和信令服务器每隔30秒会检查一次更新,并动态重新部署所有新版本。

  7. 如果你想精确控制运行的实例数而不扩展或缩减,可以将 最低空闲(Min Idle) 实例数量(Instance Count)最高实例缩放数量(Max Instance Scale Count) 更改为与所需实例数相同。你还可以禁用自动缩放,改为通过每个地区中的虚拟机缩放集(VMSS)的缩放(Scaling)页面手动设置实例数。

添加通过身份验证的账户

如果部署期间在安全性(Security)选项卡中正确配置了 在信令服务器上启用身份验证(Enable Auth on SignallingServer) ,你必须添加有权访问流的用户账户。在 管理员操作面板(Admin Dashboard) 中,点击左侧导航中的 账户(Accounts) ,然后点击 添加账户(Add Account) 。用户必须使用你提供的凭证才能访问应用。

添加通过身份验证的账户

删除整个部署

要删除像素流部署并停止所有相关开销,你必须删除已创建的资源组。在初始部署之后,你的订阅中应该会有至少三个资源组:每个地区一个资源组(用于GPU实例),一个存储资源组(用于初始 .zip 文件上传),以及一个全局资源组(用于流量管理器(Traffic Manager)和管理员操作面板(Admin Dashboard))。存储资源组可以复用于未来的部署。

像素流应用程序的典型资源组示例

要删除资源组,请首先将其打开,然后点击顶部的 删除资源组(Delete resource group) 按钮。你需要确认你的删除操作。删除操作可能需要几分钟时间才能完全处理好,并从你的订阅中删除该组。根据需要为其他资源组重复上述操作。

删除资源组

如果你设置了自定义域,你还需要删除之前添加到该DNS区域的记录。

标签
欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消