限制

Cloud Code 模块对您可以处理的数据量有限制。

Cloud Code API

  • Cloud Code Client API 服务将每个玩家限制为每分钟 12,000 个请求。
  • Cloud Code Admin API 服务将每个服务帐户限制为每分钟 120 个请求。
  • Admin API 的速率限制值较小,因此不要按玩家调用 Admin API。

Cloud Code C# 模块

  • 包含模块的 .ccm 文件的大小不能超过 10 MB。
  • 项目中所有 .ccm 文件的总大小不能超过 128 Mb。
  • 执行模块时响应正文(模块的输出)的总大小不能超过 2 MiB。
  • 项目中所有环境的模块数量不能超过 20 个。
  • 模块函数的执行时间不能超过 15 秒。如果函数超过此时间限制,则进程将被终止。
  • 一个模块最多可以有 10 个标签,每个标签键和标签值允许的最大字符数为 128。
  • 如果一个模块在过去 15 分钟内没有收到任何流量,可能遇到了冷启动延迟。对该模块的所有后续调用会更快。
  • async void 模式会导致错误。始终返回 TaskTask<T>。请参阅官方 Microsoft 文档以了解有关异步编程的最佳做法。
  • Cloud Code 不支持 Cloud Code 函数的静态方法。

模块在调用之间的持久性

无法保证模块状态在调用之间保持不变。模块可能会在不同的工作线程上重新加载,因此您不能总是依赖跨模块函数调用的共享状态。但是,在模块保持加载状态时,静态变量和单例依赖项会在调用之间共享。

您可以利用这种行为,将数据缓存在静态变量或单例依赖项中,以减少需要从外部服务获取的数据量。不要使用此模块行为来保存数据,尤其是需要对所有玩家保持一致的数据。

依赖项注入

  • 不要依赖模块函数调用之间的共享状态,因为当有多个工作线程时,不能保证 API 调用每次都落在同一个工作线程上。
  • 如果 Cloud Code 的某个工作线程超出了 256 MB 的内存限制,则该工作线程最终会崩溃。
  • ICloudCodeSetup 配置只能由一个模块中的单个类实现。

推送消息

  • 通过 WebSocket 连接发送的消息限制为 10 KB。

UGS CLI 和编辑器部署

  • UGS CLI 和 Deployment(部署)窗口无法部署包含在同一项目中的多个模块。
  • UGS CLI 和 Deployment(部署)窗口不支持模块标签并会忽略标签。

编辑器绑定

  • 生成的绑定不区分必需参数和可选参数。
  • 不支持元组作为参数或返回值。

Cloud Code 与其他 Unity 服务的集成

  • 所有 Unity 服务都有基于每个玩家的速率限制以防止 API 过度使用。Cloud Code 速率限制在游戏和服务器代码之间共享。例如,如果您同时在 Cloud Code 和游戏中使用 Economy,则可能会收到意外的速率限制错误。在调试这些错误时,请务必考虑到这两种使用情况。
  • 模块只能访问您部署到保存模块的同一环境中的其他 UGS 资源。模块无法访问任何其他环境中的服务。

要详细了解如何与 Cloud Code 集成,请参阅与其他 Unity 服务集成页面。