

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 远程访问舰队资源
<a name="remote-access-intro"></a>

您可以连接到您的活动Amazon GameLift Servers托管 EC2 或托管容器队列中的任何实例。对于容器队列，您还可以连接到实例上运行的单个容器，以对游戏会话进行故障排除、检查日志和调试运行时问题。远程访问实例的常见原因包括：
+ 排查游戏服务器集成问题。
+ 微调运行时配置和其他特定于实例集的设置。
+ 监控实时游戏服务器活动，例如日志跟踪。
+ 使用实际玩家流量运行基准测试工具。
+ 调查游戏会话或服务器进程的具体问题。

连接实例时，请记住以下几点：
+ 您可以连接到活动实例集中的任何实例。通常，您无法连接到非活动实例集，例如正在激活或处于错误状态的实例集。（这些实例集的可用性可能会在短时间内受到限制。） 有关实例集激活问题的帮助，请参阅[调试 Amazon GameLift Servers 队组问题](fleets-creating-debug.md)。
+ 连接到一个活动实例不会影响该实例的托管活动。该实例会继续基于运行时配置启动和停止服务器进程。它会激活并运行游戏会话。该实例可能会因缩减事件或其他事件而关闭。
+ 您对实例上的文件或设置所做的任何更改都可能影响实例的活动游戏会话和连接的玩家。

# Connect 连接到舰队实例
<a name="fleets-remote-access"></a>

您可以远程连接到任何活动的Amazon GameLift Servers托管 EC2 或托管容器队列实例，以解决游戏服务器问题、检查日志和调试运行时行为。使用Amazon GameLift Servers控制台或 AWS CLI 进行连接。

## 通过控制台进行远程访问
<a name="fleets-remote-access-console"></a>

您可以通过 Amazon GameLift Servers 控制台使用 Amazon EC2 Systems Manager（SSM）直接连接到实例集实例。此方法无需额外设置或凭证管理即可提供安全访问。对于容器队列，在连接到实例后，您可以访问在其上运行的单个容器。有关更多信息，请参阅 [Connect 到容器](containers-remote-access.md)。

1. 在 Amazon GameLift Servers 控制台中，从导航窗格中选择**托管式 EC2** 或**托管容器**，然后选择**实例集**。

1. 选择包含您要访问的实例的实例集 ID。

1. 在实例集详细信息页面上，选择**实例**选项卡以查看实例集的所有计算实例。

1. 选择要连接到的实例，然后选择**连接**。此操作将弹出“连接到实例”对话框，该对话框会显示连接详细信息，同时允许您查看用于连接到实例的脚本。再次选择**连接**进行确认。

1. 在连接对话框中，选择**运行**以创建新的 SSM 会话。系统通过 AWS 密钥管理服务 (AWS KMS) 对您的会话进行身份验证，并在浏览器中打开终端。

**注意**  
基于控制台的远程访问适用于运行服务器 SDK 5.x 版本的实例集。对于运行较早 SDK 版本的舰队，请使用下一节中描述的 AWS CLI 方法。

## 使用 AWS CLI 进行远程访问
<a name="fleets-remote-access-cli"></a>

以下说明介绍了如何使用 AWS 命令行界面（CLI）远程连接到实例。您还可以使用 AWS SDK 进行编程调用，如[服务 API 参考](https://docs.aws.amazon.com/gamelift/latest/apireference/)中所述Amazon GameLift Servers。

### 收集实例数据
<a name="fleets-remote-access-getinfo"></a>

要连接到 Amazon GameLift Servers 托管式 EC2 实例集实例，您需要以下信息：
+ 要连接到的实例的 ID。您可以使用实例 ID 或 ARN。
+ 实例上使用的 Amazon GameLift Servers 服务器 SDK 版本。服务器 SDK 与实例上运行的游戏生成包集成。

以下说明描述了如何使用 AWS CLI 完成这些任务。您必须知道要连接到的实例的实例集 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. [describe-fleet-attributes](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-fleet-attributes.html)使用舰队 ID 或 ARN 致电以获取舰队的构建 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 上运行的远程实例。对于容器队列，在连接到实例后，您可以访问在其上运行的单个容器。有关更多信息，请参阅 [Connect 到容器](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) 和为 AWS CLI 安装会话管理器*[插件](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html)。

1. **请求实例的访问凭证。**[get-compute-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-access.html)使用您要连接的实例的队列 ID 和计算名称进行调用。 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)。

   start-session 请求将自动使用您在步骤 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和--out* *put* 参数来自动生成`.pem`文件。`get-instance-access`

     要在 `.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) 为远程连接添加端口设置 (例如 SSH 为 `22`，RDP 为 `3389`)。对于 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>

一旦连接到队列实例，您就拥有完全的用户和管理访问权限。这意味着您也有权限对游戏托管服务进行操作，因此可能引发服务异常或故障。如果该实例托管有活跃玩家的游戏，则可能会导致游戏会话崩溃并丢掉玩家，或者中断游戏关闭进程，这可能会导致保存的游戏数据和日志出现错误。

对于容器舰队，在访问容器后（请参阅[Connect 到容器](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/`

# Connect 到容器
<a name="containers-remote-access"></a>

对于Amazon GameLift Servers容器队列，您可以访问在舰队实例上运行的游戏服务器容器。使用容器访问权限对游戏会话进行故障排除、检查日志和调试运行时问题。

## Connect 连接到容器
<a name="containers-remote-access-connect"></a>

**开始之前：**  
连接到实例集实例。有关说明，请参阅[Connect 连接到舰队实例](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控制台中，从导航窗格中选择 “**托管容器**”，然后选择 **Fleets**。

1. 选择包含您要访问的容器或游戏会话的舰队 ID。

1. 在舰队详细信息页面上，选择以下选项卡之一：
   + **计算**-列出在舰队上运行的容器。选择要连接的容器。
   + **游戏会话** — 列出舰队的游戏会话。选择游戏会话以连接到托管它的容器。

1. 选择**连接**。复制显示的命令以连接到容器，然后再次选择 **Connect**。

1. 在连接对话框中，选择**运行**以创建新的 SSM 会话。系统通过 AWS 密钥管理服务 (AWS KMS) 对您的会话进行身份验证，并在浏览器中打开终端。

1. 连接到实例后，粘贴步骤 4 中的 docker 命令并在实例上执行该命令以访问容器。

## Connect 连接到托管游戏会话的容器
<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. **获取计算访问权限和容器属性。**[get-compute-access](https://docs.aws.amazon.com/cli/latest/reference/gamelift/get-compute-access.html)使用舰队 ID 和计算名称进行呼叫。

   响应包括以下字段：
   + `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 中的凭证连接到队列实例。有关详细说明，请参阅[Connect 连接到舰队实例](fleets-remote-access.md)。

1. **找到游戏服务器容器名称。**[describe-container-group-definition](https://docs.aws.amazon.com/cli/latest/reference/gamelift/describe-container-group-definition.html)使用 fro `GameServerContainerGroupDefinitionArn` m 步骤 2 调用以识别游戏服务器容器名称。

   **请求**

   ```
   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。**使用上一步中的游戏服务器容器名称，在步骤 2 的`get-compute-access`响应`ContainerIdentifiers`中找到匹配的条目。记下 `ContainerRuntimeId` 的值。

1. **Connect 连接到容器。**使用`ContainerRuntimeId`作为容器 ID 并运行以下命令：

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