與機群中的其他 AWS 資源通訊 - Amazon GameLift

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

與機群中的其他 AWS 資源通訊

當您建立遊戲伺服器建置以在 Amazon GameLift 機群上部署時,您可能會希望遊戲建置中的應用程式直接且安全地與您擁有的其他 AWS 資源通訊。由於 Amazon 會 GameLift 管理您的遊戲託管機群,因此您必須讓 Amazon GameLift 有限地存取這些資源和服務。

某些範例案例包括:

  • 使用 Amazon CloudWatch 代理程式從受管EC2機群和 收集指標、日誌和追蹤 Anywhere 機群

  • 將執行個體日誌資料傳送至 Amazon CloudWatch Logs。

  • 取得存放在 Amazon Simple Storage Service (Amazon S3) 儲存貯體中的遊戲檔案。

  • 讀取和寫入存放在 Amazon DynamoDB 資料庫或其他資料儲存服務的遊戲資料 (例如遊戲模式或庫存)。

  • 使用 Amazon Simple Queue Service (Amazon SQS) 將訊號直接傳送至執行個體。

  • 存取在 Amazon Elastic Compute Cloud (Amazon ) 上部署和執行的自訂資源EC2。

Amazon GameLift 支援下列建立存取的方法:

使用 IAM角色存取 AWS 資源

使用 IAM角色來指定誰可以存取您的 資源,並設定該存取的限制。受信任方可以「假設」角色,並取得臨時安全憑證,以授權他們與 資源互動。當各方提出與資源相關的API請求時,他們必須包含憑證。

若要設定由IAM角色控制的存取,請執行下列任務:

建立IAM角色

在此步驟中,您會建立具有一組許可IAM的角色,以控制對 AWS 資源的存取,以及授予 Amazon 使用角色許可 GameLift 的權利的信任政策。

如需如何設定IAM角色 的指示,請參閱 設定 Amazon IAM的服務角色 GameLift。建立許可政策時,請選擇應用程式需要使用的特定服務、資源和動作。最佳實務是盡可能限制許可的範圍。

建立角色之後,請記下角色的 Amazon Resource Name (ARN)。您需要在機群建立ARN期間擔任 角色。

修改應用程式以取得憑證

在此步驟中,您可以將應用程式設定為取得IAM角色的安全憑證,並在與 AWS 資源互動時使用。請參閱下表以決定如何根據 (1) 應用程式類型,以及 (2) 遊戲用來與 Amazon 通訊的伺服器SDK版本來修改應用程式 GameLift。

遊戲伺服器應用程式 其他應用程式

使用伺服器 5.x SDK版

GetFleetRoleCredentials() 從遊戲伺服器程式碼呼叫伺服器SDK方法。

將程式碼新增至應用程式,從機群執行個體上的共用檔案提取憑證。

使用伺服器第 4 SDK版或更早版本

AssumeRole 使用角色 呼叫 AWS Security Token Service (AWS STS)ARN。

AssumeRole 使用角色 呼叫 AWS Security Token Service (AWS STS)ARN。

對於與伺服器 SDK 5.x 整合的遊戲,此圖表說明部署的遊戲組建中的應用程式如何取得IAM角色的憑證。

在 Amazon GameLift 執行個體上,遊戲伺服器應用程式會呼叫 GetFleetRoleCredentials()。其他應用程式會使用可儲存在執行個體上的共用憑證檔案。

在應該已與 Amazon GameLift 伺服器 SDK 5.x 整合的遊戲伺服器程式碼中,呼叫 GetFleetRoleCredentialsC++) (C#(Unreal ) (前往 ) 以擷取一組臨時憑證。當憑證過期時,您可以使用對 的另一個呼叫重新整理憑證GetFleetRoleCredentials

對於使用伺服器 SDK5.x 與遊戲伺服器建置一起部署的非伺服器應用程式,請新增程式碼,以取得並使用儲存在共用檔案中的憑證。Amazon 會為每個機群執行個體 GameLift 產生憑證設定檔。憑證可供執行個體上的所有應用程式使用。Amazon GameLift 會持續重新整理暫時憑證。

您必須設定機群以在機群建立時產生共用憑證檔案。

在需要使用共用憑證檔案的每個應用程式中,指定檔案位置和設定檔名稱,如下所示:

Windows:

[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "C:\\Credentials\\credentials"

Linux︰

[credentials] shared_credential_profile= "FleetRoleCredentials" shared_credential_file= "/local/credentials/credentials"

範例:設定 CloudWatch 代理程式以收集 Amazon GameLift 機群執行個體的指標

如果您想要使用 Amazon CloudWatch 代理程式從您的 Amazon GameLift 機群收集指標、日誌和追蹤,請使用此方法授權代理程式將資料傳送到您的帳戶。在此案例中,請採取下列步驟:

  1. 擷取或寫入 CloudWatch 代理程式config.json檔案。

  2. 更新代理common-config.toml程式的檔案,以識別憑證檔案名稱和設定檔名稱,如上所述。

  3. 設定您的遊戲伺服器建置安裝指令碼以安裝和啟動 CloudWatch 代理程式。

將程式碼新增至您的應用程式以擔任IAM角色,並取得與您的 AWS 資源互動的憑證。在伺服器 4 SDK 或更早版本的 Amazon GameLift 機群執行個體上執行的任何應用程式都可以擔任 IAM角色。

在應用程式程式碼中,在存取 AWS 資源之前,應用程式必須呼叫 AWS Security Token Service (AWS STS) AssumeRoleAPI操作並指定角色 ARN。此操作會傳回一組臨時憑證,授權應用程式存取 AWS 資源。如需詳細資訊,請參閱 IAM 使用者指南 中的將臨時憑證與 AWS 資源搭配使用。

將機群與 IAM 角色建立關聯

建立IAM角色並更新遊戲伺服器建置中的應用程式以取得並使用存取憑證後,即可部署機群。當您設定新機群時,請設定下列參數:

建立機群時,您必須設定這些值。它們稍後無法更新。

使用VPC對等存取 AWS 資源

您可以使用 Amazon Virtual Private Cloud (Amazon VPC) 對等,在 Amazon GameLift 執行個體上執行的應用程式與其他 AWS 資源之間進行通訊。VPC 是您定義的虛擬私有網路,其中包含一組透過 管理的資源 AWS 帳戶。每個 Amazon GameLift 機群都有自己的 VPC。透過VPC對等,您可以在機群VPC的 與其它 AWS 資源之間建立直接網路連線。

Amazon 可 GameLift 簡化為遊戲伺服器設定VPC對等連線的程序。它會處理對等請求、更新路由表,並視需要設定連線。如需如何為遊戲伺服器設定VPC對等互連的說明,請參閱 適用於亞馬遜的 VPC 對等互連 GameLift