

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 適用於 Amazon GameLift Servers -- 資料類型的 Go 伺服器 SDK
<a name="integration-server-sdk-go-datatypes"></a>

使用伺服器 SDK 參考來整合多玩家遊戲，以便與 進行託管Amazon GameLift Servers。如需整合程序的指引，請參閱 [使用伺服器 SDK 將 Amazon GameLift Servers新增至您的遊戲伺服器](gamelift-sdk-server-api.md)。

`GameLiftServerAPI.go` 定義 Go 伺服器 SDK 動作。

[適用於 Amazon GameLift Servers -- 動作的 Go 伺服器 SDK](integration-server-sdk-go-actions.md)

**Topics**
+ [LogParameters](#integration-server-sdk-go-dataypes-log)
+ [MetricsParameters](#integration-server-sdk-go-dataypes-metrics)
+ [ProcessParameters](#integration-server-sdk-go-dataypes-process)
+ [UpdateGameSession](#integration-server-sdk-go-dataypes-updategamesession)
+ [GameSession](#integration-server-sdk-go-dataypes-gamesession)
+ [ServerParameters](#integration-server-sdk-go-dataypes-serverparameters)
+ [StartMatchBackfillRequest](#integration-server-sdk-go-dataypes-startmatchbackfillrequest)
+ [Player](#integration-server-sdk-go-dataypes-player)
+ [DescribePlayerSessionsRequest](#integration-server-sdk-go-dataypes-playersessions)
+ [StopMatchBackfillRequest](#integration-server-sdk-go-dataypes-stopmatchbackfillrequest)
+ [GetFleetRoleCredentialsRequest](#integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest)

## LogParameters
<a name="integration-server-sdk-go-dataypes-log"></a>

識別在遊戲工作階段期間產生的檔案的物件，Amazon GameLift Servers您想要在遊戲工作階段結束後上傳和存放。遊戲伺服器會將 Amazon GameLift Servers作為[ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready)呼叫中`ProcessParameters`物件的一部分`LogParameters`提供給 。


|  |  | 
| --- |--- |
| **屬性** | Description | 
| LogPaths | Amazon GameLift Servers 您要存放以供日後存取的遊戲伺服器日誌檔案的目錄路徑清單。伺服器程序會在每個遊戲工作階段期間產生這些檔案。您可以在遊戲伺服器中定義檔案路徑和名稱，並將其存放在根遊戲建置目錄中。<br />日誌路徑必須是絕對的。例如，如果您的遊戲組建將遊戲工作階段日誌存放在路徑中，例如 `MyGame\sessionLogs\`，則路徑會位於 Windows 執行個體`c:\game\MyGame\sessionLogs`上。<br />**Type (類型)**：`[]string`<br />**必要**：否 | 

## MetricsParameters
<a name="integration-server-sdk-go-dataypes-metrics"></a>

用於初始化指標系統的物件通訊組態參數。此組態用於設定 StatsD 報告、當機報告和指標處理行為。遊戲伺服器Amazon GameLift Servers會在[InitMetrics()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initmetrics)呼叫過程中提供 `MetricsParameters`給 。


|  |  | 
| --- |--- |
| **屬性** | Description | 
| StatsdHost | 用於指標報告的 StatsD 伺服器主機 （例如 "localhost")。<br />**Type (類型)**：`string`<br />**必要**：是 | 
| StatsdPort | 用於指標報告的 StatsD 伺服器連接埠 （例如 8125)。<br />**Type (類型)**：`int`<br />**必要**：是 | 
| CrashReporterHost | 用於當機追蹤和程序監控的當機報告程式主機。<br />**Type (類型)**：`string`<br />**必要**：是 | 
| CrashReporterPort | 用於當機追蹤和程序監控的當機報告程式連接埠。<br />**Type (類型)**：`int`<br />**必要**：是 | 
| FlushIntervalMs | 指標排清間隔，以毫秒為單位。控制指標傳送至 StatsD 的頻率。<br />**Type (類型)**：`int`<br />**必要**：是 | 
| MaxPacketSize | 指標的封包大小上限，以位元組為單位。限制傳送至 StatsD 的 UDP 封包大小。<br />**Type (類型)**：`int`<br />**必要**：是 | 

## ProcessParameters
<a name="integration-server-sdk-go-dataypes-process"></a>

描述伺服器程序與 之間通訊的物件Amazon GameLift Servers。伺服器程序Amazon GameLift Servers透過呼叫 將此資訊提供給 [ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready)。


|  |  | 
| --- |--- |
| **屬性** | Description | 
| LogParameters | 具有在遊戲工作階段期間產生之檔案目錄路徑的物件。 會Amazon GameLift Servers複製和存放檔案以供日後存取。**Type (類型)**：`LogParameters`<br />**必要**：否 | 
| OnHealthCheck | Amazon GameLift Servers 呼叫 從伺服器程序請求運作狀態報告的回呼函數。 每 60 秒會Amazon GameLift Servers呼叫此函數，並等待 60 秒進行回應。FALSE 如果運作狀態TRUE良好，伺服器程序會傳回 。如果未傳回任何回應， 會將伺服器程序Amazon GameLift Servers記錄為運作狀態不佳。**Type (類型)**：`OnHealthCheck func() bool`<br />**必要**：否 | 
| OnProcessTerminate | Amazon GameLift Servers 呼叫 以強制伺服器程序關閉的回呼函數。呼叫此函數後， 會Amazon GameLift Servers等待 5 分鐘讓伺服器程序關閉，並在關閉伺服器程序之前回應[ProcessEnding()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processending)呼叫。**Type (類型)**：`OnProcessTerminate func()`<br />**必要**：是 | 
| OnStartGameSession | Amazon GameLift Servers 呼叫 以將更新後的遊戲工作階段物件傳遞至伺服器程序的回呼函數。 會在處理配對回填請求時Amazon GameLift Servers呼叫此函數，以提供更新後的配對建構器資料。它會傳遞[GameSession](#integration-server-sdk-go-dataypes-gamesession)物件、狀態更新 (updateReason) 和相符回填票證 ID。**Type (類型)**：`OnStartGameSession func (model.GameSession )`<br />**必要**：是 | 
| OnUpdateGameSession | Amazon GameLift Servers 叫用以將更新後的遊戲工作階段資訊傳遞至伺服器程序的回呼函數。 會在處理配對回填請求後Amazon GameLift Servers呼叫此函數，以提供更新的配對建構器資料。**Type (類型)**：`OnUpdateGameSession func (model.UpdateGameSession)`<br />**必要**：否 | 
| Port | 伺服器程序接聽新玩家連線的連接埠號碼。值必須屬於為部署此遊戲伺服器組建之機群所設定的連接埠範圍。此連接埠號碼包含在遊戲工作階段和遊戲工作階段物件中，遊戲工作階段會使用該物件來連接到伺服器程序。**Type (類型)**：`int`<br />**必要**：是 | 

## UpdateGameSession
<a name="integration-server-sdk-go-dataypes-updategamesession"></a>

遊戲工作階段物件的更新，其中包括遊戲工作階段更新的原因，以及如果使用回填來填充遊戲工作階段中的玩家工作階段，則相關的回填票證 ID。


| Properties | **Description** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk-go-dataypes-gamesession) 物件。GameSession 物件包含描述遊戲工作階段的屬性。**Type (類型)**：`GameSession GameSession()`<br />**必要**：是 | 
| UpdateReason | 正在更新遊戲工作階段的原因。**Type (類型)**：`UpdateReason UpdateReason()`<br />**必要**：是 | 
| BackfillTicketId | 嘗試更新遊戲工作階段的回填票證 ID。**Type (類型)**：`String`<br />**必要**：否 | 

## GameSession
<a name="integration-server-sdk-go-dataypes-gamesession"></a>

遊戲工作階段的詳細資訊。


| Properties | **Description** | 
| --- | --- | 
| GameSessionId | 遊戲工作階段的唯一識別符。遊戲工作階段 Amazon Resource Name (ARN) 的格式如下：`arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| 名稱 | 遊戲工作階段的描述性標籤。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| FleetId | 遊戲工作階段執行所在的機群的唯一識別符。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| MaximumPlayerSessionCount | 遊戲工作階段的玩家連線數目上限。<br />**Type (類型)**：`Integer`<br />**必要**：否 | 
| 站點 | 遊戲工作階段的連接埠號碼。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。<br />**Type (類型)**：`Integer`<br />**必要**：否 | 
| IpAddress | 遊戲工作階段的 IP 地址。若要連線到Amazon GameLift Servers遊戲伺服器，應用程式需要 IP 地址和連接埠號碼。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| GameSessionData | 一組自訂遊戲工作階段屬性，格式為單一字串值。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| MatchmakerData | 用於建立遊戲工作階段的配對程序資訊，以 JSON 語法格式化為字串。除了使用的配對組態之外，還包含指派給配對的所有玩家的資料，包括玩家屬性和團隊指派。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| GameProperties | 一組遊戲工作階段的自訂屬性，格式為 key：value 對。這些屬性會與啟動新遊戲工作階段的請求一起傳遞。<br />**Type (類型)**：`map[string] string`<br />**必要**：否 | 
| DnsName | 指派給執行遊戲工作階段之執行個體的 DNS 識別符。值的格式如下：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html)<br />連線至在啟用 TLS 的機群上執行的遊戲工作階段時，您必須使用 DNS 名稱，而不是 IP 地址。<br />**Type (類型)**：`String`<br />**必要**：否 | 

## ServerParameters
<a name="integration-server-sdk-go-dataypes-serverparameters"></a>

用來維護 Amazon GameLift Servers Anywhere 伺服器與 Amazon GameLift Servers服務之間連線的資訊。使用 啟動新的伺服器程序時，會使用此資訊[InitSDK()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initsdk)。對於託管在Amazon GameLift Servers受管 EC2 執行個體上的伺服器，請使用空物件。


| Properties | **Description** | 
| --- | --- | 
| WebSocketURL | 當您[https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)使用 Amazon GameLift Servers Anywhere 運算資源時， 會`GameLiftServerSdkEndpoint`Amazon GameLift Servers傳回 。<br />**Type (類型)**：`string`<br />**必要**：是 | 
| ProcessID | 向託管遊戲的伺服器程序註冊的唯一識別符。<br />**Type (類型)**：`string`<br />**必要**：是 | 
| HostID | 託管新伺服器程序之運算資源的唯一識別符。<br />`HostID` 是當您註冊運算`ComputeName`時使用的 。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。<br />**Type (類型)**：`string`<br />**必要**：是 | 
| FleetID | 運算註冊目的地機群的唯一識別符。如需詳細資訊，請參閱 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)。**Type (類型)**：`string`<br />**必要**：是 | 
| AuthToken | 產生的身分驗證字符Amazon GameLift Servers，用於向 驗證您的伺服器Amazon GameLift Servers。如需詳細資訊，請參閱 [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)。**Type (類型)**：`string`<br />**必要**：是 | 

## StartMatchBackfillRequest
<a name="integration-server-sdk-go-dataypes-startmatchbackfillrequest"></a>

用來建立配對回填請求的資訊。遊戲伺服器會在[StartMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-startmatchbackfill)通話Amazon GameLift Servers中將此資訊傳達給 。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn | 唯一的遊戲工作階段識別符。API 操作會以 ARN 格式`[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk-go-actions.html#integration-server-sdk-go-getgamesessionid)`傳回識別符。<br />**Type (類型)**：`String`<br />**必要**：是 | 
| MatchmakingConfigurationArn | 配對建構器用於此請求的唯一識別符 （以 ARN 的形式）。原始遊戲工作階段的配對建構器 ARN 位於配對建構器資料屬性中的遊戲工作階段物件中。如需配對建構器資料的詳細資訊，請參閱[使用配對建構器資料](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)。<br />**Type (類型)**：`String`<br />**必要**：是 | 
| Players | 一組資料，代表目前在遊戲工作階段中的所有玩家。配對建構器使用此項資訊搜尋適合配對現有玩家的新玩家。<br />**Type (類型)**：`[]model.Player`<br />**必要**：是 | 
| TicketId | 配對或配對回填請求票證的唯一識別符。如果您不提供值， Amazon GameLift Servers會產生值。您可使用此識別項依據需求追蹤配對回填票證狀態或取消要求。<br />**Type (類型)**：`String`<br />**必要**：否 | 

## Player
<a name="integration-server-sdk-go-dataypes-player"></a>

在配對中代表玩家的物件。當配對請求開始時，玩家會有玩家 ID、屬性和可能的延遲資料。 會在配對完成後Amazon GameLift Servers新增隊伍資訊。


| Properties | **Description** | 
| --- | --- | 
| LatencyInMS | 一組以毫秒為單位的值，指出玩家連線到某個位置時所經歷的延遲量。<br />如果使用此屬性，則玩家只會符合列出的位置。若配對構建器有評估玩家延遲的規則，玩家則必須回報延遲度，方可配對。<br />**Type (類型)**：`map[string] int`<br />**必要**：否 | 
| PlayerAttributes | 包含玩家資訊的金鑰：值對集合，可用於配對。玩家屬性金鑰必須符合配對規則集中使用的 PlayerAttributes。<br />如需玩家屬性的詳細資訊，請參閱 [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)。<br />**Type (類型)**：`map[string] AttributeValue`<br />**必要**：否 | 
| PlayerId | 玩家的唯一識別符。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| 團隊 | 玩家在配對中獲指派的隊伍名稱。您可以在配對規則集中定義團隊名稱。<br />**Type (類型)**：`String`<br />**必要**：否 | 

## DescribePlayerSessionsRequest
<a name="integration-server-sdk-go-dataypes-playersessions"></a>

指定要擷取哪些玩家工作階段的物件。伺服器程序會在[DescribePlayerSessions()](integration-server-sdk-go-actions.md#integration-server-sdk-go-describeplayersessions)呼叫 時提供此資訊Amazon GameLift Servers。


| Properties | **Description** | 
| --- | --- | 
| GameSessionID | 唯一的遊戲工作階段識別符。請使用此參數要求特定遊戲工作階段的所有玩家工作階段。<br />遊戲工作階段 ID 格式為 `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>`。`GameSessionID` 是自訂 ID 字串或產生的字串。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| PlayerSessionID | 玩家工作階段的唯一識別符。使用此參數請求單一特定玩家工作階段。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| PlayerID | 玩家的唯一識別符。使用此參數來請求特定玩家的所有玩家工作階段。請參閱 [產生玩家 IDs](player-sessions-player-identifiers.md)。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| PlayerSessionStatusFilter | 要篩選結果的玩家工作階段狀態。可能的玩家工作階段狀態包括：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html)<br />**Type (類型)**：`String`<br />**必要**：否 | 
| NextToken | 表示結果下一頁開始的字符。若要指定結果集的開頭，請不要提供值。如果您提供玩家工作階段 ID，則會忽略此參數。<br />**Type (類型)**：`String`<br />**必要**：否 | 
| Limit | 回傳結果的數量上限。如果您提供玩家工作階段 ID，則會忽略此參數。<br />**Type (類型)**：`int`<br />**必要**：否 | 

## StopMatchBackfillRequest
<a name="integration-server-sdk-go-dataypes-stopmatchbackfillrequest"></a>

用來取消配對回填請求的資訊。遊戲伺服器會在[StopMatchBackfill()](integration-server-sdk-go-actions.md#integration-server-sdk-go-stopmatchbackfill)通話中將此資訊傳達給 Amazon GameLift Servers 服務。


| Properties | **Description** | 
| --- | --- | 
| GameSessionArn | 取消請求的唯一遊戲工作階段識別符。<br />**Type (類型)**：`string`<br />**必要**：否 | 
| MatchmakingConfigurationArn | 傳送此請求之配對建構器的唯一識別符。<br />**Type (類型)**：`string`<br />**必要**：否 | 
| TicketId | 要取消之回填請求票證的唯一識別符。<br />**Type (類型)**：`string`<br />**必要**：否 | 

## GetFleetRoleCredentialsRequest
<a name="integration-server-sdk-go-dataypes-getfleetrolecredentialsrequest"></a>

角色登入資料，可將 AWS 資源的有限存取權延伸到遊戲伺服器。如需詳細資訊，請參閱 [設定 的 IAM 服務角色 Amazon GameLift Servers](setting-up-role.md)。


| Properties | **Description** | 
| --- | --- | 
| RoleArn | 服務角色的 ARN，可延伸對 AWS 資源的有限存取權。**Type (類型)**：`string`<br />**必要**：是 | 
| RoleSessionName | 描述使用角色登入資料的工作階段名稱。**Type (類型)**：`string`<br />**必要**：是 | 