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…
使用Azure门户和Azure商城
虚幻像素流托管在Azure商城。打开应用页面。
使用右上角的按钮登录Azure商城。请使用同一个账号来使用所有Azure服务。
点击虚幻引擎图标下方的 立即获取(Get It Now) 。你还可以使用心形图标将其保存到收藏夹,供以后使用。
界面上将弹出对话框,要求你确认你的信息并将此应用添加到你的账户。填写并点击 继续(Continue) 。
Azure门户将打开到你账户中的虚幻像素流产品。在其中点击 创建(Create) 以开始配置部署的过程。
基础知识
创建页面的第一个选项卡涵盖了像素流部署的基本信息,如订阅详情、实例类型和上传应用程序。
在 基础知识(Basics) 选项卡中,首先选择 订阅(Subscription) 以及要将全局资源部署到的空的 资源组(Resource Group) ,如流量管理器(Traffic Manager)、密钥保管库(Key Vault)和管理员操作面板(Admin Dashboard)。你可能需要使用 新建(Create new) 按钮。
为全局资源选择你的主要 地区(Region)。然后,你可以为配对器VM和UE4应用VM选择实例大小。此模板默认采用推荐大小。
继续之前,请检查你的订阅中是否针对所选GPU虚拟机大小有如上所述的合适配额。如果你没有足够的配额,此部署将失败,并且你可能需要从头再来。
接下来,必须上传包含像素流应用的
.zip
文件。使用 浏览(Browse) 按钮打开所选订阅的 存储账户(Storage Accounts) 。如果你尚无存储账户,可以使用顶部的 + 存储账户(+ Storage Accounts) 按钮添加一个账户。为其提供 名称(Name) 、位置(Location) 、新的 资源组(Resource Group) ,然后点击 确定(OK) 。稍等片刻,你的新存储账户应该会出现在列表中。选择一个列出的存储账户,将其打开。
凡是你想上传到Azure存储账户的文件,都必须放入 容器(Container) 中。如果你尚无容器,可以使用顶部的 + 容器(+ Container) 按钮添加容器。为其提供 名称(Name) ,然后点击 创建(Create) 。从列表中选择一个容器,将其打开。
在所选容器内,点击顶部的 上传(Upload) 按钮,并使用文件夹图标浏览,以查找应用程序的
.zip
文件,然后点击 上传(Upload) 。根据项目大小和网络带宽,上传可能需要几分钟时间才能完成。应用完成上传后,选择容器中的文件,然后点击 选择(Select) 。
返回主配置页面,指定
.zip
文件中UE应用程序的名称。此名称与可执行文件名称相同,但去掉了".exe"。这用于在VM上自动启动应用,如果此处有误,你的应用将无法运行。如果你根据随附的说明对 配对器(Matchmaker) 或 信令(Signalling) 服务器进行了自定义修改,请确保选中提示符下面的复选框。
最后,为VM设置用户名和密码。如果你在实例上启用远程桌面(这有助于调试问题),你将用到这些凭证。
完成基础知识(Basics)选项卡的设置后,点击 下一步:缩放(Next: Scale) 。
缩放
在此选项卡中,你可以指定部署的大小和作用范围。借助Azure上的虚幻像素流,应用可以在全球多个地区的许多实例上运行。
我们推荐一开始使用较小、较简单的部署,以测试你的应用程序,并避免高昂的账单开销。在许多地区创建大量虚拟机将对你的订阅收费金额产生指数级影响。
在 选择要部署的地区(Select regions to deploy) 旁边的下拉菜单中,最多选择4个要部署UE应用的地区。用户连接到你的网址后,将定向到距其最近的地区(按最低ping计算),因此你需要考虑用户最有可能位于什么地方。
请记住,每个地区都有自己的虚拟机配额,你需要提前管理,如上所述,否则部署将失败。
每个地区的GPU VM实例数(GPU VM Instances Per Region) 将控制在所选地区会启动的虚拟机数量。如果按如下所述启用了 自动缩放(Auto-scaling) ,此数量将根据需求增加或减少。
每个GPU VM的流数(Streams Per GPU VM) 是每个VM上运行的UE应用实例数,上限为2。如果你的应用程序很轻巧,或者不需要高帧率,像这样共享GPU可能非常有助于尽量降低开销。一般来说,在两个正在运行的应用之间共享GPU资源可能会对帧率产生负面影响。
启用 自动缩放(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。请务必检查你的配额,以支持此实例数量。 |
总结
在 流配置(Stream Configs) 选项卡中,你可以调整应用的分辨率和帧率。如果你要针对每个GPU 2个流的情况进行优化,这会很有用。
在 安全性(Security) 中,有一个选项可使用现有Azure DNS资源中你自己的自定义域名,可选择利用HTTPS连接。这在默认情况下是禁用的,但此文档可用于启用此选项。
如果配置了HTTPS,你还可以 在信令服务器上启用身份验证(Enable Auth on Signalling Server) ,这会在用户首次尝试通过浏览器访问应用程序时,将用户重定向到登录页面。通过身份验证之后,用户将重定向到应用程序。如果启用了此设置,你还需要在下一步中启用管理员操作面板(Admin Dashboard)以添加用户账户。
在 管理员操作面板(Admin Dashboard) 选项卡中,你可以启用管理员操作面板(Admin Dashboard),它提供了一个简单的界面,用于查看基本流量分析,向用户授予访问权限(如果启用),上传应用的新版本,以及更改自动缩放参数。
此功能需要在Azure活动目录中的应用注册,因此你需要在贵组织中拥有恰当的权限。按照此Microsoft文档操作,在另一个选项卡中创建应用注册,然后复制粘贴 应用程序(客户端)ID 。
配置所有设置之后,点击 查看 + 创建(Review + create) 。如果通过验证,并且一切正常,请点击 创建(Create) 以开始部署。可能需要几分钟时间才能创建必要的资源,尤其是需要启动并下载应用的GPU VM。部署完成后,点击 转至资源组(Go to resource group) 。
连接到你的流送实例
在部署的主资源组中,选择 流量管理器配置文件(Traffic Manager profile) 。
基本信息(Essentials)分段的右上角是 DNS名称(DNS name) 。此URL可以从此处复制并粘贴到新的浏览器选项卡中。这是通用URL,可供所有用户访问应用程序。用户将重新路由到距其最近的地区的配对器VM,并再次重定向到GPU实例上第一个可用的流。
激活管理员操作面板
如果在配置期间启用了管理员操作面板(Admin Dashboard),在部署所有资源之后,还需要执行某个额外的设置将其激活。
在主资源组中,打开其名称带有"-dashboard"字样的 应用服务(App Service) 。
基本信息(Essentials) 分段的右上角是此资源的 URL 。复制此地址。
回到你为此操作面板创建的 AAD应用注册(AAD App Registration)。在 基本信息(Essentials) 的右侧列中,点击 添加重定向URI(Add a Redirect URI) 。
点击 添加平台(Add a platform) 。点击弹出式边栏选项卡中的 网页(Web) 。
将操作面板应用服务的URL粘贴到 重定向URI(Redirect URI) 中,并将以下文本附加到其末尾:/.auth/login/aad/callback 。点击 配置(Configure) 。
现在,如果你访问之前粘贴的原始URL,将显示 管理员操作面板(Admin Dashboard) 。你可以随时返回 应用服务(App Service) 中查找此URL。
更新应用程序
如果启用了管理员操作面板(Admin Dashboard),你可以执行下面的步骤,以使用UE应用的新版本更新像素流部署。如果没有管理员操作面板(Admin Dashboard),就必须重新运行整个设置和配置。操作面板方法将利用现有资源和资源组,但新部署将创建所有新资源,并且不会覆盖或删除现有部署。
执行相同的先决条件步骤,以将应用的WindowsNoEditor文件夹压缩为
.zip
文件。在全局资源组中选择 存储账户(Storage Account) 。
在左侧面板中,选择 容器(Containers) 并打开 上传(Uploads) 容器。然后将
.zip
文件上传到此处。在浏览器中找到管理员操作面板(Admin Dashboard)。从左侧导航中选择 设置(Settings) 。
点击 添加新版本(Add New Version) 并根据需要调整设置。使用 选择blob(Select blob) 选择你上传到存储账户的
.zip
文件。完成后,点击 添加版本(Add Version) 。配对器和信令服务器每隔30秒会检查一次更新,并动态重新部署所有新版本。
如果你想精确控制运行的实例数而不扩展或缩减,可以将 最低空闲(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区域的记录。