

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

# Shell admin sesi streaming
<a name="troubleshoot-admin-shell-guide"></a>

Gunakan [CreateStreamSessionAdminShell](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_CreateStreamSessionAdminShell.html)API 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
<a name="troubleshoot-admin-shell-prerequisites"></a>

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](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html).

Contoh kode di bawah ini memerlukan [jq](https://jqlang.github.io/jq/), prosesor JSON baris perintah, untuk mengekstrak nilai dari respons API.

Sesi streaming harus dalam salah satu status berikut:`ACTIVE`,, `CONNECTED``PENDING_CLIENT_RECONNECTION`, atau`RECONNECTING`.

## Connect menggunakan plugin Session Manager untuk AWS Command Line Interface
<a name="troubleshoot-admin-shell-connect"></a>

Gunakan AWS CLI untuk meminta kredensi akses shell admin, lalu gunakan [plugin Session Manager AWS Command Line Interface untuk](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) membuat koneksi terminal. Gunakan contoh kode berikut untuk menghubungkan. Ganti `STREAM_GROUP_ID``STREAM_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 [ListStreamSessions](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_ListStreamSessions.html)API atau periksa konsol Amazon GameLift Streams.

Jika Anda mengalami kesulitan membuat koneksi terminal, lihat solusi [Streaming masalah shell admin sesi](#troubleshoot-admin-shell) untuk kesalahan umum.

## Streaming masalah shell admin sesi
<a name="troubleshoot-admin-shell"></a>

Bagian ini mengidentifikasi potensi penyebab dan solusi untuk masalah yang terkait dengan penggunaan [CreateStreamSessionAdminShell](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_CreateStreamSessionAdminShell.html)API untuk membuka koneksi terminal yang aman ke lingkungan runtime langsung sesi streaming Anda.

### Koneksi terminal belum tersedia
<a name="troubleshoot-admin-shell-not-ready"></a>

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`,, `CONNECTED``PENDING_CLIENT_RECONNECTION`, atau `RECONNECTING` dengan menelepon. [GetStreamSession](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html)

### Akses ditolak saat membuat shell admin
<a name="troubleshoot-admin-shell-access-denied"></a>

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
<a name="troubleshoot-admin-shell-not-active"></a>

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`,, `CONNECTED``PENDING_CLIENT_RECONNECTION`, atau`RECONNECTING`.

Untuk menyelesaikan masalah ini:
+ Verifikasi status grup aliran dengan menelepon [GetStreamGroup](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamGroup.html).
+ Verifikasi status sesi streaming dengan menelepon [GetStreamSession](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html).
+ Jika sesi baru saja dimulai, tunggu hingga status sesi bertransisi ke `ACTIVE` sebelum meminta koneksi terminal.

### StreamUrl telah kedaluwarsa
<a name="troubleshoot-admin-shell-url-expired"></a>

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 baru`StreamUrl`,`SessionId`, dan`TokenValue`.
+ Buat koneksi dalam waktu 60 detik setelah menerima respons.

### Plugin Session Manager tidak diinstal
<a name="troubleshoot-admin-shell-plugin-missing"></a>

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](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) di *Panduan Pengguna AWS Systems Manager*.
+ Verifikasi plugin diinstal dengan menjalankan `session-manager-plugin` dari terminal Anda.

### Shell admin ditutup secara tak terduga
<a name="troubleshoot-admin-shell-closes"></a>

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](https://docs.aws.amazon.com/gameliftstreams/latest/apireference/API_GetStreamSession.html).
+ 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.