View a markdown version of this page

Connect ke kontainer - Amazon GameLift Servers

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Connect ke kontainer

Untuk armada Amazon GameLift Servers kontainer, Anda dapat mengakses kontainer server game yang berjalan pada instance armada. Gunakan akses kontainer untuk memecahkan masalah sesi game, memeriksa log, dan men-debug masalah runtime.

Connect ke wadah

Sebelum Anda mulai:

Connect ke instance armada. Untuk petunjuk, lihat Connect ke instance armada.

Jalankan perintah berikut untuk membuat daftar kontainer yang sedang berjalan pada instance:

sudo docker ps

Output mencantumkan semua kontainer yang berjalan pada instance, termasuk kontainer server game dan Amazon GameLift Servers kontainer internal. Cari wadah dengan gambar server game Anda untuk mengidentifikasi wadah server game.

Contoh keluaran:

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

Untuk terhubung ke wadah server game, gunakan ID pendek kontainer dari CONTAINER ID kolom. Ini memberi Anda akses baca dan tulis penuh ke sistem file kontainer.

sudo docker exec -it container-short-id sh

Connect ke wadah melalui konsol

Anda dapat terhubung ke kontainer server game dari Amazon GameLift Servers konsol menggunakan Amazon EC2 Systems Manager (SSM). Metode ini menyediakan akses aman tanpa memerlukan pengaturan tambahan atau manajemen kredensi. Anda dapat terhubung ke kontainer dari tab Komputasi atau tab Sesi permainan di halaman detail armada.

  1. Di Amazon GameLift Servers konsol, pilih Kontainer terkelola dari panel navigasi, lalu Armada.

  2. Pilih ID armada yang berisi wadah atau sesi permainan yang ingin Anda akses.

  3. Pada halaman detail armada, pilih salah satu tab berikut:

    • Komputasi — Daftar kontainer yang berjalan di armada. Pilih wadah yang ingin Anda sambungkan.

    • Sesi permainan — Daftar sesi permainan untuk armada. Pilih sesi permainan untuk terhubung ke wadah hosting itu.

  4. Pilih Hubungkan. Salin perintah yang ditampilkan untuk terhubung ke wadah, lalu pilih Connect lagi.

  5. Dalam dialog koneksi, pilih Jalankan untuk membuat sesi SSM baru. Sistem mengotentikasi sesi Anda melalui AWS Key Management Service (AWS KMS) dan membuka terminal di browser Anda.

  6. Setelah Anda terhubung ke instance, tempel perintah docker dari langkah 4 dan jalankan pada instance untuk mengakses wadah.

Connect ke kontainer hosting sesi permainan

Untuk terhubung ke wadah server game yang menghosting sesi game tertentu, ikuti langkah-langkah ini.

  1. Dapatkan nama komputasi. Hubungi describe-game-sessionsuntuk mendapatkan sesi permainan. ComputeName

    Permintaan

    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

    Respons

    { "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", . . . } ] }

    Perhatikan ComputeName nilai dari respons (misalnya,62c5ff7f7a9a445d84877074c80aeafc).

  2. Dapatkan akses komputasi dan atribut kontainer. Panggil get-compute-accessdengan ID armada dan hitung nama.

    Tanggapan tersebut mencakup bidang-bidang berikut:

    • ContainerIdentifiers— The ContainerName dan ContainerRuntimeId untuk setiap wadah.

    • GameServerContainerGroupDefinitionArn— ARN dari definisi grup kontainer.

    • Credentials- Kredensi sementara untuk terhubung ke instance.

    Permintaan

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

    Respons

    { "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" }
  3. Hubungkan ke instans. Gunakan kredensil dari langkah 2 untuk terhubung ke instance armada. Untuk petunjuk mendetail, lihat Connect ke instance armada.

  4. Temukan nama wadah server game. Panggil describe-container-group-definitionmenggunakan GameServerContainerGroupDefinitionArn dari langkah 2 untuk mengidentifikasi nama kontainer server game.

    Permintaan

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

    Respons

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

    Perhatikan GameServerContainerDefinition.ContainerName nilainya (misalnya,game-server).

  5. Identifikasi ID runtime kontainer server game. Menggunakan nama kontainer server game dari langkah sebelumnya, temukan entri yang cocok di ContainerIdentifiers dari get-compute-access respons di langkah 2. Perhatikan ContainerRuntimeId nilainya.

  6. Connect ke wadah. Gunakan ContainerRuntimeId sebagai ID kontainer dan jalankan perintah berikut:

    sudo docker exec -it 02accb92cd9bef3373300e7151d5c2b3dcca3b06eff1bb4e345085fc008d4678 sh