View a markdown version of this page

Shell admin sesi streaming - GameLift Aliran Amazon

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

Shell admin sesi streaming

Gunakan CreateStreamSessionAdminShellAPI untuk terhubung ke lingkungan runtime langsung sesi streaming Anda. Gunakan koneksi terminal untuk memecahkan masalah aplikasi dengan memeriksa log, memeriksa proses yang sedang berjalan, memeriksa pemanfaatan GPU, dan men-debug status aplikasi Anda secara real time.

penting

Shell admin memberikan tingkat akses yang sama dengan aplikasi yang berjalan pada sesi streaming, yang dapat mencakup input pengguna, gambar layar, dan file data aplikasi. Berikan gameliftstreams:CreateStreamSessionAdminShell izin hanya untuk identitas IAM tepercaya.

Prasyarat

Sebelum Anda terhubung ke sesi streaming dengan shell admin, instal plugin AWS Systems Manager Session Manager untuk file AWS Command Line Interface. Plugin diperlukan untuk membuka koneksi terminal. Untuk petunjuk penginstalan, lihat Menginstal plugin Session Manager untuk AWS Command Line Interface.

Contoh kode di bawah ini memerlukan jq, prosesor JSON baris perintah, untuk mengekstrak nilai dari respons API.

Sesi streaming harus dalam salah satu status berikut:ACTIVE,, CONNECTEDPENDING_CLIENT_RECONNECTION, atauRECONNECTING.

Connect menggunakan plugin Session Manager untuk AWS Command Line Interface

Gunakan AWS CLI untuk meminta kredensi akses shell admin, lalu gunakan plugin Session Manager AWS Command Line Interface untuk membuat koneksi terminal. Gunakan contoh kode berikut untuk menghubungkan. Ganti STREAM_GROUP_IDSTREAM_SESSION_ID,, dan REGION dengan nilai-nilai Anda.

AWS Command Line Interface dengan skrip Bash

#!/bin/bash # GameLift Streams session with admin shell script # This script sets up a terminal connection to an Amazon GameLift Streams session # using the AWS Systems Manager Session Manager Plugin # Stream group ARN or ID owning the session STREAM_GROUP_ID="arn:aws:gameliftstreams:us-west-2:123456789012:streamgroup/sg-1AB2C3De4" # Stream session ARN or ID to connect to STREAM_SESSION_ID="arn:aws:gameliftstreams:us-west-2:123456789012:streamsession/sg-1AB2C3De4/44wOYoDXlRbtf" # AWS Region where you created the stream group (primary location) REGION="us-west-2" # Request admin shell access SESSION_ACCESS=$(aws gameliftstreams create-stream-session-admin-shell \ --identifier "${STREAM_GROUP_ID}" \ --stream-session-identifier "${STREAM_SESSION_ID}" \ --region "${REGION}" \ --output json) # Extract session ID and connect using Session Manager plugin SESSION_ID=$(echo "$SESSION_ACCESS" | jq -r .SessionId) # Connect using the API response (the plugin extracts StreamUrl and TokenValue) # The connection URL expires 60 seconds after the API response. session-manager-plugin \ "$SESSION_ACCESS" \ "${REGION}" \ "StartSession" \ "" \ "{\"Target\":\"$SESSION_ID\"}" \ "https://ssm.${REGION}.api.aws"
Tip

Untuk menemukan sesi streaming aktif untuk grup streaming, gunakan operasi ListStreamSessionsAPI atau periksa konsol Amazon GameLift Streams.

Jika Anda mengalami kesulitan membuat koneksi terminal, lihat solusi Streaming masalah shell admin sesi untuk kesalahan umum.

Streaming masalah shell admin sesi

Bagian ini mengidentifikasi potensi penyebab dan solusi untuk masalah yang terkait dengan penggunaan CreateStreamSessionAdminShellAPI untuk membuka koneksi terminal yang aman ke lingkungan runtime langsung sesi streaming Anda.

Koneksi terminal belum tersedia

Jika Anda menelepon CreateStreamSessionAdminShell dan menerima StreamSessionAccessNotReadyException (HTTP 409), koneksi terminal ke lingkungan runtime langsung sesi Amazon GameLift Streams Anda belum dapat disediakan.

Untuk menyelesaikan masalah ini:

  • Tunggu beberapa detik dan coba lagi permintaannya. Koneksi terminal biasanya tersedia segera setelah sesi aliran memasuki ACTIVE status.

  • Jika kesalahan berlanjut setelah percobaan ulang berulang, verifikasi bahwa sesi streaming masih dalam salah satu status berikut:ACTIVE,, CONNECTEDPENDING_CLIENT_RECONNECTION, atau RECONNECTING dengan menelepon. GetStreamSession

Akses ditolak saat membuat shell admin

Jika Anda memanggil CreateStreamSessionAdminShell dan menerima kesalahan AccessDeniedException (HTTP 403), identitas IAM panggilan tidak memiliki izin yang diperlukan. Untuk mengatasi masalah ini, verifikasi bahwa identitas IAM memiliki gameliftstreams:CreateStreamSessionAdminShell izin untuk sumber daya grup aliran target.

Tidak dapat terhubung ke sesi streaming yang tidak aktif

Jika Anda memanggil CreateStreamSessionAdminShell dan menerima kesalahan ResourceNotFoundException (HTTP 404) atau ValidationException (HTTP 400), verifikasi bahwa grup streaming yang menghosting sesi streaming dalam ACTIVE status dan sesi streaming berada di salah satu status berikut:ACTIVE,, CONNECTEDPENDING_CLIENT_RECONNECTION, atauRECONNECTING.

Untuk menyelesaikan masalah ini:

  • Verifikasi status grup aliran dengan menelepon GetStreamGroup.

  • Verifikasi status sesi streaming dengan menelepon GetStreamSession.

  • Jika sesi baru saja dimulai, tunggu hingga status sesi bertransisi ke ACTIVE sebelum meminta koneksi terminal.

StreamUrl telah kedaluwarsa

Jika Anda terhubung ke WebSocket titik akhir yang dikembalikan oleh CreateStreamSessionAdminShell dan menerima kesalahan koneksi, StreamUrl telah kedaluwarsa. Ini berlaku selama 60 detik setelah Anda menerimanya. Jika Anda tidak membuat koneksi dalam waktu itu, URL kedaluwarsa.

Untuk menyelesaikan masalah ini:

  • Hubungi CreateStreamSessionAdminShell lagi untuk mendapatkan yang baruStreamUrl,SessionId, danTokenValue.

  • Buat koneksi dalam waktu 60 detik setelah menerima respons.

Plugin Session Manager tidak diinstal

Jika Anda mencoba untuk terhubung menggunakan kredensil yang dikembalikan oleh CreateStreamSessionAdminShell dan koneksi gagal dengan pesan yang menunjukkan plugin Session Manager hilang, Anda perlu menginstal plugin AWS Systems Manager Session Manager untuk CLI AWS .

Untuk menyelesaikan masalah ini:

  • Instal plugin Session Manager untuk AWS CLI. Untuk petunjuk penginstalan, lihat Menginstal plugin Session Manager untuk AWS CLI di Panduan Pengguna AWS Systems Manager.

  • Verifikasi plugin diinstal dengan menjalankan session-manager-plugin dari terminal Anda.

Shell admin ditutup secara tak terduga

Jika koneksi terminal Anda terputus secara tiba-tiba selama penggunaan, mungkin telah ditutup karena salah satu alasan berikut:

  • Sambungan terminal dicakup ke siklus hidup sesi aliran dan berakhir ketika sesi aliran bertransisi ke status atau. TERMINATED ERROR

  • Koneksi terminal melebihi durasi maksimumnya 30 menit.

  • Koneksi terminal melebihi batas waktu idle 15 menit.

Untuk menyelesaikan masalah ini:

  • Verifikasi bahwa sesi streaming tidak dalam ERROR status TERMINATED atau dengan menelepon GetStreamSession.

  • Jika koneksi terminal habis karena idle atau durasi maksimum, hubungi CreateStreamSessionAdminShell lagi untuk membuka koneksi terminal baru.

  • Jika sesi streaming telah berakhir, mulailah sesi streaming baru untuk membuka koneksi terminal baru.