

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

# 建置以雲端為基礎的測試環境
<a name="integration-dev-iteration-cloud"></a>

**注意**  
本主題涵蓋與適用於 5.x Amazon GameLift Servers版的伺服器 SDK 整合之遊戲的反覆測試。如果您的遊戲使用伺服器 SDK 4.x 版或更早版本，請參閱 [使用 Amazon GameLift Servers Local 測試您的整合](integration-testing-local.md)。

使用 Amazon GameLift Servers Anywhere 機群在雲端託管環境中反覆建置和測試遊戲元件。建立具有託管資源和 Amazon GameLift Servers服務連線的 Anywhere 機群、在它們上執行遊戲伺服器，並視需要測試遊戲功能。

**使用 Amazon GameLift Servers代理程式部署 Anywhere 機群**  
如果您的遊戲伺服器組建與 Amazon GameLift Servers SDK 5.x 或更新版本整合，您可以使用 Amazon GameLift Servers代理程式將其部署到雲端型 Anywhere 機群。代理程式是一種背景程序，可管理機群中每個運算的遊戲伺服器生命週期和其他任務。這些任務包括向 Anywhere 機群註冊運算、取得身分驗證字符，以及根據一組指示啟動/停止遊戲伺服器程序。代理程式是由機群的執行期組態所控制，您可以在機群生命週期內隨時更新。（代理程式會自動部署到受管 EC2 機群。) 如需詳細資訊和下載 代理程式，請參閱 [Amazon GameLift Servers GitHub 儲存庫](https://github.com/aws/amazon-gamelift-agent)。

## 使用 Amazon EC2 設定反覆測試
<a name="integration-dev-iteration-cloud-ec2"></a>

使用此[Amazon GameLift Servers工具組解決方案]( https://github.com/aws/amazon-gamelift-toolkit/tree/main/development-instance-with-amazon-gamelift-anywhere-and-gamelift-agent)中的引導式工作流程來設定以雲端為基礎的託管環境，以映射 的受管託管體驗Amazon GameLift Servers。

GitHub 儲存庫提供一組指令碼，可自動化大部分使用 Amazon GameLift Servers Anywhere 和 Amazon GameLift Servers Agent 設定測試環境的程序。當您有要測試的新遊戲伺服器建置時，它也提供更新環境的指引。您可以使用範例遊戲伺服器組建來執行部署測試環境的單一指令碼，也可以演練每個步驟，以使用您自己的遊戲伺服器組建進行設定。

在此工作流程中，您將完全在 中工作 AWS 管理主控台，使用 AWS CloudShell 執行指令碼並完成命令列任務。

**注意**  
對於本教學課程中的任務，您需要具有下列服務許可 AWS 的帳戶使用者：Amazon GameLift Servers、 AWS CloudShell、Amazon S3 AWS Systems Manager、Amazon EC2 和 AWS Identity and Access Management。具有 AWS 帳戶管理員層級存取權的使用者已經擁有必要的許可。

工作流程涵蓋下列任務：
+ **封裝適用於 的遊戲伺服器組建Amazon GameLift Servers。 **工作流程提供指令碼來建置範例 C\$1\$1 遊戲伺服器，該伺服器已與 5.x Amazon GameLift Servers版的伺服器 SDK 整合，並準備好託管。或者，如果您已完成整合，則可以使用自己的遊戲專案。
+ **設定 Amazon Simple Storage Service 儲存貯體來存放遊戲伺服器建置和相依性。**當您產生遊戲組建的新版本時，您可以將它們存放在 S3 中，並使用指令碼來更新 Anywhere 機群以進行遊戲測試。
+ **取得並建置 Amazon GameLift Servers 代理程式。**代理程式會根據您的組態管理託管資源上的遊戲伺服器程序。它使用相同的邏輯，並且與Amazon GameLift Servers受管 EC2 託管的行為相同。
+ **為您的託管資源設定 Anywhere 機群。**透過 Anywhere 機群，您可以使用 Amazon GameLift Servers服務來託管非由 管理的資源Amazon GameLift Servers。在此步驟中，您也將設定執行時間組態，指示Amazon GameLift Servers代理程式何時及如何啟動遊戲伺服器程序。
+ **設定 Amazon EC2 執行個體。**這是用於反覆測試的測試環境。使用標準 EC2 執行個體，而不是全受管Amazon GameLift Servers執行個體 （針對生產層級使用進行最佳化） 的速度快得多。使用標準 EC2 執行個體，您可以視需要快速且持續地更新遊戲伺服器。
+ **將您的遊戲伺服器建置和Amazon GameLift Servers代理程式部署到 Amazon EC2 執行個體。 **工作流程提供指令碼，取得遊戲組建的最新版本和所有相依性，並將其安裝在 EC2 執行個體上。在此工作流程中，相依性包括 Amazon GameLift Servers Agent 和 CloudWatch Agent。
+ **啟動 Amazon GameLift Servers 代理程式。**安裝後，代理程式會自動啟動並開始執行指示。其中包含：
  + 在 Amazon GameLift Servers Anywhere 機群中將 EC2 執行個體註冊為運算。
  + 建立與 Amazon GameLift Servers 服務的 WebSocket 連線，並取得最新的執行時間組態。
  + 根據執行時間組態中的指示啟動遊戲伺服器程序。在此工作流程中，系統會指示代理程式啟動遊戲伺服器可執行檔的單一程序。
+ **測試您的遊戲案例。**設定測試環境並安裝最新的遊戲伺服器建置後，您就可以開始測試。工作流程會逐步執行數個測試步驟，包括啟動遊戲工作階段。存取 CloudWatch 遊戲伺服器日誌，在遊戲工作階段啟動時追蹤進度，並準備接受玩家。

  當您開發遊戲元件時，包括遊戲用戶端和用戶端後端服務，您可以將這些元件包含在測試案例中。使用遊戲用戶端請求遊戲工作階段、從Amazon GameLift Servers服務擷取連線資訊，然後直接連線至遊戲工作階段。
+ **部署新的遊戲伺服器建置並重複測試。**當您開發遊戲時，您可以產生新的遊戲伺服器組建，然後將它們快速部署到 EC2 測試環境進行測試。將它們上傳至 Amazon S3 儲存貯體，然後使用工作流程指令碼來更新測試環境。

## 將您的遊戲轉換為Amazon GameLift Servers受管機群
<a name="integration-dev-iteration-cloud-transition"></a>

在您完成開發測試並準備好準備啟動後，這是切換到Amazon GameLift Servers受管機群的好時機。使用受管機群來微調和測試您的遊戲託管資源。實作您的遊戲工作階段置放解決方案 （佇列和配對建構器），選取最佳託管硬體 （包括 Spot 機群） 和位置，然後選擇擴展容量的策略。您也可以開始使用 AWS CloudFormation ，更有效地管理所有遊戲託管資源的生命週期，包括機群、佇列和配對建構器。

從雲端型 Anywhere 測試機群轉換到Amazon GameLift Servers受管機群需要最少的精力。您不需要變更任何遊戲程式碼，而且可以重複使用相同的佇列和配對建構器。執行下列任務：
+ **建立Amazon GameLift Servers建置資源。**使用 Anywhere 測試機群，您必須手動將遊戲伺服器建置和相依性部署到每個機群運算。使用受管機群，將您的遊戲建置套件上傳至 Amazon GameLift Servers，其會自動將其部署到所有機群運算。[為 建立遊戲伺服器組建 Amazon GameLift Servers](gamelift-build-cli-uploading.md) 如需封裝遊戲建置檔案，以及使用 Amazon S3 儲存貯體中的檔案建立建置資源的詳細資訊，請參閱 。
+ **建立受管機群。**使用主控台或 AWS CLI 建立機群，指定 EC2 受管機群。這種類型的機群需要額外的組態設定，包括指定建置資源和執行個體類型。您可以使用相同的執行時間組態來管理每個機群運算的遊戲伺服器生命週期。[建立Amazon GameLift Servers受管 EC2 機群](fleets-creating.md) 如需建立受管機群的詳細資訊，請參閱 。
+ **重新導向機群別名 （選用）。**如果您將別名設定為與 Anywhere 機群搭配使用，則可以為受管機群重複使用相同的別名。[建立Amazon GameLift Servers別名](aliases-creating.md) 如需建立或更新別名的詳細資訊，請參閱 。