Server And Fleet#

What is Server#

Server 是这个库的核心属性. 它有两个属性:

  1. 一个是 config, 用于访问配置数据. 其本质是一个 acore_server_config.api.Server 对象 (另一个项目中的类).

  2. 另一个是 metadata, 用于访问 EC2 和 RDS 的属性. 其本质是一个 acore_server_metadata.api.Server 对象 (另一个项目中的类).

要创建一个 Server 对象很简单. 如果你的代码运行在 EC2 Game Server 之内, 那么调用 server = acore_server.api.Server.from_ec2_inside() 既可. 无需任何参数, 因为它会自动用 EC2 metadata API 获知自己是哪个 server. 而如果你的代码运行在 EC2 Game Server 之外, 那么调用 server = acore_server.api.Server.get(bsm=..., server_id=...) 既可, 关键参数是 AWS 的 boto session manager 和显式指定 server_id.

What is Fleet#

Fleet 则是一个能把一个 Environment 下的所有 server 的信息用一次 API 批量获得, 而无需一个个的调用 server = acore_server.api.Server.get(bsm=..., server_id=...), 提高了性能.

你只需要调用一次 fleet = acore_server.api.Fleet.get(bsm=..., env_name=...) 然后你就可以用 fleet.get_server(server_id=...) 来获取已经 load 到内存中的 server 的信息了.