建立 Amazon GameLift Anywhere 機群 - Amazon GameLift

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

建立 Amazon GameLift Anywhere 機群

本主題說明如何建立 Amazon GameLift Anywhere 機群。透過 Anywhere 機群,您可以使用核心 Amazon GameLift 遊戲工作階段管理功能,同時透過您自己的運算資源託管遊戲工作階段。為您的內部部署硬體或其他雲端型資源建立 Anywhere 機群。

Anywhere 機群通常與混合託管解決方案中的 Amazon GameLift 受管機群搭配使用。在開發使用 Amazon 託管的遊戲時,它們還提供有用的測試環境 GameLift。請參閱這些主題,進一步了解何時以及如何整合 Amazon GameLift Anywhere 遊戲託管解決方案的機群:

由於 Anywhere 機群是自我管理的,因此設定機群需要額外的工作。若要讓 Anywhere 機群準備好託管遊戲工作階段和玩家,您需要完成下列任務:

開始之前

在建立 Anywhere 機群之前,請執行下列任務。如需更詳細的指引,請參閱 使用 Amazon GameLift Anywhere 託管的開發藍圖Amazon 混合託管的開發藍圖 GameLift

  • 將您的遊戲伺服器程式碼與 Amazon GameLift 伺服器 5.x SDK版 (或更新版本) 整合。您不需要完成所有遊戲整合任務,只需要遊戲伺服器建置所需的任務。常見的做法是將本機機器設定為 Anywhere 機群,並使用命令列介面來測試您的遊戲伺服器整合 (請參閱 使用 Amazon 設定本機測試 GameLift Anywhere)。您可以在開發時加入其他元件 (例如 GameLift 啟用 Amazon 的遊戲用戶端)。

  • 封裝遊戲伺服器軟體,以便安裝到 Anywhere 機群運算。此套件應包含您的整合遊戲伺服器建置,以及執行遊戲伺服器所需的所有支援軟體。

  • 決定是否將 Amazon GameLift Agent 與 Anywhere 機群搭配使用。客服人員是一種運算中程序管理工具,可自動執行與管理伺服器程序和運算相關的一些關鍵任務,以搭配 Amazon 使用 GameLift。如需詳細資訊,請參閱使用 Amazon GameLift Agent

建立自訂位置

建立自訂位置以代表運算資源的實體位置。建立 Anywhere 機群時,您至少必須已定義一個自訂位置。您可以隨時建立其他自訂位置,並將其新增至現有的機群。

建立自訂位置

使用 Amazon GameLift 主控台或 AWS Command Line Interface (AWS CLI) 建立自訂位置。

Console

Amazon GameLift 主控台 中,使用導覽窗格開啟位置頁面。選擇建立位置以開啟建立對話方塊。

  1. 在對話方塊中,輸入位置名稱 。最佳實務是使用描述一組運算資源之有意義的位置的名稱。它可能是地理位置、資料中心名稱或其他位置識別符。Amazon 會使用 Custom- GameLift 附加自訂位置的名稱。

  2. (選用) 將標籤新增至您的自訂位置。每個標籤皆包含由您定義的一個金鑰與一個選用值。將標籤指派給您想要以有用方式分類 AWS 的資源,例如依用途、擁有者或環境。針對您要新增的每個標籤,選擇新增標籤。

  3. 選擇 Create (建立)。

AWS CLI

使用 create-location命令建立自訂位置。提供值,該location-name值必須以 開頭custom-。最佳實務是使用描述一組運算資源之有意義的位置的名稱。它可能是地理位置、資料中心名稱或其他位置識別符。

aws gamelift create-location \ --location-name custom-location-1

輸出

{ "Location": { "LocationName": "custom-location-1", "LocationArn": "arn:aws:gamelift:us-east-1:111122223333:location/custom-location-1" } }

建立 Anywhere 機群

為您擁有的一組運算資源建立 Anywhere 機群。新的 Anywhere 機群開始清空;您可以透過註冊將運算新增至機群。

建立時,新的 Anywhere 機群會從 快速切換為 NEW的機群狀態ACTIVE。您可以在運算達到 後,將運算新增至機群ACTIVE

若要建立 Anywhere 機群

使用 Amazon GameLift 主控台或 AWS Command Line Interface (AWS CLI) 來建立 Anywhere 機群。

Console

Amazon GameLift 主控台 中,使用導覽窗格開啟機群頁面。選擇建立機群以開始機群建立工作流程。

步驟 1 選擇運算類型

選取 Anywhere 選項,然後選擇下一步。

步驟 2 定義機群詳細資訊

在此步驟中,指定一些金鑰機群範圍設定。

  1. 填寫機群詳細資訊區段:

    1. 輸入機群名稱 。我們建議您使用機群命名模式,以便在檢視機群清單時更容易識別機群類型。

    2. 提供機群的簡短描述

  2. 視需要設定這些選用的其他詳細資訊。您可以稍後更新這些機群設定。

    1. 為生產或生產前測試建立機群時,請使用此設定來指定機群運算的每小時成本值。Amazon GameLift 可以在遊戲工作階段置放過程中使用此資訊,根據成本來選取託管資源。

    2. 如果您想要合併此機群和其他機群的指標資料,請指定指標群組名稱。針對您要合併的所有機群,使用相同的指標群組名稱。檢視指標群組的指標,以查看彙總資料。

  3. 將選用標籤新增至您的自訂位置。每個標籤皆包含由您定義的一個金鑰與一個選用值。將標籤指派給您想要以有用方式分類 AWS 的資源,例如依用途、擁有者或環境。針對您要新增的每個標籤,選擇新增標籤。

  4. 選擇下一步以繼續工作流程。

步驟 3 選取自訂位置

在此步驟中,識別您計劃新增至此機群的運算實體位置。您現在可以指定一或多個位置,而且您可以視需要稍後新增或移除位置。

  1. 自訂位置 中,選取一個或多個機群運算的位置。此清單包含目前所選 中定義的所有自訂位置 AWS 區域。若要定義您要新增至機群的新自訂位置,請選擇建立位置

  2. 選擇下一步以繼續工作流程。

步驟 4 檢閱和建立

在建立機群之前,請先檢閱您的設定。

當您準備好部署新的機群時,請選擇建立 。Amazon GameLift 會立即開始機群啟用程序,指派唯一的 ID,並將機群置於 NEW 狀態。您可以在機群頁面上追蹤機群的進度。

AWS CLI

使用 create-fleet命令來建立運算類型 的機群ANYWHERE。提供名稱和至少一個自訂位置。Amazon 會在您目前的預設值中 GameLift 建立 Anywhere 機群資源 AWS 區域 (或者您可以新增 --region 標籤以指定不同的 AWS 區域)。

下列範例請求會使用最少的必要設定建立新的機群。custom-location 使用您自己的資訊取代 FleetName和 。

aws gamelift create-fleet \ --name FleetName \ --compute-type ANYWHERE \ --locations "Location=custom-location"

回應範例

{ "FleetAttributes": { "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "FleetArn": "arn:aws:gamelift:us-west-2:111122223333:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "Name": "HardwareAnywhere", "CreationTime": "2023-02-23T17:57:42.293000+00:00", "Status": "ACTIVE", "MetricGroups": [ "default" ], "CertificateConfiguration": { "CertificateType": "DISABLED" }, "ComputeType": "ANYWHERE" } }

建立時,新的 Anywhere 機群會快速移至機群狀態 ACTIVE。您可以在運算達到 後,將運算新增至機群ACTIVE

請注意,回應不包含機群位置。您可以呼叫 describe-fleet-attributes和 來擷取完整的機群詳細資訊describe-fleet-location-attributes

將運算新增至機群

若要將運算資源新增至機群並準備好託管遊戲工作階段,請執行下列任務:

  • 向機群註冊運算。註冊會告訴 Amazon GameLift 哪些實體託管資源屬於機群的一部分。

  • 請求運算的身分驗證權杖。在運算上執行的每個遊戲伺服器都需要此權杖才能連線至 Amazon GameLift 服務。驗證權杖是暫時性的,必須定期重新整理。

注意

如果您要使用 Amazon GameLift Agent 部署遊戲伺服器軟體,可以略過此步驟。客服人員會自動註冊每個運算,並維護運算的有效身分驗證權杖。請參閱 使用 Amazon GameLift Agent

您可以使用 註冊運算並請求身分驗證權杖, AWS CLI或對 AWS SDKAmazon 的 進行程式設計呼叫 GameLift。這些動作無法透過 Amazon GameLift 主控台使用。

最佳實務是,我們建議將啟動指令碼新增至每個運算,以自動化這兩個任務。啟動指令碼會自動呼叫 register-computeget-compute-auth-token命令。您也可以自動執行任務,以在運算生命週期內定期重新整理身分驗證權杖,並在關閉時取消註冊運算。

每個啟動動作都會傳回您需要存放在運算上的運算特定值。當遊戲伺服器程序在運算上啟動時,在初始化與 Amazon GameLift 服務的連線時,必須將這些值傳遞為伺服器參數 (請參閱伺服器SDK參考ServerParameters中的 )。建議您將這些運算特定值 (或其儲存位置) 設定為環境變數。如果您使用 Amazon GameLift Agent,則會為您處理此任務。運算特定的值如下所示:

  • register-compute 會傳回 的值GameLiftServiceSdkEndpoint。將此值設定為webSocketUrl伺服器參數。

  • compute-auth-token 會傳回身分驗證權杖。將此值設定為authToken伺服器參數。

AWS CLI

下列指示說明如何使用 手動提交每個請求 AWS CLI。

註冊運算

呼叫 register-compute 以註冊運算。識別要新增運算的機群 ID。提供下列運算資訊:有意義的名稱、IP 地址和位置。運算的位置必須是已與機群相關聯的自訂位置。如果您想要使用不同的自訂位置,請使用 Amazon GameLift 主控台來更新機群,或呼叫 AWS CLI命令create-fleet-locations將自訂位置新增至機群。

在下列範例中,取代運算和機群的預留位置值。當您建立 Anywhere 機群時,會傳回該fleet-id值。您可以呼叫 describe-fleet-attributes和 來擷取完整的機群詳細資訊describe-fleet-location-attributes

aws gamelift register-compute \ --compute-name HardwareAnywhere \ --fleet-id arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --ip-address 10.1.2.3 \ --location custom-location-1

範例輸出

{ "Compute": { "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "FleetArn": "arn:aws:gamelift:us-west-2:111122223333:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "ComputeName": "HardwareAnywhere", "ComputeArn": "arn:aws:gamelift:us-west-2:111122223333:compute/HardwareAnywhere", "IpAddress": "10.1.2.3", "ComputeStatus": "Active", "Location": "custom-location-1", "CreationTime": "2023-02-23T18:09:26.727000+00:00", "GameLiftServiceSdkEndpoint": "wss://us-west-2.api.amazongamelift.com" } }

若要請求身分驗證字符

呼叫 get-compute-auth-token 以請求有效的身分驗證權杖。註冊運算。識別機群 ID 和運算名稱。

在下列範例中,取代運算和機群的預留位置值。當您建立 Anywhere 機群時,會傳回該fleet-id值。您可以呼叫 來擷取完整的機群詳細資訊describe-fleet-attributes。若要尋找運算資訊,list-compute請使用機群 ID 呼叫 以查看已註冊至機群的所有運算。

aws gamelift get-compute-auth-token \ --fleet-id arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \ --compute-name HardwareAnywhere

範例輸出

{ "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "FleetArn": "arn:aws:gamelift:us-east-1:111122223333:fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa", "ComputeName": "HardwareAnywhere", "ComputeArn": "arn:aws:gamelift:us-east-1:111122223333:compute/HardwareAnywhere", "AuthToken": "0c728041-3e84-4aaa-b927-a0fb202684c0", "ExpirationTimestamp": "2023-02-23T18:47:54+00:00" }

啟動遊戲伺服器

建立 Anywhere 機群並將一或多個運算新增至機群之後,您就可以開始執行遊戲伺服器。

步驟 1 安裝遊戲伺服器軟體

在您的 Anywhere 機群的每個運算上安裝遊戲伺服器建置和所有相依軟體。遊戲伺服器建置必須與 Amazon GameLift 伺服器 5.x SDK版 (或更新版本) 整合,具有與 Amazon GameLift 服務通訊所需的最低功能。

步驟 2 讓您的運算準備好執行遊戲伺服器

確保每個運算都已註冊,並具有有效的身分驗證權杖。如果您使用指令碼來管理這些任務,請務必在啟動任何遊戲伺服器程序之前,確保指令碼在每個運算上執行。

如果您已使用遊戲伺服器軟體部署 Amazon GameLift Agent,請確定代理程式可執行檔已啟動。

步驟 3 啟動遊戲伺服器程序

在運算上執行可執行的遊戲伺服器執行個體。如果您的遊戲伺服器建置已正確整合,則遊戲伺服器程序會使用InitSDK()一組有效的伺服器參數呼叫伺服器SDK動作。當伺服器程序準備好託管遊戲工作階段時,它會呼叫 ProcessReady()

注意

如果您使用 Amazon GameLift Agent 部署遊戲伺服器軟體,則可以略過此步驟。客服人員會根據您提供的執行期指示,自動啟動遊戲伺服器程序。

您可以透過檢視啟用和作用中伺服器程序的伺服器程序指標來監控進度。請參閱 適用於艦隊的亞馬遜GameLift指標。如果您的遊戲伺服器程序無法初始化,請確認該程序正在為執行的運算擷取正確的伺服器參數值。