演练:使用 PowerShell/API 部署内部版本
本主题介绍如何在 Windows 10 开发设备上基于 Windows Runner C# 样本,在 PowerShell 中为 Windows OS 虚拟机部署/创建构建。
注意
若要使用和查看 PlayFab 多人游戏服务器,则需要启用该功能。 我们建议使用 Game Manager 方法启用此功能。 有关说明,请参阅启用 PlayFab 服务器功能。
先决条件
确保满足以下先决条件。
1. 获取游戏 ID 和开发者密钥
获取 PlayFab 游戏 ID
- 在 PlayFab.com 上登录到你的开发者帐户
- 在 Game Manager 中,转至“我的工作室和游戏”页面。 查找游戏并获取 PlayFab 游戏 ID
获取游戏的开发者密钥
- 在 Game Manager 中,选择“游戏”>“设置”(齿轮图标)
- 选择“游戏设置”,然后选择“密钥”选项卡以获取开发者密钥
有关开发者密钥的详细信息,请参阅密钥管理
2. 安装 PlayFab 多人游戏 PowerShell 模块
以管理员身份打开 Windows Powershell,并运行以下命令以安装 PlayFabMultiplayer API 模块。 此新 PlayFabMultiplayer API 模块 取代了已经废弃的 Multiplayer PowerShell 模块。
如果以前已安装了 PlayFab 多人游戏 PowerShell 模块,请通过以下命令将其卸载。 对于那些正在转换到新模块的用户,请参阅 映射命令以查找新的等效命令。
Uninstall-Package PlayFabMultiplayer
此新模块中的命令和参数都不同。 有关每个命令的详细文档,请参阅 Cmdlet 文档。
Install-Module -Name PlayFabMultiplayerApi
提示
安装模块之前,可能需要先使用 Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
设置执行策略。 有关详细信息,请参阅 PowerShell 执行策略。
3. 获取游戏的 EntityToken
在 PowerShell 窗口中,使用游戏 ID 和相关联的开发者密钥运行以下命令:
Set-PfTitle -TitleID "mytitleID" -SecretKey "mysecretkey"
4. 上传资产
部署 Windows 服务器时,将使用托管的 Windows 容器。 只需将 PlayFab 多人游戏服务器生成作为资产上传即可。
使用 winrunnerSample.zip 的本地文件位置更新 FilePath 标志的值。 如果不知道此文件的位置,请按照 此处 的说明获取文件。
New-PfAsset -FilePath C:\windowsRunnerCSharp.zip -AssetName windowsRunnerCSharp.zip
5. 创建内部版本
现在已上传了资源,我们可以创建生成。 运行以下命令。
下面的代码在 EastUS 区域中使用 Standard_D2as_v4 虚拟机。 根据要使用的虚拟机和地区替换字符串。
$vmSize = "Standard_D2as_v4"
$regions = @( @{ StandbyServers = 1; MaxServers = 1; Region = 'EastUS'; ScheduledStandbySettings = $NULL } )
$ports = @( @{ Name = 'game_port'; Num = 3600; Protocol = 'TCP' } )
$gameAssets = @( @{ FileName = 'windowsRunnerCSharp.zip'; MountPath = 'C:\Assets' } )
$buildResponse = New-PfBuild -BuildName PSTest_build -ContainerFlavor ManagedWindowsServerCore -StartMultiplayerServerCommand 'C:\Assets\WindowsRunnerCSharp.exe' -GameAssetReferences $gameAssets -VMSize $vmSize -MultiplayerServerCountPerVM 1 -Ports $ports -RegionConfigurations $regions
# All PlayFabMultiplayerApi cmdlets return objects, so we can pass the returned object to ConvertTo-Json for human readability.
$buildResponse | ConvertTo-Json -depth 5
请检查构建是否成功
几秒钟后,将看到通过 PowerShell 或 ListBuildSummaries API 创建的构建。
还可以运行以下命令来检查生成是否已成功部署。
Get-PfBuild | ConvertTo-Json -depth 5