기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Unreal Engine용 Amazon GameLift Server SDK 5.x: 작업
Amazon GameLift Unreal 서버 SDK 5.x 참조를 사용하면 Amazon 에서 사용할 멀티플레이어 게임을 준비하는 데 도움이 됩니다 GameLift. 통합 프로세스에 대한 자세한 내용은 GameLift 게임 서버에 Amazon 추가 섹션을 참조하세요. Amazon GameLift 플러그인 for Unreal을 사용하는 경우 을 참조하세요Unreal Engine용 Amazon GameLift 플러그인.
참고
이 주제에서는 Unreal Engine을 빌드할 때 사용할 수 API 있는 Amazon GameLift C++에 대해 설명합니다. 특히, 이 설명서는 -DBUILD_FOR_UNREAL=1
옵션을 사용하여 컴파일하는 코드에 적용됩니다.
Unreal Engine용 Amazon GameLift Server SDK 5.x: 데이터 유형
주제
- GetSdkVersion()
- 초기화SDK()
- 초기화SDK()
- ProcessReady()
- ProcessEnding()
- ActivateGameSession()
- UpdatePlayerSessionCreationPolicy()
- GetGameSessionId()
- GetTerminationTime()
- AcceptPlayerSession()
- RemovePlayerSession()
- DescribePlayerSessions()
- StartMatchBackfill()
- StopMatchBackfill()
- GetComputeCertificate()
- GetFleetRoleCredentials()
GetSdkVersion()
서버 프로세스에 SDK 내장된 의 현재 버전 번호를 반환합니다.
구문
FGameLiftStringOutcome GetSdkVersion();
반환 값
성공하면 는 현재 SDK 버전을 FGameLiftStringOutcome 객체로 반환합니다. 반환된 객체는 버전 번호(예: 5.0.0
)를 포함합니다. 실패하면 오류 메시지를 반환합니다.
예
Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();
초기화SDK()
관리형 EC2플릿에 대해 Amazon GameLift SDK을 초기화합니다. Amazon과 관련된 다른 초기화가 GameLift 발생하기 전에 시작 시 이 메서드를 호출합니다. 이 메서드는 호스트 환경에서 서버 파라미터를 읽고 서버와 Amazon GameLift 서비스 간의 통신을 설정합니다.
구문
FGameLiftGenericOutcome InitSDK()
반환 값
성공하는 경우, 서버 프로세스가 ProcessReady()를 호출할 준비가 되었음을 나타내는 InitSdkOutcome
객체를 반환합니다.
예
//Call InitSDK to establish a local connection with the GameLift agent to enable further communication. FGameLiftGenericOutcome initSdkOutcome = gameLiftSdkModule->InitSDK();
초기화SDK()
에 대한 Amazon GameLift SDK을 초기화합니다.Anywhere 플릿. Amazon과 관련된 다른 초기화가 GameLift 발생하기 전에 시작 시 이 메서드를 호출합니다. 이 메서드에서는 서버와 Amazon GameLift 서비스 간의 통신을 설정하기 위해 명시적 서버 파라미터가 필요합니다.
구문
FGameLiftGenericOutcome InitSDK(serverParameters)
파라미터
- FServerParameters
-
Amazon에서 게임 서버를 초기화하려면 GameLift Anywhere 플릿에서 다음 정보를 사용하여
ServerParameters
객체를 구성합니다.-
게임 서버에 연결하는 데 WebSocket 사용되는 URL의 .
-
게임 서버를 호스팅하는 데 사용되는 프로세스의 ID입니다.
-
게임 서버 프로세스를 호스팅하는 컴퓨팅의 ID입니다.
-
Amazon이 포함된 Amazon GameLift 플릿의 ID GameLift Anywhere 컴퓨팅.
-
Amazon GameLift 작업에서 생성된 권한 부여 토큰입니다.
-
반환 값
성공하는 경우, 서버 프로세스가 ProcessReady()를 호출할 준비가 되었음을 나타내는 InitSdkOutcome
객체를 반환합니다.
참고
Anywhere 플릿에 배포된 게임 빌드에 대한 InitSDK()
로의 호출이 실패하는 경우 빌드 리소스를 생성할 때 사용된 ServerSdkVersion
파라미터를 확인합니다. 이 값을 사용 중인 서버 SDK 버전으로 명시적으로 설정해야 합니다. 이 파라미터의 기본값은 4.x이며 호환되지 않습니다. 이 문제를 해결하려면 새 빌드를 생성하여 새 플릿에 배포해야 합니다.
예
//Define the server parameters FServerParameters serverParameters; parameters.m_authToken = "
1111aaaa-22bb-33cc-44dd-5555eeee66ff
"; parameters.m_fleetId = "arn:aws:gamelift:us-west-1:111122223333:fleet/fleet-9999ffff-88ee-77dd-66cc-5555bbbb44aa
"; parameters.m_hostId = "HardwareAnywhere
"; parameters.m_processId = "PID1234
"; parameters.m_webSocketUrl = "wss://us-west-1.api.amazongamelift.com
"; //Call InitSDK to establish a local connection with the GameLift agent to enable further communication. FGameLiftGenericOutcome initSdkOutcome = gameLiftSdkModule->InitSDK(serverParameters);
ProcessReady()
서버 프로세스가 게임 세션을 호스팅할 준비가 GameLift 되었음을 Amazon에 알립니다. 초기화SDK() 호출 후 이 메서드를 호출합니다. 이 메서드는 프로세스당 한 번만 호출해야 합니다.
구문
GenericOutcome ProcessReady(const Aws::GameLift::Server::ProcessParameters
&processParameters);
파라미터
- processParameters
-
다음 서버 프로세스 관련 정보를 전달하는 FProcessParameters 객체입니다.
-
Amazon GameLift 서비스가 서버 프로세스와 통신하기 위해 호출하는 게임 서버 코드에 구현된 콜백 메서드의 이름입니다.
-
서버 프로세스가 수신하는 포트 번호입니다.
-
Amazon에서 GameLift 캡처하고 저장하려는 게임 세션별 파일의 경로입니다.
-
반환 값
성공 또는 실패와 함께 오류 메시지로 구성된 일반적인 결과를 반환합니다.
예
이 예에서는 ProcessReady() 호출 및 위임 함수 구현을 모두 보여줍니다.
//Calling ProcessReady tells GameLift this game server is ready to receive incoming game sessions! UE_LOG(GameServerLog, Log, TEXT("Calling Process Ready")); FGameLiftGenericOutcome processReadyOutcome = gameLiftSdkModule->ProcessReady(*params);
ProcessEnding()
서버 프로세스가 종료되고 GameLift 있음을 Amazon에 알립니다. 다른 모든 정리 작업(활성 게임 세션 종료 포함) 후 프로세스를 종료하기 전에 이 방법을 호출합니다. ProcessEnding()
의 결과에 따라 프로세스가 성공(0) 또는 오류(-1)로 종료되고 플릿 이벤트가 생성됩니다. 오류가 발생하여 프로세스가 종료되는 경우 생성되는 플릿 이벤트는 SERVER_PROCESS_TERMINATED_UNHEALTHY
입니다.
구문
FGameLiftGenericOutcome ProcessEnding()
반환 값
성공 또는 실패와 함께 오류 메시지로 구성된 일반적인 결과를 반환합니다.
예
//OnProcessTerminate callback. GameLift will invoke this callback before shutting down an instance hosting this game server. //It gives this game server a chance to save its state, communicate with services, etc., before being shut down. //In this case, we simply tell GameLift we are indeed going to shutdown. params->OnTerminate.BindLambda([=]() { UE_LOG(GameServerLog, Log, TEXT("Game Server Process is terminating")); gameLiftSdkModule->ProcessEnding(); });
ActivateGameSession()
서버 프로세스가 게임 세션을 활성화했으며 이제 플레이어 연결을 수신할 준비가 GameLift 되었음을 Amazon에 알립니다. 이 작업은 모든 게임 세션 초기화 후 onStartGameSession()
콜백 함수의 일부로 호출되어야 합니다.
구문
FGameLiftGenericOutcome ActivateGameSession()
반환 값
성공 또는 실패와 함께 오류 메시지로 구성된 일반적인 결과를 반환합니다.
예
이 예에서는 onStartGameSession()
위임 함수의 일부로 ActivateGameSession()
이 호출되는 것을 보여줍니다.
//When a game session is created, GameLift sends an activation request to the game server and passes along the game session object containing game properties and other settings. //Here is where a game server should take action based on the game session object. //Once the game server is ready to receive incoming player connections, it should invoke GameLiftServerAPI.ActivateGameSession() auto onGameSession = [=](Aws::GameLift::Server::Model::GameSession gameSession) { FString gameSessionId = FString(gameSession.GetGameSessionId()); UE_LOG(GameServerLog, Log, TEXT("GameSession Initializing: %s"), *gameSessionId); gameLiftSdkModule->ActivateGameSession(); };
UpdatePlayerSessionCreationPolicy()
현재 게임 세션의 새 플레이어 세션 수락 가능성을 업데이트합니다. 모든 새 플레이어 세션을 수락하거나 거부하도록 게임 세션을 설정할 수 있습니다.
구문
FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)
파라미터
- playerCreationSession정책
-
게임 세션이 새 플레이어를 수락하는지 여부를 나타내는 문자열 값입니다.
유효한 값으로는 다음이 포함됩니다.
-
ACCEPT_ALL – 모든 새 플레이어 세션을 수락합니다.
-
DENY_ALL – 모든 새 플레이어 세션을 거부합니다.
-
반환 값
성공 또는 실패와 함께 오류 메시지로 구성된 일반적인 결과를 반환합니다.
예
이 예는 모든 플레이어를 수락하도록 현재 게임 세션의 참여 정책을 설정합니다.
FGameLiftGenericOutcome outcome = gameLiftSdkModule->UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::EPlayerSessionCreationPolicy::
ACCEPT_ALL
);
GetGameSessionId()
활성 서버 프로세스가 호스팅된 게임 세션의 ID를 가져옵니다.
게임 세션으로 활성화되지 않은 유휴 프로세스의 경우 호출은 FGameLiftError를 반환합니다.
구문
FGameLiftStringOutcome GetGameSessionId()
파라미터
이 작업에는 파라미터가 없습니다.
반환 값
성공하면 게임 세션 ID를 FGameLiftStringOutcome 객체로 반환합니다. 실패하면 오류 메시지를 반환합니다.
게임 세션으로 활성화되지 않은 유휴 프로세스의 경우 호출은 Success
=True
및 GameSessionId
=""
를 반환합니다.
예
//When a game session is created, GameLift sends an activation request to the game server and passes along the game session object containing game properties and other settings. //Here is where a game server should take action based on the game session object. //Once the game server is ready to receive incoming player connections, it should invoke GameLiftServerAPI.ActivateGameSession() auto onGameSession = [=](Aws::GameLift::Server::Model::GameSession gameSession) { FString gameSessionId = FString(gameSession.GetGameSessionId()); UE_LOG(GameServerLog, Log, TEXT("GameSession Initializing: %s"), *gameSessionId); gameLiftSdkModule->ActivateGameSession(); };
GetTerminationTime()
종료 시간을 사용할 수 있는 경우 서버 프로세스가 종료되도록 예약된 시간을 반환합니다. 서버 프로세스는 Amazon 에서 onProcessTerminate()
콜백을 수신한 후 조치를 취합니다 GameLift. Amazon은 다음과 같은 이유로 onProcessTerminate()
를 GameLift 호출합니다.
-
서버 프로세스가 불량 상태를 보고했거나 Amazon 에 응답하지 않은 경우 GameLift.
-
스케일 다운 이벤트 중에 인스턴스를 종료하는 경우
-
스팟 인스턴스 중단으로 인해 인스턴스가 종료되는 경우
구문
AwsDateTimeOutcome GetTerminationTime()
반환 값
성공하면 종료 시간을 AwsDateTimeOutcome
객체로 반환합니다. 값은 종료 시간이며, 0001 00:00:00
이후 경과된 틱 수로 표시됩니다. 예를 들어, 날짜 시간 값 2020-09-13
12:26:40 -000Z
는 637355968000000000
틱 수와 같습니다. 사용 가능한 종료 시간이 없는 경우 오류 메시지를 반환합니다.
프로세스가
ProcessParameters.OnProcessTerminate()
콜백을 받지 못한 경우 오류 메시지가 반환됩니다. 서버 프로세스 종료에 대한 자세한 내용은 서버 프로세스 종료 알림에 응답 섹션을 참조하세요.
예
AwsDateTimeOutcome TermTimeOutcome = gameLiftSdkModule->GetTerminationTime();
AcceptPlayerSession()
지정된 플레이어 세션 ID를 가진 플레이어 GameLift 가 서버 프로세스에 연결되었으며 검증이 필요함을 Amazon에 알립니다. Amazon은 플레이어 세션 ID가 유효한지 GameLift 확인합니다. 플레이어 세션이 검증되면 Amazon은 플레이어 슬롯의 상태를 에서 RESERVED로 GameLift 변경합니다ACTIVE.
구문
FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)
파라미터
- playerSessionId
-
새 플레이어 세션이 생성될 GameLift 때 Amazon에서 발급한 고유 ID입니다.
반환 값
성공 또는 실패와 함께 오류 메시지로 구성된 일반적인 결과를 반환합니다.
예
이 예제에서는 유효하지 않은 플레이어 세션 의 검증 및 거부를 포함하는 연결 요청을 처리합니다IDs.
bool GameLiftManager::AcceptPlayerSession(const FString& playerSessionId, const FString& playerId) { #if WITH_GAMELIFT UE_LOG(GameServerLog, Log, TEXT("Accepting GameLift PlayerSession: %s . PlayerId: %s"), *playerSessionId, *playerId); FString gsId = GetCurrentGameSessionId(); if (gsId.IsEmpty()) { UE_LOG(GameServerLog, Log, TEXT("No GameLift GameSessionId. Returning early!")); return false; } if (!gameLiftSdkModule->AcceptPlayerSession(playerSessionId).IsSuccess()) { UE_LOG(GameServerLog, Log, TEXT("PlayerSession not Accepted.")); return false; } // Add PlayerSession from internal data structures keeping track of connected players connectedPlayerSessionIds.Add(playerSessionId); idToPlayerSessionMap.Add(playerSessionId, PlayerSession{ playerId, playerSessionId }); return true; #else return false; #endif }
RemovePlayerSession()
플레이어 GameLift 가 서버 프로세스에서 연결 해제되었음을 Amazon에 알립니다. 이에 대한 응답으로 Amazon은 플레이어 슬롯을 사용 가능으로 GameLift 변경합니다.
구문
FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)
파라미터
playerSessionId
-
새 플레이어 세션이 생성될 GameLift 때 Amazon에서 발급한 고유 ID입니다.
반환 값
성공 또는 실패와 함께 오류 메시지로 구성된 일반적인 결과를 반환합니다.
예
bool GameLiftManager::RemovePlayerSession(const FString& playerSessionId) { #if WITH_GAMELIFT UE_LOG(GameServerLog, Log, TEXT("Removing GameLift PlayerSession: %s"), *playerSessionId); if (!gameLiftSdkModule->RemovePlayerSession(playerSessionId).IsSuccess()) { UE_LOG(GameServerLog, Log, TEXT("PlayerSession Removal Failed")); return false; } // Remove PlayerSession from internal data structures that are keeping track of connected players connectedPlayerSessionIds.Remove(playerSessionId); idToPlayerSessionMap.Remove(playerSessionId); // end the session if there are no more players connected if (connectedPlayerSessionIds.Num() == 0) { EndSession(); } return true; #else return false; #endif }
DescribePlayerSessions()
설정, 세션 메타데이터 및 플레이어 데이터 등의 플레이어 세션 데이터를 가져옵니다. 이 메서드를 사용하여 다음에 대한 정보를 얻을 수 있습니다.
-
단일 플레이어 세션
-
게임 세션의 모든 플레이어 세션
-
단일 플레이어 ID와 연결된 모든 플레이어 세션
구문
FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)
파라미터
- FGameLiftDescribePlayerSessionsRequest
-
검색할 플레이어 세션을 설명하는 FGameLiftDescribePlayerSessionsRequest 객체입니다.
반환 값
성공하는 경우, 요청 파라미터에 적합한 플레이어 세션 객체 집합이 들어 있는 FGameLiftDescribePlayerSessionsOutcome 객체를 반환합니다.
예
다음은 지정된 게임 세션에 활성 상태로 연결되어 있는 모든 플레이어 세션을 요청하는 예입니다. 제한 값을 생략NextToken하고 10으로 설정하면 Amazon은 요청과 일치하는 처음 10개의 플레이어 세션 레코드를 GameLift 반환합니다.
void GameLiftManager::DescribePlayerSessions() { #if WITH_GAMELIFT FString localPlayerSessions; for (auto& psId : connectedPlayerSessionIds) { PlayerSession ps = idToPlayerSessionMap[psId]; localPlayerSessions += FString::Printf(TEXT("%s : %s ; "), *(ps.playerSessionId), *(ps.playerId)); } UE_LOG(GameServerLog, Log, TEXT("LocalPlayerSessions: %s"), *localPlayerSessions); UE_LOG(GameServerLog, Log, TEXT("Describing PlayerSessions in this GameSession")); FGameLiftDescribePlayerSessionsRequest request; request.m_gameSessionId = GetCurrentGameSessionId(); FGameLiftDescribePlayerSessionsOutcome outcome = gameLiftSdkModule->DescribePlayerSessions(request); LogDescribePlayerSessionsOutcome(outcome); #endif }
StartMatchBackfill()
로 생성된 게임 세션에서 열린 슬롯의 새 플레이어를 찾으라는 요청을 보냅니다 FlexMatch. 자세한 내용은 FlexMatch 채우기 기능 을 참조하세요.
이 작업은 비동기식입니다. 새 플레이어가 일치하면 Amazon은 콜백 함수 를 사용하여 업데이트된 매치메이커 데이터를 GameLift 제공합니다OnUpdateGameSession()
.
서버 프로세스는 한 번에 하나의 활성 매치 채우기 요청만 할 수 있습니다. 새 요청을 보내려면 먼저 StopMatchBackfill()을 호출하여 원본 요청을 취소해야 합니다.
구문
FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);
파라미터
- FStartMatchBackfillRequest
-
다음 정보를 전달하는 StartMatchBackfillRequest 객체입니다.
-
채우기 요청에 할당할 티켓 ID. 이 정보는 선택 사항입니다. ID를 입력하지 않으면 Amazon에서 ID를 GameLift 생성합니다.
-
요청을 보낼 매치메이커. 전체 구성ARN이 필요합니다. 이 값은 게임 세션의 매치메이커 데이터에 있습니다.
-
채울 게임 세션의 ID입니다.
-
게임 세션의 현재 플레이어에 대해 사용 가능한 매치메이킹 데이터입니다.
-
반환 값
매치 채우기 티켓 ID와 함께 StartMatchBackfillOutcome
객체나 오류 메시지를 포함한 결함을 반환합니다.
예
FGameLiftStringOutcome FGameLiftServerSDKModule::StartMatchBackfill(const FStartMatchBackfillRequest& request) { #if WITH_GAMELIFT Aws::GameLift::Server::Model::StartMatchBackfillRequest sdkRequest; sdkRequest.SetTicketId(TCHAR_TO_UTF8(*request.m_ticketId)); sdkRequest.SetGameSessionArn(TCHAR_TO_UTF8(*request.m_gameSessionArn)); sdkRequest.SetMatchmakingConfigurationArn(TCHAR_TO_UTF8(*request.m_matchmakingConfigurationArn)); for (auto player : request.m_players) { Aws::GameLift::Server::Model::Player sdkPlayer; sdkPlayer.SetPlayerId(TCHAR_TO_UTF8(*player.m_playerId)); sdkPlayer.SetTeam(TCHAR_TO_UTF8(*player.m_team)); for (auto entry : player.m_latencyInMs) { sdkPlayer.WithLatencyMs(TCHAR_TO_UTF8(*entry.Key), entry.Value); } std::map<std::string, Aws::GameLift::Server::Model::AttributeValue> sdkAttributeMap; for (auto attributeEntry : player.m_playerAttributes) { FAttributeValue value = attributeEntry.Value; Aws::GameLift::Server::Model::AttributeValue attribute; switch (value.m_type) { case FAttributeType::STRING: attribute = Aws::GameLift::Server::Model::AttributeValue(TCHAR_TO_UTF8(*value.m_S)); break; case FAttributeType::DOUBLE: attribute = Aws::GameLift::Server::Model::AttributeValue(value.m_N); break; case FAttributeType::STRING_LIST: attribute = Aws::GameLift::Server::Model::AttributeValue::ConstructStringList(); for (auto sl : value.m_SL) { attribute.AddString(TCHAR_TO_UTF8(*sl)); }; break; case FAttributeType::STRING_DOUBLE_MAP: attribute = Aws::GameLift::Server::Model::AttributeValue::ConstructStringDoubleMap(); for (auto sdm : value.m_SDM) { attribute.AddStringAndDouble(TCHAR_TO_UTF8(*sdm.Key), sdm.Value); }; break; } sdkPlayer.WithPlayerAttribute((TCHAR_TO_UTF8(*attributeEntry.Key)), attribute); } sdkRequest.AddPlayer(sdkPlayer); } auto outcome = Aws::GameLift::Server::StartMatchBackfill(sdkRequest); if (outcome.IsSuccess()) { return FGameLiftStringOutcome(outcome.GetResult().GetTicketId()); } else { return FGameLiftStringOutcome(FGameLiftError(outcome.GetError())); } #else return FGameLiftStringOutcome(""); #endif }
StopMatchBackfill()
활성 매치 채우기 요청을 취소합니다. 자세한 내용은 FlexMatch 채우기 기능 을 참조하세요.
구문
FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);
파라미터
- FStopMatchBackfillRequest
-
취소할 매치메이킹 티켓을 식별하는 StopMatchBackfillRequest 객체:
-
채우기 요청에 할당된 티켓 ID
-
채우기 요청을 보낸 매치메이커
-
채우기 요청과 연결된 게임 세션
-
반환 값
성공 또는 실패와 함께 오류 메시지로 구성된 일반적인 결과를 반환합니다.
예
FGameLiftGenericOutcome FGameLiftServerSDKModule::StopMatchBackfill(const FStopMatchBackfillRequest& request) { #if WITH_GAMELIFT Aws::GameLift::Server::Model::StopMatchBackfillRequest sdkRequest; sdkRequest.SetTicketId(TCHAR_TO_UTF8(*request.m_ticketId)); sdkRequest.SetGameSessionArn(TCHAR_TO_UTF8(*request.m_gameSessionArn)); sdkRequest.SetMatchmakingConfigurationArn(TCHAR_TO_UTF8(*request.m_matchmakingConfigurationArn)); auto outcome = Aws::GameLift::Server::StopMatchBackfill(sdkRequest); if (outcome.IsSuccess()) { return FGameLiftGenericOutcome(nullptr); } else { return FGameLiftGenericOutcome(FGameLiftError(outcome.GetError())); } #else return FGameLiftGenericOutcome(nullptr); #endif }
GetComputeCertificate()
Amazon 간의 네트워크 연결을 암호화하는 데 사용되는 TLS 인증서의 경로를 검색합니다. GameLift Anywhere 컴퓨팅 리소스 및 Amazon GameLift. Amazon에 컴퓨팅 디바이스를 등록할 때 인증서 경로를 사용할 수 있습니다. GameLift Anywhere 플릿. 자세한 내용은 섹션을 참조하세요RegisterCompute.
구문
FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()
반환 값
다음을 포함하는 GetComputeCertificateResponse
객체를 반환합니다.
-
CertificatePath: 컴퓨팅 리소스의 TLS 인증서 경로입니다.
-
HostName: 컴퓨팅 리소스의 호스트 이름입니다.
예
FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate() { #if WITH_GAMELIFT auto outcome = Aws::GameLift::Server::GetComputeCertificate(); if (outcome.IsSuccess()) { auto& outres = outcome.GetResult(); FGameLiftGetComputeCertificateResult result; result.m_certificate_path = UTF8_TO_TCHAR(outres.GetCertificatePath()); result.m_computeName = UTF8_TO_TCHAR(outres.GetComputeName()); return FGameLiftGetComputeCertificateOutcome(result); } else { return FGameLiftGetComputeCertificateOutcome(FGameLiftError(outcome.GetError())); } #else return FGameLiftGetComputeCertificateOutcome(FGameLiftGetComputeCertificateResult()); #endif }
GetFleetRoleCredentials()
Amazon이 다른 와 상호 작용 GameLift 할 수 있는 권한을 부여하는 IAM 역할 자격 증명을 검색합니다 AWS 서비스. 자세한 내용은 플릿의 다른 AWS 리소스와 통신 단원을 참조하십시오.
구문
FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)
파라미터
FGameLiftGetFleetRoleCredentialsRequest
반환 값
FGameLiftGetFleetRoleCredentialsOutcome 객체를 반환합니다.
예
FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request) { #if WITH_GAMELIFT Aws::GameLift::Server::Model::GetFleetRoleCredentialsRequest sdkRequest; sdkRequest.SetRoleArn(TCHAR_TO_UTF8(*request.m_roleArn)); sdkRequest.SetRoleSessionName(TCHAR_TO_UTF8(*request.m_roleSessionName)); auto outcome = Aws::GameLift::Server::GetFleetRoleCredentials(sdkRequest); if (outcome.IsSuccess()) { auto& outres = outcome.GetResult(); FGameLiftGetFleetRoleCredentialsResult result; result.m_assumedUserRoleArn = UTF8_TO_TCHAR(outres.GetAssumedUserRoleArn()); result.m_assumedRoleId = UTF8_TO_TCHAR(outres.GetAssumedRoleId()); result.m_accessKeyId = UTF8_TO_TCHAR(outres.GetAccessKeyId()); result.m_secretAccessKey = UTF8_TO_TCHAR(outres.GetSecretAccessKey()); result.m_sessionToken = UTF8_TO_TCHAR(outres.GetSessionToken()); result.m_expiration = FDateTime::FromUnixTimestamp(outres.GetExpiration()); return FGameLiftGetFleetRoleCredentialsOutcome(result); } else { return FGameLiftGetFleetRoleCredentialsOutcome(FGameLiftError(outcome.GetError())); } #else return FGameLiftGetFleetRoleCredentialsOutcome(FGameLiftGetFleetRoleCredentialsResult()); #endif }