

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

# 遷移至適用於 的伺服器 SDK 5.x Amazon GameLift Servers
<a name="reference-serversdk5-migration"></a>

若要更新遊戲專案以使用伺服器 SDK 5.x 版，請進行下列變更：

**注意**  
如果您需要繼續使用伺服器 SDK 4.x 版或更早版本，請參閱 [第 4 Amazon GameLift Servers版及更早版本的伺服器 SDK](reference-serversdk4.md) 以取得文件和下載資訊。對於 SDK 4.0.2 版，您可以從[官方 GitHub 版本](https://github.com/amazon-gamelift/amazon-gamelift-servers-csharp-server-sdk/releases)下載它。

1. 取得適用於開發環境 **【[下載網站](https://aws.amazon.com/gamelift/servers/getting-started-sdks/)】** Amazon GameLift Servers套件的最新伺服器開發套件。針對下載的套件和版本，請遵循 `Readme` 檔案中的安裝指示。請參閱將伺服器 SDKs與遊戲專案搭配使用的這些說明。
   + [對於使用 C\$1\$1、C\$1 或 Go 的開發環境](gamelift-sdk-server-api.md)
   + [適用於 Unreal Engine 專案 （僅適用於 Unreal 程式庫的 C\$1\$1 伺服器 SDK)](integration-engines-setup-unreal.md)
   + [適用於 Unity 專案 （僅適用於 Unity 程式庫的 C\$1 伺服器 SDK)](integration-engines-unity-using.md)
   + [與 Unreal Engine 的 Amazon GameLift Servers 外掛程式搭配使用](unreal-plugin.md)
   + [與 Unity 的 Amazon GameLift Servers 外掛程式搭配使用](unity-plug-in.md)

1. 更新您的伺服器程式碼，如下所示：
   + 將伺服器程式碼回呼函數`onCreateGameSession()`變更為 `onStartGameSession()`。
   + 視需要更新`InitSDK()`輸入：
     + 如果您計劃使用 Amazon GameLift Servers 代理程式將遊戲伺服器組建部署到Amazon GameLift Servers受管 EC2 機群或 Anywhere 機群：

       呼叫`InitSDK()`無參數 ([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk))。此呼叫會設定運算環境以及與 Amazon GameLift Servers服務的 WebSocket 連線。
     + 如果您打算在沒有 Amazon GameLift Servers 代理程式的情況下，將遊戲伺服器組建部署到 Anywhere 機群：

       `InitSDK()` 使用伺服器參數 ([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-initsdk-anywhere)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-initsdk-anywhere)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-initsdk-anywhere)) 呼叫 。遊戲伺服器程序使用這些參數來建立與服務的連線Amazon GameLift Servers。

1. 如果您的遊戲伺服器建置或其他託管應用程式在執行時與其他 AWS 資源通訊，您將需要變更應用程式存取這些資源的方式。以新的伺服器 SDK `AssumeRoleCredentials` 動作 `GetFleetRoleCredentials()`（適用於遊戲伺服器） 取代 的使用，或使用共用的登入資料 （適用於其他應用程式）。如需如何實作此變更的詳細資訊，請參閱 [將Amazon GameLift Servers託管遊戲伺服器連接到其他 AWS 資源](gamelift-sdk-server-resources.md)。

1. 如果您的專案呼叫伺服器 SDK 動作`GetInstanceCertificate()`來擷取 TLS 憑證，請修改您的程式碼以改用新的 `GetComputeCertificate()`([C\$1\$1](integration-server-sdk5-cpp-actions.md#integration-server-sdk5-cpp-getcomputecertificate)) ([C\$1](integration-server-sdk5-csharp-actions.md#integration-server-sdk5-csharp-getcomputecertificate)) ([Unreal](integration-server-sdk5-unreal-actions.md#integration-server-sdk5-unreal-getcomputecertificate))。

1. 將遊戲組建上傳至 Amazon GameLift Servers（例如使用 [upload-build](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/gamelift/upload-build.html) 或 [CreateBuild()](https://docs.aws.amazon.com/gameliftservers/latest/apireference/API_CreateBuild.html)) 時，請將 `ServerSdkVersion` 參數設定為您正在使用的 5.x 版本 （此參數目前預設為 4.0.2)。此參數必須符合遊戲伺服器組建中的實際伺服器 SDK 程式庫。如果您為上傳的遊戲伺服器組建指定錯誤的版本，則使用該組建建立的任何機群都會失敗。請參閱 [為 建立遊戲伺服器組建 Amazon GameLift Servers](gamelift-build-cli-uploading.md)。

   下列範例說明如何指定伺服器 SDK 版本：

   ```
   aws gamelift upload-build \
       --operating-system AMAZON_LINUX_2023 \
       --server-sdk-version "5.0.0" \
       --build-root "~/mygame" \
       --name "My Game Nightly Build" \
       --build-version "build 255" \
       --region us-west-2
   ```

1. 如果您使用指令碼遠端連線至受管機群，請更新指令碼以使用新程序，如中所述[連線至機群執行個體](fleets-remote-access.md)。