演练:使用 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

请检查构建是否成功

几秒钟后,将看到通过 PowerShellListBuildSummaries API 创建的构建。

还可以运行以下命令来检查生成是否已成功部署。

Get-PfBuild | ConvertTo-Json -depth 5

另请参阅