快速入门:使用 Azure Functions 编写 PlayFab CloudScript
在本快速入门中,你将使用 Visual Studio Code、Azure Functions C# 和 Unity C# 通过 Azure Functions 编写一个 CloudScript。完成本指南后,你将能够将新的 CloudScript 链接到规则、计划任务,甚至从你的客户端代码中调用它。先决条件
要开始使用 PlayFab C# CloudScript,需要完成几个步骤。- 访问 Visual Studio Code 的快速入门:使用 Visual Studio Code 创建 Azure Functions 项目,完成设置后返回此处。该快速入门指南中涵盖以下先决条件:
- 一个 PlayFab 帐户。
PlayFab Azure Functions 可以使用 Azure Functions V2 或更高版本的运行时,以及 .NET Core 2 或更高版本。我们建议你使用最新版本(当前为 Azure Functions V4 和 .NET 6)。
创建 Azure Function
- 创建一个基本的 “HelloWorld” 示例函数。你可以通过遵循使用 Visual Studio Code 创建你的第一个函数指南了解如何执行此操作。有关使用 PlayFab 变量的代码示例,请参阅 PlayFab 函数上下文、变量和使用服务器 SDK 部分。
“使用 Visual Studio Code 创建你的第一个函数”指南指示你将 Azure Function 的授权级别设置为
Anonymous。这样做是为了简化测试。在生产环境中,大多数情况下,你不应使用 Anonymous 授权,因为它允许任何人调用你的函数终结点。若要在 PlayFab 环境中正确保护你的函数,我们建议你使用 Function 级别的授权。-
创建并部署函数后,请转到 Automation > Cloud Script,然后选择页面右上角的 Register Function 按钮。

-
对于 Name,输入函数的一个便于识别的名称。对于 Function URL,输入该函数的 HTTP 触发器 URL。该 URL 可在 Azure 函数资源的上下文菜单中找到,如快速入门:使用 Visual Studio Code 在 Azure 中创建函数的 “Run the function in Azure” 部分所示。如果你的 Azure Function 使用
Function级别的授权,则该 URL 包含授权密钥。
从 PlayFab 游戏中使用和调用 CloudScript 使用 Azure Functions
本指南中的示例代码使用 Unity C# 和 Azure Function C# 代码编写。 现在你的函数已注册,你可以在 PlayFab API 中调用该函数。从 Visual Studio Code 使用 HTTP 请求调用你的函数
使用 REST Client 扩展,你可以在 Visual Studio 中调用该函数。从 Unity 调用你的函数
你可以在 Unity 中使用此代码来调用你的函数。PlayFab CloudScript 上下文、变量与服务器 SDK
使用 Azure Functions 的 CloudScript 的一大优势是,PlayStream 事件和玩家配置文件上下文会自动传递给 Azure Function。在调用 CloudScript 时,你会根据该函数的调用场景收到相应的上下文。例如,由 PlayStream 操作触发与直接从客户端调用,上下文会有所不同。这包括调用 CloudScript 时所代表的实体配置文件,以及可能用于调用 CloudScript 的 PlayStream 事件等信息。- 你需要通过 Package Manager 安装 PlayFab SDK。为此,请在 Visual Studio Code 中打开 Terminal 或 CMD 控制台并输入:
dotnet add package PlayFabAllSDK - 你需要包含实现
PlayFab.Samples的 CS2AFHelperClasses.cs 文件 - 脚本的执行可以通过多种方法进行(API、计划任务、PlayStream 事件、分段进入和退出方法)。执行的上下文对于实现你的 CloudScript 很重要。有关如何使用脚本上下文的详细信息,请参阅使用 CloudScript 上下文模型教程。
Environment.GetEnvironmentVariable() 方法进行检索。
CurrentPlayerId 与我们传统的 CloudScript 实现中一样可用。你在 FunctionParameters 字段中传入的参数可在 args 中获取。但是,与使用 Visual Studio Code 创建你的第一个函数指南中的 Hello World 示例不同,参数是在 POST 正文中传递,而不是在查询字符串中。
要从 PlayFab SDK 调用 HelloWorld Azure Function,请使用 ExecuteFunction。
自动化规则中的 Azure Functions
也可以通过创建规则和计划任务来调用 Azure Functions。其工作方式与我们的标准 CloudScript 相同。要创建规则或计划任务,请转到 Automation > Rules 或 Automation > Scheduled Tasks。- 选择 New Rule
- 输入规则名称
- 选择此规则触发的事件类型
- 添加一个操作
- 从操作下拉列表中,选择 Execute Azure Function

