

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

# 遠端存取機群資源
<a name="remote-access-intro"></a>

您可以連線到作用中Amazon GameLift Servers受管 EC2 或受管容器機群中的任何執行個體。對於容器機群，您也可以連線到在執行個體上執行的個別容器，以疑難排解遊戲工作階段、檢查日誌和偵錯執行時間問題。遠端存取執行個體的常見原因包括：
+ 針對遊戲伺服器整合的問題進行故障診斷。
+ 微調您的執行時間組態和其他機群特定的設定。
+ 監控即時遊戲伺服器活動，例如日誌追蹤。
+ 使用實際玩家流量執行基準測試工具。
+ 調查遊戲工作階段或伺服器程序的特定問題。

連線至執行個體時，請記住下列事項：
+ 您可以連線到作用中機群中的任何執行個體。一般而言，您無法連線到非作用中機群，例如正在啟用或處於錯誤狀態的機群。（這些機群在短時間內的可用性可能有限。) 如需機群啟用問題的協助，請參閱 [偵錯 Amazon GameLift Servers 機群問題](fleets-creating-debug.md)。
+ 連線至作用中執行個體不會影響執行個體的託管活動。執行個體會根據執行時間組態繼續啟動和停止伺服器程序。它會啟用並執行遊戲工作階段。執行個體可能會關閉以回應縮減事件或其他事件。
+ 您對執行個體上的檔案或設定所做的任何變更都可能會影響執行個體的作用中遊戲工作階段和連線玩家。

# 連線至機群執行個體
<a name="fleets-remote-access"></a>

您可以遠端連線至任何作用中Amazon GameLift Servers的受管 EC2 或受管容器機群執行個體，以疑難排解遊戲伺服器問題、檢查日誌和偵錯執行時間行為。使用Amazon GameLift Servers主控台或 CLI AWS 連線。

## 透過主控台的遠端存取
<a name="fleets-remote-access-console"></a>

您可以使用 Amazon EC2 Systems Manager (SSM) 直接從Amazon GameLift Servers主控台連線至機群執行個體。此方法提供安全存取，而不需要額外的設定或憑證管理。對於容器機群，在連線到執行個體之後，您可以存取在其上執行的個別容器。如需詳細資訊，請參閱[連線至容器](containers-remote-access.md)。

1. 在 Amazon GameLift Servers主控台中，從導覽窗格中選擇**受管 EC2** 或**受管容器**，然後選擇**機群**。

1. 選擇包含您要存取之執行個體的機群 ID。

1. 在機群詳細資訊頁面上，選擇**執行個體**索引標籤以檢視機群的所有運算執行個體。

1. 選取您要連線的執行個體，然後選擇**連線**。這會顯示連線至執行個體對話方塊，通知您連線的詳細資訊，並可讓您檢視將用於連線至執行個體的指令碼。再次選擇 **Connect** 進行確認。

1. 在連線對話方塊中，選擇**執行**以建立新的 SSM 工作階段。系統會透過 AWS Key Management Service (AWS KMS) 驗證您的工作階段，並在瀏覽器中開啟終端機。

**注意**  
主控台型遠端存取適用於執行伺服器 SDK 5.x 版的機群。對於執行舊版 SDK 的機群，請使用下節所述的 AWS CLI 方法。

## 使用 CLI AWS 進行遠端存取
<a name="fleets-remote-access-cli"></a>

下列指示說明如何使用命令列界面 (CLI) AWS 遠端連線至執行個體。您也可以使用 AWS SDK 進行程式設計呼叫，如 [的服務 API 參考Amazon GameLift Servers](https://docs.aws.amazon.com/gamelift/latest/apireference/)所述。

### 收集執行個體資料
<a name="fleets-remote-access-getinfo"></a>

若要連線至Amazon GameLift Servers受管 EC2 機群執行個體，您需要下列資訊：
+ 您要連線的執行個體 ID。您可以使用執行個體 ID 或 ARN。
+ 執行個體上使用之Amazon GameLift Servers版本的伺服器 SDK。伺服器 SDK 已與執行個體上執行的遊戲組建整合。

下列指示說明使用 CLI AWS 完成這些任務的方式。您必須知道要連線之執行個體的機群 ID。

1. **取得運算名稱。**取得機群中所有作用中運算的清單。使用機群 ID 或 ARN 呼叫 [list-compute](https://docs.aws.amazon.com/cli/latest/reference/gamelift/list-compute.html)。對於單一位置機群，請僅指定機群識別符。對於多位置機群，請指定機群識別符和位置。使用受管 EC2 機群時， 會`list-compute`傳回機群執行個體的清單，而 屬性`ComputeName`是執行個體 ID。尋找您要存取的運算。

   **請求**

   ```
   aws gamelift list-compute \
     --fleet-id  fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
     --location sa-east-1
   ```

   **回應**

   ```
   {
     "ComputeList": [
       {
         "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
         "FleetArn": "arn:aws:gamelift:us-west-2::fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
         "ComputeName": "i-0abc12d3e45fa6b78",
         "IpAddress": "00.00.000.00",
         "DnsName": "b08444ki909kvqu6zpw3is24x5pyz4b6m05i3jbxvpk9craztu0lqrbbrbnbkks.uwp57060n1k6dnlnw49b78hg1rw4rcz7.us-west-2.amazongamelift.com",
         "ComputeStatus": "Active",
         "Location": "sa-east-1",
         "CreationTime": "2023-07-09T22:51:45.931000-07:00",
         "OperatingSystem": "AMAZON_LINUX_2023",
         "Type": "c4.large"
       }
     ]
   }
   ```

1. **尋找伺服器 SDK 版本。**如需此資訊，您需要查詢部署到機群的建置。伺服器 SDK 版本是建置屬性。

   1. 使用機群 ID 或 ARN 呼叫 [describe-fleet-attributes](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-attributes.html)，以取得機群的建置 ID 和 ARN。

   1. 使用建置 ID 或 ARN 呼叫 [describe-build](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-build.html)，以取得建置的伺服器 SDK 版本。

      例如：

      **請求**

   ```
   aws gamelift describe-fleet-attributes \
     --fleet-ids  fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa
   ```

   **回應**

   ```
   {
     "FleetAttributes": [
       {
         "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
         "ComputeType": "EC2",
         "BuildId": "build-3333cccc-44dd-55ee-66ff-00001111aa22",
         . . .
       }
     ]
   }
   ```

   **請求**

   ```
   aws gamelift describe-build \
     --build-id build-3333cccc-44dd-55ee-66ff-00001111aa22
   ```

   **回應**

   ```
   "Build": {
     "BuildId": "build-1111aaaa-22bb-33cc-44dd-5555eeee66ff",
     "Name": "My_Game_Server_Build_One",
     "OperatingSystem": "AMAZON_LINUX_2023",
     "ServerSdkVersion": "5.1.1",
     . . .
   }
   ```

## 連線至執行個體 （伺服器 SDK 5)
<a name="fleets-remote-access-connect-5"></a>

如果您想要連線的執行個體正在執行具有伺服器 SDK 5.x 版的遊戲組建，請使用 Amazon EC2 Systems Manager (SSM) 連線至執行個體。您可存取執行 Windows 或 Linux 的遠端執行個體。對於容器機群，在連線到執行個體之後，您可以存取在其上執行的個別容器。如需詳細資訊，請參閱[連線至容器](containers-remote-access.md)。

**開始之前：**  
完成 SSM 設定步驟，並在本機電腦上安裝 SSM 外掛程式。如需詳細資訊，請參閱《Amazon EC2 Systems Manager 使用者指南》中的[設定 SSM](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started.html) 和安裝 CLI 的 Session Manager 外掛程式。 [AWS](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) *Amazon EC2 Systems Manager *

1. **要求存取執行個體登入資料。**使用機群 ID 和您要連線之執行個體的運算名稱呼叫 [get-compute-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-access.html)。 Amazon GameLift Servers會傳回一組用於存取執行個體的臨時登入資料。例如：

   **請求**

   ```
   aws gamelift get-compute-access \
   --compute-name i-11111111a222b333c \
   --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa
   --region us-west-2
   ```

   **回應**

   ```
   {
     "ComputeName": "i-11111111a222b333c",
     "Credentials": {
       "AccessKeyId": "ASIAIOSFODNN7EXAMPLE",
       "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
       "SessionToken": "AQoDYXdzEJr...<remainder of session token>"
     },
     "FleetArn": "arn:aws:gamelift:us-west-2::fleet/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
     "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa"
   }
   ```

1. **匯出存取登入資料 （選用）。**您可以將登入資料匯出至環境變數，並使用它們來設定預設使用者的 AWS CLI。如需詳細資訊，請參閱 AWS Command Line Interface 《 使用者指南》中的[設定 AWS CLI 的環境變數](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html)。

   ```
   export AWS_ACCESS_KEY_ID=ASIAIOSFODNN7EXAMPLE
   export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   export AWS_SESSION_TOKEN=AQoDYXdzEJr...<remainder of session token>
   ```

1. **連線至機群執行個體。**使用您要連線的執行個體啟動 SSM 工作階段。包含執行個體的區域 AWS 或位置。如需詳細資訊，包括如何設定 SSM 和 SSM 外掛程式，請參閱《*Amazon EC2 Systems Manager 使用者指南*》中的[啟動工作階段 (AWS CLI)](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-sessions-start.html#sessions-start-cli)。

   開始工作階段請求會自動使用您在步驟 1 中取得的登入資料。

   ```
   aws ssm start-session \
   --target i-11111111a222b333c \
   --region us-west-2 \
   ```
**注意**  
如果您收到存取遭拒錯誤，您可能會將 `AWS_PROFILE` 環境變數設定為 AWS 設定檔，這會導致 AWS CLI 使用錯誤的登入資料進行遠端存取。若要解決此問題，請暫時取消設定您的`AWS_PROFILE`環境變數。或者，您可以為您的遠端存取登入資料建立自訂 AWS 設定檔，並將`--profile`命令列參數新增至您的`start-session`請求。

## 連線至執行個體 （伺服器 SDK 4.x 或更早版本）
<a name="fleets-remote-access-connect"></a>

如果您想要連線的執行個體正在執行具有伺服器 SDK 第 4 版或更早版本的遊戲組建，請使用下列指示。您可以連線到執行 Windows 或 Linux 的執行個體。使用遠端桌面通訊協定 (RDP) 用戶端連線至 Windows 執行個體。使用 SSH 用戶端連線至 Linux 執行個體。

1. **要求存取執行個體登入資料。**當您有執行個體 ID 時，請使用命令 [get-instance-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-instance-access.html) 來請求存取憑證。如果成功，Amazon GameLift Servers 將傳回執行個體的作業系統、IP 地址及一組登入資料 (使用者名稱及私密金鑰)。登入資料格式需視執行個體作業系統而定。請使用下列指示擷取 RDP 或 SSH 的登入資料。
   + **對於 Windows 執行個體** – 若要連線至 Windows 執行個體，RDP 需要使用者名稱和密碼。`get-instance-access` 要求會以簡單字串傳回這些值，因此您可直接使用傳回值。登入資料範例：

     ```
     "Credentials": {
         "Secret": "aA1bBB2cCCd3EEE",
         "UserName": "gl-user-remote"
     }
     ```
   + **對於 Linux 執行個體** – 若要連線至 Linux 執行個體，SSH 需要使用者名稱和私有金鑰。 Amazon GameLift Servers會發出 RSA 私有金鑰，並以單一字串傳回它們，其中換行字元 (`\n`) 表示換行。若要讓私有金鑰可供使用，請採取下列步驟：(1) 將字串轉換為`.pem`檔案，以及 (2) 設定新檔案的許可。傳回的登入資料範例：

     ```
     "Credentials": {
         "Secret": "-----BEGIN RSA PRIVATE KEY-----nEXAMPLEKEYKCAQEAy7WZhaDsrA1W3mRlQtvhwyORRX8gnxgDAfRt/gx42kWXsT4rXE/b5CpSgie/\nvBoU7jLxx92pNHoFnByP+Dc21eyyz6CvjTmWA0JwfWiW5/akH7iO5dSrvC7dQkW2duV5QuUdE0QW\nZ/aNxMniGQE6XAgfwlnXVBwrerrQo+ZWQeqiUwwMkuEbLeJFLhMCvYURpUMSC1oehm449ilx9X1F\nG50TCFeOzfl8dqqCP6GzbPaIjiU19xX/azOR9V+tpUOzEL+wmXnZt3/nHPQ5xvD2OJH67km6SuPW\noPzev/D8V+x4+bHthfSjR9Y7DvQFjfBVwHXigBdtZcU2/wei8D/HYwIDAQABAoIBAGZ1kaEvnrqu\n/uler7vgIn5m7lN5LKw4hJLAIW6tUT/fzvtcHK0SkbQCQXuriHmQ2MQyJX/0kn2NfjLV/ufGxbL1\nmb5qwMGUnEpJaZD6QSSs3kICLwWUYUiGfc0uiSbmJoap/GTLU0W5Mfcv36PaBUNy5p53V6G7hXb2\nbahyWyJNfjLe4M86yd2YK3V2CmK+X/BOsShnJ36+hjrXPPWmV3N9zEmCdJjA+K15DYmhm/tJWSD9\n81oGk9TopEp7CkIfatEATyyZiVqoRq6k64iuM9JkA3OzdXzMQexXVJ1TLZVEH0E7bhlY9d8O1ozR\noQs/FiZNAx2iijCWyv0lpjE73+kCgYEA9mZtyhkHkFDpwrSM1APaL8oNAbbjwEy7Z5Mqfql+lIp1\nYkriL0DbLXlvRAH+yHPRit2hHOjtUNZh4Axv+cpg09qbUI3+43eEy24B7G/Uh+GTfbjsXsOxQx/x\np9otyVwc7hsQ5TA5PZb+mvkJ5OBEKzet9XcKwONBYELGhnEPe7cCgYEA06Vgov6YHleHui9kHuws\nayav0elc5zkxjF9nfHFJRry21R1trw2Vdpn+9g481URrpzWVOEihvm+xTtmaZlSp//lkq75XDwnU\nWA8gkn6O3QE3fq2yN98BURsAKdJfJ5RL1HvGQvTe10HLYYXpJnEkHv+Unl2ajLivWUt5pbBrKbUC\ngYBjbO+OZk0sCcpZ29sbzjYjpIddErySIyRX5gV2uNQwAjLdp9PfN295yQ+BxMBXiIycWVQiw0bH\noMo7yykABY7Ozd5wQewBQ4AdSlWSX4nGDtsiFxWiI5sKuAAeOCbTosy1s8w8fxoJ5Tz1sdoxNeGs\nArq6Wv/G16zQuAE9zK9vvwKBgF+09VI/1wJBirsDGz9whVWfFPrTkJNvJZzYt69qezxlsjgFKshy\nWBhd4xHZtmCqpBPlAymEjr/TOlbxyARmXMnIOWIAnNXMGB4KGSyl1mzSVAoQ+fqR+cJ3d0dyPl1j\njjb0Ed/NY8frlNDxAVHE8BSkdsx2f6ELEyBKJSRr9snRAoGAMrTwYneXzvTskF/S5Fyu0iOegLDa\nNWUH38v/nDCgEpIXD5Hn3qAEcju1IjmbwlvtW+nY2jVhv7UGd8MjwUTNGItdb6nsYqM2asrnF3qS\nVRkAKKKYeGjkpUfVTrW0YFjXkfcrR/V+QFL5OndHAKJXjW7a4ejJLncTzmZSpYzwApc=\n-----END RSA PRIVATE KEY-----",
         "UserName": "gl-user-remote"
     }
     ```

     使用 AWS CLI 時，您可以將 *--query* 和 *--output* 參數納入您的`get-instance-access`請求，以自動產生`.pem`檔案。

     在 `.pem` 檔案設定權限時，請執行下列命令：

     ```
     $ chmod 400 MyPrivateKey.pem
     ```

1. **開啟連接埠用於遠端連線。**您可以透過機Amazon GameLift Servers群組態中授權的任何連接埠存取機群中的執行個體。您可使用 [https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-port-settings.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-port-settings.html) 命令檢視機群連接埠設定。

   我們建議的最佳實務，是僅在需要時開啟連接埠用於遠端存取，並於完成時加以關閉。您無法在建立機群之後，但在啟用之前更新連接埠設定。如果您卡住，請在開啟連接埠設定的情況下重新建立機群。

   使用命令 [https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-port-settings.html](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-fleet-port-settings.html) 新增連接埠設定用於遠端連線 (例如 `22` 用於 SSH 或 `3389` 用於 RDP)。至於 IP 範圍值，請針對計畫用於連線的裝置指定 IP 地址 (轉換為 CIDR 格式)。範例：

   ```
   $ AWS gamelift update-fleet-port-settings
       --fleet-id  "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa"
       --inbound-permission-authorizations "FromPort=22,ToPort=22,IpRange=54.186.139.221/32,Protocol=TCP"
   ```

   下列範例會在 Windows 機群上開啟連接埠 3389

   ```
   $ AWS gamelift update-fleet-port-settings
   --fleet-id  "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa"
       --inbound-permission-authorizations "FromPort=3389,ToPort=3389,IpRange=54.186.139.221/32,Protocol=TCP"
   ```

1. **開啟遠端連線用戶端。**Windows 執行個體請使用遠端桌面，Linux 執行個體請使用 SSH。使用 IP 地址、連接埠設定及存取登入資料連線至執行個體。

   SSH 範例：

   ```
   ssh -i MyPrivateKey.pem gl-user-remote@192.0.2.0
   ```

## 檢視遠端執行個體上的檔案
<a name="fleets-remote-access-permissions"></a>

連線至機群執行個體後，您就可以擁有完整的使用者和管理存取權。這表示您也可以在遊戲託管時導致錯誤或失敗。如果執行個體託管具有作用中玩家的遊戲，您可能會面臨當機遊戲工作階段和捨棄玩家的風險，或中斷遊戲關閉程序，這可能會導致儲存的遊戲資料和日誌發生錯誤。

對於容器機群，存取容器後 （請參閱 [連線至容器](containers-remote-access.md))，下列檔案位置適用於容器檔案系統。對於 EC2 機群，這些檔案位置會直接套用至執行個體。

在託管執行個體上尋找這些資源：
+ **遊戲建置檔案。**這些檔案是您上傳至 的遊戲組建Amazon GameLift Servers。其中包括一或多個遊戲伺服器可執行檔、資產和相依性。遊戲組建檔案位於名為 的根目錄中`game`：
  + 在 Windows 上： `c:\game`
  + 在 Linux 上：`/local/game`
+ **遊戲記錄檔。**尋找遊戲伺服器在您指定之任何目錄路徑的`game`根目錄中產生的日誌檔案。
+ **Amazon GameLift Servers 託管資源。**根目錄`Whitewater`包含 Amazon GameLift Servers服務用來管理遊戲託管活動的檔案。請勿因任何原因修改這些檔案。
+ **執行時間組態。**請勿存取個別執行個體的執行時間組態。若要變更執行時間組態屬性，請更新機群的執行時間組態 （請參閱 AWS SDK 操作 [UpdateRuntimeConfiguration](https://docs.aws.amazon.com/gamelift/latest/apireference/API_UpdateRuntimeConfiguration.html) 或 AWS CLI [update-runtime-configuration](https://docs.aws.amazon.com/cli/latest/reference/gamelift/update-runtime-configuration.html))。
+ **機群資料。**JSON 檔案包含執行個體所屬機群的相關資訊，供執行個體上執行的伺服器程序使用。JSON 檔案位於下列位置：
  + 在 Windows 上： `C:\GameMetadata\gamelift-metadata.json`
  + 在 Linux 上：`/local/gamemetadata/gamelift-metadata.json`
+ **TLS 憑證**。如果執行個體所在的機群已啟用 TLS 憑證產生，請在下列位置尋找憑證檔案，包括憑證、憑證鏈、私有金鑰和根憑證：
  + 在 Windows 上： `c:\\GameMetadata\Certificates`
  + 在 Linux 上：`/local/gamemetadata/certificates/`

# 連線至容器
<a name="containers-remote-access"></a>

對於Amazon GameLift Servers容器機群，您可以存取在機群執行個體上執行的遊戲伺服器容器。使用容器存取對遊戲工作階段進行疑難排解、檢查日誌和偵錯執行時間問題。

## 連線至容器
<a name="containers-remote-access-connect"></a>

**開始之前：**  
連線至機群執行個體。如需說明，請參閱[連線至機群執行個體](fleets-remote-access.md)。

執行下列命令來列出執行個體上執行中的容器：

```
sudo docker ps
```

輸出會列出執行個體上執行的所有容器，包括遊戲伺服器容器和內部Amazon GameLift Servers容器。尋找具有遊戲伺服器映像的容器，以識別遊戲伺服器容器。

**輸出範例：**

```
CONTAINER ID   IMAGE                  COMMAND                  CREATED      STATUS
b9676e9489f5   game-server-container  "/bin/sh -c ./$GAME_…"   2 days ago   Up 2 days
1d1c8443efe2   support-container      "/bin/sh -c ./$SUPPO…"   2 days ago   Up 2 days
```

若要連線至遊戲伺服器容器，請使用 `CONTAINER ID`欄中的容器簡短 ID。這可讓您完整讀取和寫入容器檔案系統。

```
sudo docker exec -it container-short-id sh
```

## 透過主控台連線至容器
<a name="containers-remote-access-console"></a>

您可以使用 Amazon EC2 Systems Manager (SSM) 從Amazon GameLift Servers主控台連線至遊戲伺服器容器。此方法提供安全存取，而不需要額外的設定或憑證管理。您可以從機群詳細資訊頁面上**的運算**索引標籤或**遊戲工作階段**索引標籤連線到容器。

1. 在 Amazon GameLift Servers主控台中，從導覽窗格中選擇**受管容器**，然後選擇**機群**。

1. 選擇包含您要存取之容器或遊戲工作階段的機群 ID。

1. 在機群詳細資訊頁面上，選擇下列其中一個索引標籤：
   + **運算** – 列出在機群上執行的容器。選取您要連線的容器。
   + **遊戲工作階段** – 列出機群的遊戲工作階段。選取遊戲工作階段以連接至託管它的容器。

1. 選擇**連線**。複製顯示的命令以連線至容器，然後再次選擇**連線**。

1. 在連線對話方塊中，選擇**執行**以建立新的 SSM 工作階段。系統會透過 AWS Key Management Service (AWS KMS) 驗證您的工作階段，並在瀏覽器中開啟終端機。

1. 連線至執行個體後，請貼上步驟 4 中的 docker 命令，並在執行個體上執行該命令以存取容器。

## 連線至託管遊戲工作階段的容器
<a name="containers-remote-access-game-session"></a>

若要連線至託管特定遊戲工作階段的遊戲伺服器容器，請遵循下列步驟。

1. **取得運算名稱。**呼叫 [describe-game-sessions](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-game-sessions.html) 以取得遊戲工作階段`ComputeName`的 。

   **請求**

   ```
   aws gamelift describe-game-sessions \
       --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
       --game-session-id arn:aws:gamelift:us-west-2::gamesession/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa/gs-1111aaaa-2222-3333-4444-5555bbbb66cc
   ```

   **回應**

   ```
   {
     "GameSessions": [
       {
         "GameSessionId": "arn:aws:gamelift:us-west-2::gamesession/fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa/gs-1111aaaa-2222-3333-4444-5555bbbb66cc",
         "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
         "ComputeName": "62c5ff7f7a9a445d84877074c80aeafc",
         "Status": "ACTIVE",
         . . .
       }
     ]
   }
   ```

   請記下回應中的`ComputeName`值 （例如 `62c5ff7f7a9a445d84877074c80aeafc`)。

1. **取得運算存取和容器屬性。**使用機群 ID 和運算名稱呼叫 [get-compute-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-access.html)。

   回應包含下列欄位：
   + `ContainerIdentifiers` – 每個容器`ContainerRuntimeId`的 `ContainerName`和 。
   + `GameServerContainerGroupDefinitionArn` – 容器群組定義的 ARN。
   + `Credentials` – 連線至執行個體的暫時登入資料。

   **請求**

   ```
   aws gamelift get-compute-access \
       --fleet-id fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa \
       --compute-name 62c5ff7f7a9a445d84877074c80aeafc
   ```

   **回應**

   ```
   {
     "ComputeName": "62c5ff7f7a9a445d84877074c80aeafc",
     "ContainerIdentifiers": [
       {
         "ContainerName": "game-server",
         "ContainerRuntimeId": "02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678"
       }
     ],
     "Credentials": {
       "AccessKeyId": "ASIAIOSFODNN7EXAMPLE",
       "SecretAccessKey": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
       "SessionToken": "AQoDYXdzEJr...<remainder of session token>"
     },
     "FleetId": "fleet-2222bbbb-33cc-44dd-55ee-6666ffff77aa",
     "GameServerContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2::containergroupdefinition/MyGameServerGroup"
   }
   ```

1. **連線到執行個體。**使用步驟 2 的登入資料連線至機群執行個體。如需詳細說明，請參閱 [連線至機群執行個體](fleets-remote-access.md)。

1. **尋找遊戲伺服器容器名稱。**使用步驟 2 `GameServerContainerGroupDefinitionArn`中的 呼叫 [describe-container-group-definition](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-container-group-definition.html)，以識別遊戲伺服器容器名稱。

   **請求**

   ```
   aws gamelift describe-container-group-definition \
       --name arn:aws:gamelift:us-west-2::containergroupdefinition/MyGameServerGroup
   ```

   **回應**

   ```
   {
     "ContainerGroupDefinition": {
       "ContainerGroupDefinitionArn": "arn:aws:gamelift:us-west-2:123456789012:containergroupdefinition/MyGameServerGroup:3",
       "Name": "MyGameServerGroup",
       "ContainerGroupType": "GAME_SERVER",
       "GameServerContainerDefinition": {
         "ContainerName": "game-server",
         . . .
       },
       . . .
     }
   }
   ```

   請記下 `GameServerContainerDefinition.ContainerName`值 （例如，`game-server`)。

1. **識別遊戲伺服器容器執行期 ID。**使用上一個步驟的遊戲伺服器容器名稱，`ContainerIdentifiers`從步驟 2 的`get-compute-access`回應尋找 中的相符項目。請記下 `ContainerRuntimeId` 值。

1. **連線至容器。**使用 `ContainerRuntimeId`做為容器 ID，並執行下列命令：

   ```
   sudo docker exec -it 02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678 sh
   ```