

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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가 게임 세션 종료 후 업로드하고 저장하기를 원하는 게임 세션 중에 생성된 파일을 식별하는 객체입니다. 게임 서버는 [ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready) 호출 시 `ProcessParameters` 객체의 일부로 `LogParameters`를 Amazon GameLift Servers에 제공합니다.


|  |  | 
| --- |--- |
|  **속성**  | 설명 | 
| LogPaths |  Amazon GameLift Servers가 향후 사용을 위해 저장하도록 하려는 게임 서버 로그 파일의 디렉터리 경로 목록입니다. 서버 프로세스는 각 게임 세션 중에 이러한 파일을 생성합니다. 게임 서버에서 파일 경로와 이름을 정의하고 이를 루트 게임 빌드 디렉터리에 저장합니다. 로그 경로는 절대값이어야 합니다. 예를 들어, 게임 빌드가 `MyGame\sessionLogs\`와 같은 경로에서 게임 세션 로그를 저장하면 이 경로는 Windows 인스턴스에서 `c:\game\MyGame\sessionLogs`가 됩니다. **유형**: `[]string` **필수 항목 여부**: 아니요  | 

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

지표 시스템을 초기화하기 위해 구성 파라미터를 전달하는 객체입니다. 이 구성은 StatsD 보고, 충돌 보고 및 지표 처리 동작을 설정하는 데 사용됩니다. 게임 서버는 [InitMetrics()](integration-server-sdk-go-actions.md#integration-server-sdk-go-initmetrics) 호출의 일부로 `MetricsParameters`를 Amazon GameLift Servers에 제공합니다.


|  |  | 
| --- |--- |
|  **속성**  | 설명 | 
| StatsdHost |  지표 보고를 위한 StatsD 서버 호스트(예: "localhost"). **유형**: `string` **필수 항목 여부**: 예  | 
| StatsdPort |  지표 보고를 위한 StatsD 서버 포트(예: 8125). **유형**: `int` **필수 항목 여부**: 예  | 
| CrashReporterHost |  충돌 추적 및 프로세스 모니터링을 위한 충돌 리포터 호스트입니다. **유형**: `string` **필수 항목 여부**: 예  | 
| CrashReporterPort |  충돌 추적 및 프로세스 모니터링을 위한 충돌 리포터 포트입니다. **유형**: `int` **필수 항목 여부**: 예  | 
| FlushIntervalMs |  밀리초 단위의 지표 플러시 간격. 지표가 StatsD로 전송되는 빈도를 제어합니다. **유형**: `int` **필수 항목 여부**: 예  | 
| MaxPacketSize |  바이트 단위의 지표에 대한 최대 패킷 크기. StatsD로 전송되는 UDP 패킷의 크기를 제한합니다. **유형**: `int` **필수 항목 여부**: 예  | 

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

서버 프로세스와 Amazon GameLift Servers 간의 통신을 설명하는 객체입니다. 서버 프로세스는 [ProcessReady()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processready)를 호출하여 이 정보를 Amazon GameLift Servers에 제공합니다.


|  |  | 
| --- |--- |
|  **속성**  | 설명 | 
| LogParameters | 게임 세션 중에 생성되는 파일에 대한 디렉터리 경로가 있는 객체입니다. Amazon GameLift Servers는 나중에 액세스할 수 있도록 파일을 복사하고 저장합니다.**유형**: `LogParameters`**필수 항목 여부**: 아니요 | 
| OnHealthCheck | Amazon GameLift Servers가 서버 프로세스에서 상태 보고서를 요청하기 위해 간접 호출하는 콜백 함수입니다. Amazon GameLift Servers는 60초 간격으로 이 기능을 호출하고 60초 동안 응답을 기다립니다. 서버 프로세스가 정상이면 TRUE를 반환하고, 정상이 아니면 FALSE를 반환합니다. 응답이 반환되지 않으면 Amazon GameLift Servers는 서버 프로세스를 정상이 아닌 것으로 기록합니다.**유형**: `OnHealthCheck func() bool`**필수 항목 여부**: 아니요 | 
| OnProcessTerminate | Amazon GameLift Servers가 서버 프로세스를 강제로 종료하기 위해 간접 호출하는 콜백 함수입니다. 이 함수를 호출한 후 Amazon GameLift Servers는 서버 프로세스가 종료될 때까지 5분을 기다렸다가 [ProcessEnding()](integration-server-sdk-go-actions.md#integration-server-sdk-go-processending) 호출로 응답한 후 서버 프로세스를 종료합니다.**유형**: `OnProcessTerminate func()`**필수 항목 여부**: 예 | 
| OnStartGameSession | Amazon GameLift Servers가 업데이트된 게임 세션 객체를 전달하기 위해 간접 호출하는 콜백 함수입니다. 매치 채우기 요청이 처리되면 업데이트된 매치메이커 데이터를 제공하기 위해 Amazon GameLift Servers에서 이 함수를 호출합니다. [GameSession](#integration-server-sdk-go-dataypes-gamesession) 객체, 상태 업데이트(updateReason) 및 매치 채우기 티켓 ID를 전달합니다.**유형**: `OnStartGameSession func (model.GameSession )`**필수 항목 여부**: 예 | 
| OnUpdateGameSession | Amazon GameLift Servers가 업데이트된 게임 세션 정보를 전달하기 위해 간접 호출하는 콜백 함수입니다. 매치 채우기 요청이 처리된 후 업데이트된 매치메이커 데이터를 제공하기 위해 Amazon GameLift Servers에서 이 함수를 호출합니다.**유형**: `OnUpdateGameSession func (model.UpdateGameSession)`**필수 항목 여부**: 아니요 | 
| Port | 서버 프로세스가 새 플레이어 연결을 수신 대기하는 포트 번호입니다. 이 값은 이 게임 서버 빌드를 전개하는 플릿에 대해 구성된 포트 범위에 속해야 합니다. 이 포트 번호는 게임 세션 및 플레이어 세션 객체에 포함되며, 게임 세션이 서버 프로세스에 연결할 때 이 포트 번호를 사용합니다.**유형**: `int`**필수 항목 여부**: 예 | 

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

게임 세션 객체의 업데이트로, 여기에는 게임 세션이 업데이트된 이유와 게임 세션의 플레이어 세션을 채우기 위해 backfill을 사용하는 경우 관련된 채우기 티켓 ID가 포함됩니다.


| 속성 | **설명** | 
| --- | --- | 
| GameSession | [GameSession](#integration-server-sdk-go-dataypes-gamesession) 객체입니다. GameSession 객체에는 게임 세션을 설명하는 속성이 포함되어 있습니다.**유형**: `GameSession GameSession()`**필수 항목 여부**: 예 | 
| UpdateReason | 게임 세션이 업데이트되는 이유입니다.**유형**: `UpdateReason UpdateReason()`**필수 항목 여부**: 예 | 
| BackfillTicketId | 게임 세션 업데이트를 시도하는 채우기 티켓의 ID입니다.**유형**: `String`**필수 항목 여부**: 아니요 | 

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

게임 세션의 세부 정보입니다.


| 속성 | **설명** | 
| --- | --- | 
| GameSessionId |  게임 세션에 대한 고유 식별자입니다. 게임 세션 Amazon 리소스 이름(ARN)은 다음과 같은 형식을 갖습니다. `arn:aws:gamelift:<region>::gamesession/<fleet ID>/<custom ID string or idempotency token>`  **유형**: `String` **필수 항목 여부**: 아니요  | 
| 이름 |  게임 세션을 설명하는 레이블입니다. **유형**: `String` **필수 항목 여부**: 아니요  | 
| FleetId |  게임 세션이 실행 중인 플릿의 고유 식별자입니다. **유형**: `String` **필수 항목 여부**: 아니요  | 
| MaximumPlayerSessionCount |  게임 세션에 연결된 최대 플레이어 수입니다. **유형**: `Integer` **필수 항목 여부**: 아니요  | 
| Port |  게임 세션의 포트 번호입니다. Amazon GameLift Servers 게임 서버에 연결하려면 앱에 IP 주소와 포트 번호가 모두 필요합니다. **유형**: `Integer` **필수 항목 여부**: 아니요  | 
| IpAddress |  게임 세션의 IP 주소입니다. Amazon GameLift Servers 게임 서버에 연결하려면 앱에 IP 주소와 포트 번호가 모두 필요합니다. **유형**: `String` **필수 항목 여부**: 아니요  | 
| GameSessionData |  단일 문자열 값으로 포맷된 사용자 지정 게임 세션 속성의 집합입니다. **유형**: `String` **필수 항목 여부**: 아니요  | 
| MatchmakerData |  게임 세션을 생성하는 데 사용된 매치메이킹 프로세스에 대한 정보(JSON 구문 사용, 문자열 형식). 사용된 매치메이킹 구성 외에도 플레이어 속성 및 팀 배정을 포함하여 경기에 배정된 모든 플레이어에 대한 데이터가 포함됩니다. **유형**: `String` **필수 항목 여부**: 아니요  | 
| GameProperties |  키:값 페어로 포맷된 게임 세션에 대한 사용자 정의 속성 집합입니다. 이러한 속성은 새 게임 세션을 시작하라는 요청과 함께 전달됩니다. **유형**: `map[string] string` **필수 항목 여부**: 아니요  | 
| DnsName |  게임 세션을 실행하는 인스턴스에 할당된 DNS 식별자입니다. 값은 다음 형식을 사용합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) TLS 지원 플릿에서 실행되는 게임 세션에 연결할 때는 IP 주소가 아닌 DNS 이름을 사용해야 합니다. **유형**: `String` **필수 항목 여부**: 아니요  | 

## 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 인스턴스에 호스팅되는 서버의 경우 빈 객체를 사용합니다.


| 속성 | **설명** | 
| --- | --- | 
| WebSocketURL |  Amazon GameLift Servers Anywhere 컴퓨팅 리소스에 대해 [https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)를 수행하면 `GameLiftServerSdkEndpoint` Amazon GameLift Servers가 반환됩니다. **유형**: `string` **필수 항목 여부**: 예  | 
| ProcessID |  게임을 호스팅하는 서버 프로세스에 등록된 고유 식별자입니다. **유형**: `string` **필수 항목 여부**: 예  | 
| HostID |  새 서버 프로세스를 호스팅하는 컴퓨팅 리소스의 고유 식별자입니다. `HostID`는 컴퓨터를 등록할 때 사용되는 `ComputeName`입니다. 자세한 내용은 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)를 참조하세요. **유형**: `string` **필수 항목 여부**: 예  | 
| FleetID | 컴퓨팅이 등록된 플릿의 고유 식별자입니다. 자세한 내용은 [RegisterCompute](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_RegisterCompute.html)를 참조하세요.**유형**: `string`**필수 항목 여부**: 예 | 
| AuthToken | Amazon GameLift Servers에서 생성한 인증 토큰으로, Amazon GameLift Servers에 서버를 인증합니다. 자세한 내용은 [GetComputeAuthToken](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_GetComputeAuthToken.html)을 참조하세요.**유형**: `string`**필수 항목 여부**: 예 | 

## 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에 전달합니다.


| 속성 | **설명** | 
| --- | --- | 
| GameSessionArn |  고유한 게임 세션 식별자입니다. API 작업 `[GetGameSessionId](https://docs.aws.amazon.com/gameliftservers/latest/developerguide/integration-server-sdk-go-actions.html#integration-server-sdk-go-getgamesessionid)`는 ARN 형식의 식별자를 반환합니다. **유형**: `String` **필수 항목 여부**: 예  | 
| MatchmakingConfigurationArn |  매치메이커가 이 요청에 사용할 (ARN 형식의) 고유 식별자입니다. 원본 게임 세션에 대한 매치메이커 ARN은 매치메이커 데이터 속성의 게임 세션 객체에 있습니다. 매치메이커 데이터에 대한 자세한 내용은 [매치메이커 데이터를 사용하는 작업](https://docs.aws.amazon.com/gameliftservers/latest/flexmatchguide/match-server.html#match-server-data.html)을 참조하세요. **유형**: `String` **필수 항목 여부**: 예  | 
| Players |  현재 게임 세션에 있는 모든 플레이어를 나타내는 데이터 세트입니다. 매치메이커는 이 정보를 사용하여 현재 플레이어와 적절하게 일치하는 새로운 플레이어를 검색합니다. **유형**: `[]model.Player` **필수 항목 여부**: 예  | 
| TicketId |  매치메이킹 또는 매치 채우기 요청 티켓의 고유 식별자입니다. 값을 제공하지 않으면 Amazon GameLift Servers에서 값을 생성합니다. 이 식별자를 사용하여 매치 채우기 티켓 상태를 추적하거나 필요한 경우 요청을 취소합니다. **유형**: `String` **필수 항목 여부**: 아니요  | 

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

매치메이킹 중인 플레이어를 나타내는 객체입니다. 매치메이킹 요청을 시작할 때 플레이어는 플레이어 ID, 속성, 지연 시간 데이터를 가지고 있을 수 있습니다. Amazon GameLift Servers는 매치가 성사된 후 팀 정보를 추가합니다.


| 속성 | **설명** | 
| --- | --- | 
| LatencyInMS |  플레이어가 특정 위치에 연결되었을 때 발생하는 지연 시간을 나타내는 값 집합으로, 밀리초 단위로 표시됩니다. 이 속성을 사용하는 경우 플레이어는 나열된 위치에서만 매칭됩니다. 매치메이커에 플레이어 지연 시간을 평가하는 규칙이 있는 경우 플레이어는 지연 시간을 보고해야 매칭됩니다. **유형**: `map[string] int` **필수 항목 여부**: 아니요  | 
| PlayerAttributes |  매치메이킹에 사용할 플레이어 정보가 포함된 키:값 페어의 모음입니다. 플레이어 속성 키는 매치메이킹 규칙 세트에 사용되는 PlayerAttributes와 일치해야 합니다. 플레이어 속성에 대한 자세한 내용은 [AttributeValue](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_AttributeValue.html)를 참조하세요. **유형**: `map[string] AttributeValue` **필수 항목 여부**: 아니요  | 
| PlayerId |  플레이어의 고유 식별자입니다. **유형**: `String` **필수 항목 여부**: 아니요  | 
| Team |  매치에서 플레이어가 배정되는 팀의 이름입니다. 매치메이킹 규칙 세트에 팀 이름을 정의합니다. **유형**: `String` **필수 항목 여부**: 아니요  | 

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

검색할 플레이어 세션을 지정하는 객체입니다. 서버 프로세스는 Amazon GameLift Servers로 [DescribePlayerSessions()](integration-server-sdk-go-actions.md#integration-server-sdk-go-describeplayersessions) 호출을 통해 이 정보를 제공합니다.


| 속성 | **설명** | 
| --- | --- | 
| GameSessionID |  고유한 게임 세션 식별자입니다. 지정한 게임 세션의 모든 플레이어 세션을 요청하려면 이 파라미터를 사용합니다. 게임 세션 ID 형식은 `arn:aws:gamelift:<region>::gamesession/fleet-<fleet ID>/<ID string>` 입니다. `GameSessionID`는 사용자 지정 ID 문자열 또는 생성된 문자열입니다. **유형**: `String` **필수 항목 여부**: 아니요  | 
| PlayerSessionID |  플레이어 세션의 고유 식별자입니다. 이 파라미터를 사용하여 단일 특정 플레이어 세션을 요청합니다. **유형**: `String` **필수 항목 여부**: 아니요  | 
| PlayerID |  플레이어의 고유 식별자입니다. 이 파라미터를 사용하여 특정 플레이어에 대한 모든 플레이어 세션을 요청합니다. [플레이어 ID 생성](player-sessions-player-identifiers.md)을(를) 참조하세요. **유형**: `String` **필수 항목 여부**: 아니요  | 
| PlayerSessionStatusFilter |  결과를 필터링하는 기준이 되는 플레이어 세션 상태입니다. 다음과 같은 플레이어 세션 상태가 가능합니다. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/gameliftservers/latest/developerguide/integration-server-sdk-go-datatypes.html) **유형**: `String` **필수 항목 여부**: 아니요  | 
| NextToken |  결과의 다음 페이지의 시작을 나타내는 토큰입니다. 결과 집합의 시작을 지정하려면 값을 제공하지 않습니다. 플레이어 세션 ID가 제공된 경우 이 파라미터가 무시됩니다. **유형**: `String` **필수 항목 여부**: 아니요  | 
| Limit |  반환할 최대 결과 수입니다. 플레이어 세션 ID가 제공된 경우 이 파라미터가 무시됩니다. **유형**: `int` **필수 항목 여부**: 아니요  | 

## 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 서비스에 전달합니다.


| 속성 | **설명** | 
| --- | --- | 
| GameSessionArn |  취소 중인 요청의 고유한 게임 세션 식별자입니다. **유형**: `string` **필수 항목 여부**: 아니요  | 
| MatchmakingConfigurationArn |  이 요청을 보낸 매치메이커의 고유 식별자입니다. **유형**: `string` **필수 항목 여부**: 아니요  | 
| TicketId |  취소할 채우기 요청 티켓의 고유 식별자입니다. **유형**: `string` **필수 항목 여부**: 아니요  | 

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

 AWS 리소스에 대한 제한된 액세스를 게임 서버로 확장하는 역할 자격 증명입니다. 자세한 내용은 단원을 참조하십시오[Amazon GameLift Servers의 IAM 서비스 역할 설정](setting-up-role.md).


| 속성 | **설명** | 
| --- | --- | 
| RoleArn |  AWS 리소스에 대한 제한된 액세스를 확장하는 서비스 역할의 ARN입니다.**유형**: `string`**필수 항목 여부**: 예 | 
| RoleSessionName | 역할 자격 증명의 사용을 설명하는 세션 이름입니다.**유형**: `string`**필수 항목 여부**: 예 | 