GameLift Server Amazon SDK 5.x untuk Unreal Engine -- Tindakan - Amazon GameLift

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

GameLift Server Amazon SDK 5.x untuk Unreal Engine -- Tindakan

Gunakan referensi SDK 5.x server Amazon GameLift Unreal untuk membantu Anda mempersiapkan game multipemain untuk digunakan dengan Amazon. GameLift Untuk detail tentang proses integrasi, lihatTambahkan Amazon GameLift ke server game Anda. Jika Anda menggunakan GameLift plugin Amazon untuk Unreal, lihat juga GameLift Plugin Amazon untuk Unreal Engine.

catatan

Topik ini menjelaskan Amazon GameLift C++ API yang dapat Anda gunakan saat membuat Unreal Engine. Secara khusus, dokumentasi ini berlaku untuk kode yang Anda kompilasi dengan -DBUILD_FOR_UNREAL=1 opsi.

GameLift Server Amazon SDK 5.x untuk Unreal Engine -- Tipe data

GetSdkVersion()

Mengembalikan nomor versi SDK saat ini yang dibangun ke dalam proses server.

Sintaks

FGameLiftStringOutcome GetSdkVersion();

Nilai yang ditampilkan

Jika berhasil, ini mengembalikan versi SDK saat ini sebagai objek FGameLiftStringOutcome. Objek yang dikembalikan menyertakan nomor versi (contoh5.0.0). Jika tidak berhasil, ini mengembalikan pesan kesalahan.

Contoh

Aws::GameLift::AwsStringOutcome SdkVersionOutcome = Aws::GameLift::Server::GetSdkVersion();

InitSDK()

Menginisialisasi Amazon GameLift SDK untuk armada terkelola EC2 . Panggil metode ini saat peluncuran, sebelum inisialisasi lain yang terkait dengan Amazon GameLift terjadi. Metode ini membaca parameter server dari lingkungan host untuk mengatur komunikasi antara server dan GameLift layanan Amazon.

Sintaks

FGameLiftGenericOutcome InitSDK()

Nilai yang ditampilkan

Jika berhasil, mengembalikan InitSdkOutcome objek yang menunjukkan bahwa proses server siap untuk memanggilProcessReady().

Contoh

//Call InitSDK to establish a local connection with the GameLift agent to enable further communication. FGameLiftGenericOutcome initSdkOutcome = gameLiftSdkModule->InitSDK();

InitSDK()

Menginisialisasi Amazon GameLift SDK untuk Anywhere armada. Panggil metode ini saat peluncuran, sebelum inisialisasi lain yang terkait dengan Amazon GameLift terjadi. Metode ini memerlukan parameter server eksplisit untuk mengatur komunikasi antara server dan GameLift layanan Amazon.

Sintaks

FGameLiftGenericOutcome InitSDK(serverParameters)

Parameter

FServerParameter

Untuk menginisialisasi server game di Amazon GameLift Anywhere armada, membangun ServerParameters objek dengan informasi berikut:

  • URL yang WebSocket digunakan untuk terhubung ke server game Anda.

  • ID dari proses yang digunakan untuk meng-host server game Anda.

  • ID komputasi yang menghosting proses server game Anda.

  • ID GameLift armada Amazon yang berisi Amazon Anda GameLift Anywhere menghitung.

  • Token otorisasi yang dihasilkan oleh GameLift operasi Amazon.

Nilai yang dikembalikan

Jika berhasil, mengembalikan InitSdkOutcome objek yang menunjukkan bahwa proses server siap untuk memanggilProcessReady().

catatan

Jika panggilan gagal untuk build game yang diterapkan ke InitSDK() armada Anywhere, periksa ServerSdkVersion parameter yang digunakan saat membuat sumber daya build. Anda harus secara eksplisit menetapkan nilai ini ke versi SDK server yang digunakan. Nilai default untuk parameter ini adalah 4.x, yang tidak kompatibel. Untuk mengatasi masalah ini, buat build baru dan terapkan ke armada baru.

Contoh

//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()

Memberitahu Amazon GameLift bahwa proses server siap untuk meng-host sesi game. Panggil metode ini setelah memanggilInitSDK(). Metode ini harus dipanggil hanya satu kali per proses.

Sintaks

GenericOutcome ProcessReady(const Aws::GameLift::Server::ProcessParameters &processParameters);

Parameter

processParameters

FProcessParameterObjek yang mengkomunikasikan informasi berikut tentang proses server:

  • Nama metode callback yang diimplementasikan dalam kode server game yang dipanggil GameLift layanan Amazon untuk berkomunikasi dengan proses server.

  • Nomor port yang didengarkan oleh proses server.

  • Jalur ke file khusus sesi game apa pun yang Anda GameLift ingin Amazon tangkap dan simpan.

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Contoh ini menggambarkan panggilan ProcessReady() dan mendelegasi implementasi fungsi.

//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()

Memberitahu Amazon GameLift bahwa proses server berakhir. Panggil metode ini setelah semua tugas pembersihan lainnya (termasuk mematikan sesi permainan aktif) dan sebelum mengakhiri proses. Tergantung pada hasilProcessEnding(), proses keluar dengan sukses (0) atau kesalahan (-1) dan menghasilkan peristiwa armada. Jika proses berakhir dengan kesalahan, peristiwa armada yang dihasilkan adalahSERVER_PROCESS_TERMINATED_UNHEALTHY).

Sintaks

FGameLiftGenericOutcome ProcessEnding()

Nilai yang ditampilkan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

//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()

Memberi tahu Amazon GameLift bahwa proses server telah mengaktifkan sesi permainan dan sekarang siap menerima koneksi pemain. Tindakan ini harus dipanggil sebagai bagian dari fungsi onStartGameSession() callback, setelah semua inisialisasi sesi game.

Sintaks

FGameLiftGenericOutcome ActivateGameSession()

Nilai yang ditampilkan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Contoh ini menunjukkan ActivateGameSession() dipanggil sebagai bagian dari fungsi onStartGameSession() delegasi.

//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()

Memperbarui kemampuan sesi game saat ini untuk menerima sesi pemain baru. Sesi game dapat diatur untuk menerima atau menolak semua sesi pemain baru.

Sintaks

FGameLiftGenericOutcome UpdatePlayerSessionCreationPolicy(EPlayerSessionCreationPolicy policy)

Parameter

playerCreationSessionKebijakan

Nilai string yang menunjukkan apakah sesi game menerima pemain baru.

Nilai yang valid meliputi:

  • ACCEPT_ALL — Menerima semua sesi pemain baru.

  • DENY_ALL — Menolak semua sesi pemain baru.

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Contoh ini menetapkan kebijakan bergabung sesi game saat ini untuk menerima semua pemain.

FGameLiftGenericOutcome outcome = gameLiftSdkModule->UpdatePlayerSessionCreationPolicy(Aws::GameLift::Model::EPlayerSessionCreationPolicy::ACCEPT_ALL);

GetGameSessionId()

Mengambil ID sesi permainan yang dihosting oleh proses server aktif.

Untuk proses idle yang tidak diaktifkan dengan sesi game, panggilan akan menampilkan file. FGameLiftError

Sintaks

FGameLiftStringOutcome GetGameSessionId()

Parameter

Tindakan ini tidak memiliki parameter.

Nilai yang dikembalikan

Jika berhasil, ini mengembalikan ID sesi game sebagai objek FGameLiftStringOutcome. Jika tidak berhasil, mengembalikan pesan kesalahan.

Untuk proses idle yang tidak diaktifkan dengan sesi game, panggilan mengembalikan Success = True dan GameSessionId ="".

Contoh

//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()

Mengembalikan waktu yang merupakan jadwal proses server akan ditutup, jika waktu penghentian tersedia. Proses server mengambil tindakan setelah menerima onProcessTerminate() panggilan balik dari Amazon GameLift. Amazon GameLift onProcessTerminate() menyerukan alasan-alasan berikut:

  • Ketika proses server telah melaporkan kesehatan yang buruk atau belum menanggapi Amazon GameLift.

  • Saat mengakhiri instance selama acara scale-down.

  • Ketika sebuah instance dihentikan karena gangguan spot-instance.

Sintaks

AwsDateTimeOutcome GetTerminationTime()

Nilai yang ditampilkan

Jika berhasil, ini mengembalikan waktu penghentian sebagai objek AwsDateTimeOutcome. Nilainya adalah waktu penghentian, dinyatakan dalam kutu yang telah berlalu sejak. 0001 00:00:00 Misalnya, nilai waktu tanggal 2020-09-13 12:26:40 -000Z sama dengan 637355968000000000 kutu. Jika tidak ada waktu penghentian tersedia, pesan kesalahan ditampilkan.

Jika proses belum menerima ProcessParameters.OnProcessTerminate() panggilan balik, pesan kesalahan akan dikembalikan. Untuk informasi selengkapnya tentang mematikan proses server, lihatMenanggapi notifikasi shutdown proses server.

Contoh

AwsDateTimeOutcome TermTimeOutcome = gameLiftSdkModule->GetTerminationTime();

AcceptPlayerSession()

Memberi tahu Amazon GameLift bahwa pemain dengan ID sesi pemain yang ditentukan telah terhubung ke proses server dan memerlukan validasi. Amazon GameLift memverifikasi bahwa ID sesi pemain valid. Setelah sesi pemain divalidasi, Amazon GameLift mengubah status slot pemain dari RESERVED menjadi AKTIF.

Sintaks

FGameLiftGenericOutcome AcceptPlayerSession(const FString& playerSessionId)

Parameter

playerSessionId

ID unik yang dikeluarkan oleh Amazon GameLift saat sesi pemain baru dibuat.

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

Contoh ini menangani permintaan koneksi yang mencakup memvalidasi dan menolak sesi pemain yang tidak valid. 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()

Memberitahu Amazon GameLift bahwa pemain telah terputus dari proses server. Sebagai tanggapan, Amazon GameLift mengubah slot pemain menjadi tersedia.

Sintaks

FGameLiftGenericOutcome RemovePlayerSession(const FString& playerSessionId)

Parameter

playerSessionId

ID unik yang dikeluarkan oleh Amazon GameLift saat sesi pemain baru dibuat.

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

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()

Mengambil data sesi pemain yang mencakup pengaturan, metadata sesi, dan data pemain. Gunakan metode ini untuk mendapatkan informasi tentang hal-hal berikut:

  • Sesi pemain tunggal

  • Semua sesi pemain dalam sesi permainan

  • Semua sesi pemain yang terkait dengan ID pemain tunggal

Sintaks

FGameLiftDescribePlayerSessionsOutcome DescribePlayerSessions(const FGameLiftDescribePlayerSessionsRequest &describePlayerSessionsRequest)

Parameter

FGameLiftDescribePlayerSessionsRequest

FGameLiftDescribePlayerSessionsRequestObjek yang menggambarkan sesi pemain mana yang akan diambil.

Nilai yang dikembalikan

Jika berhasil, ini mengembalikan objek FGameLiftDescribePlayerSessionsOutcome yang berisi satu set objek sesi pemain yang sesuai dengan parameter permintaan.

Contoh

Contoh ini meminta semua sesi pemain yang terhubung secara aktif ke sesi permainan tertentu. Dengan menghilangkan NextTokendan menyetel nilai Batas ke 10, Amazon GameLift mengembalikan catatan sesi 10 pemain pertama yang cocok dengan permintaan.

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()

Mengirim permintaan untuk menemukan pemain baru untuk slot terbuka dalam sesi permainan yang dibuat dengan FlexMatch. Untuk informasi selengkapnya, lihat fitur FlexMatch isi ulang.

Tindakan ini asinkron. Jika pemain baru dicocokkan, Amazon GameLift mengirimkan data mak comblang yang diperbarui menggunakan fungsi panggilan balik. OnUpdateGameSession()

Proses server hanya dapat melakukan satu permintaan backfill match yang aktif dalam satu waktu. Untuk mengirim permintaan baru, panggil StopMatchBackfill() terlebih dahulu untuk membatalkan permintaan asli.

Sintaks

FGameLiftStringOutcome StartMatchBackfill (FStartMatchBackfillRequest &startBackfillRequest);

Parameter

FStartMatchBackfillRequest

StartMatchBackfillRequest Objek yang mengkomunikasikan informasi berikut:

  • ID tiket untuk ditetapkan ke permintaan backfill. Informasi ini opsional; jika tidak ada ID yang diberikan, Amazon GameLift akan menghasilkannya.

  • Matchmaker untuk dikirimi permintaan. ARN konfigurasi penuh diperlukan. Nilai ini ada dalam data mak comblang sesi permainan.

  • ID sesi permainan untuk mengisi ulang.

  • Data perjodohan yang tersedia untuk pemain sesi permainan saat ini.

Nilai yang dikembalikan

Mengembalikan StartMatchBackfillOutcome objek dengan ID tiket isi ulang kecocokan, atau kegagalan dengan pesan kesalahan.

Contoh

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()

Membatalkan permintaan pengisian ulang pertandingan yang aktif. Untuk informasi selengkapnya, lihat fitur FlexMatch isi ulang.

Sintaks

FGameLiftGenericOutcome StopMatchBackfill (FStopMatchBackfillRequest &stopBackfillRequest);

Parameter

FStopMatchBackfillRequest

StopMatchBackfillRequest Objek yang mengidentifikasi tiket perjodohan untuk dibatalkan:

  • ID tiket yang ditetapkan untuk permintaan pengisian ulang.

  • Mak comblang permintaan isi ulang dikirim ke.

  • Sesi permainan yang terkait dengan permintaan isi ulang.

Nilai yang dikembalikan

Mengembalikan hasil generik yang terdiri dari keberhasilan atau kegagalan dalam sebuah pesan kesalahan.

Contoh

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()

Mengambil jalur ke sertifikat TLS yang digunakan untuk mengenkripsi koneksi jaringan antara Amazon Anda GameLift Anywhere menghitung sumber daya dan Amazon GameLift. Anda dapat menggunakan jalur sertifikat saat mendaftarkan perangkat komputasi ke Amazon GameLift Anywhere armada. Untuk informasi lebih lanjut lihat, RegisterCompute.

Sintaks

FGameLiftGetComputeCertificateOutcome FGameLiftServerSDKModule::GetComputeCertificate()

Nilai yang ditampilkan

Mengembalikan GetComputeCertificateResponse objek yang berisi berikut:

  • CertificatePath: Jalur ke sertifikat TLS pada sumber daya komputasi Anda.

  • HostName: Nama host sumber daya komputasi Anda.

Contoh

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()

Mengambil kredensyal peran IAM yang memberi wewenang kepada Amazon GameLift untuk berinteraksi dengan orang lain. Layanan AWS Untuk informasi selengkapnya, lihat Berkomunikasi dengan AWS sumber daya lain dari armada Anda.

Sintaks

FGameLiftGetFleetRoleCredentialsOutcome FGameLiftServerSDKModule::GetFleetRoleCredentials(const FGameLiftGetFleetRoleCredentialsRequest &request)

Parameter

FGameLiftGetFleetRoleCredentialsRequest

Nilai yang dikembalikan

Mengembalikan objek FGameLiftGetFleetRoleCredentialsOutcome.

Contoh

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 }