View a markdown version of this page

ストリームセッション管理シェル - Amazon GameLift Streams

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ストリームセッション管理シェル

CreateStreamSessionAdminShell API を使用して、ストリームセッションのライブランタイム環境に接続します。ターミナル接続を使用して、ログの検査、実行中のプロセスの確認、GPU 使用率の検査、アプリケーションの状態のリアルタイムでのデバッグを行い、アプリケーションの問題をトラブルシューティングします。

重要

管理シェルは、ストリームセッションで実行されているアプリケーションと同じレベルのアクセスを許可します。これには、ユーザー入力、画面イメージ、アプリケーションデータファイルが含まれます。信頼できる IAM ID にのみgameliftstreams:CreateStreamSessionAdminShellアクセス許可を付与します。

前提条件

管理シェルを使用してストリームセッションに接続する前に、 の AWS Systems Manager Session Manager プラグインをインストールします AWS Command Line Interface。プラグインはターミナル接続を開くために必要です。インストール手順については、「 の Session Manager プラグインをインストールする AWS Command Line Interface」を参照してください。

次のコード例では、API レスポンスから値を抽出するために、コマンドライン JSON プロセッサである jq が必要です。

ストリームセッションは、ACTIVE、、CONNECTEDPENDING_CLIENT_RECONNECTIONまたは のいずれかのステータスである必要がありますRECONNECTING

の Session Manager プラグインを使用して接続する AWS Command Line Interface

AWS CLI を使用して管理者シェルのアクセス認証情報をリクエストし、 の Session Manager プラグイン AWS Command Line Interfaceを使用してターミナル接続を確立します。次のコード例を使用して接続します。STREAM_GROUP_IDSTREAM_SESSION_ID、 を自分の値REGIONに置き換えます。

AWS Command Line Interface 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"
ヒント

ストリームグループのアクティブなストリームセッションを検索するには、ListStreamSessions API オペレーションを使用するか、Amazon GameLift Streams コンソールを確認します。

ターミナル接続の確立に問題がある場合は、一般的なエラーの解決策ストリームセッション管理シェルの問題について「」を参照してください。

ストリームセッション管理シェルの問題

このセクションでは、CreateStreamSessionAdminShell API を使用してストリームセッションのライブランタイム環境への安全なターミナル接続を開くことに関連する問題の潜在的な原因と解決策を特定します。

ターミナル接続はまだ利用できません

StreamSessionAccessNotReadyException (HTTP 409) を呼び出しCreateStreamSessionAdminShellて受信する場合、Amazon GameLift Streams セッションのライブランタイム環境へのターミナル接続をプロビジョニングすることはできません。

この問題を解決するには:

  • 数秒待ってから、リクエストを再試行してください。通常、ターミナル接続は、ストリームセッションが ACTIVE状態になった直後に使用可能になります。

  • 再試行を繰り返してもエラーが解決しない場合は、GetStreamSession を呼び出しRECONNECTINGCONNECTED、ストリームセッションが ACTIVEPENDING_CLIENT_RECONNECTION、、または のいずれかの状態のままであることを確認します。

管理者シェルの作成時にアクセスが拒否されました

を呼び出しCreateStreamSessionAdminShellAccessDeniedException (HTTP 403) エラーが発生した場合、呼び出し元の IAM ID に必要なアクセス許可がありません。この問題を解決するには、IAM ID にターゲットストリームグループリソースに対する gameliftstreams:CreateStreamSessionAdminShell アクセス許可があることを確認します。

アクティブでないストリームセッションに接続できない

ResourceNotFoundException (HTTP 404) または ValidationException (HTTP 400) エラーを呼び出しCreateStreamSessionAdminShellて受信する場合は、ストリームセッションをホストするストリームグループが ACTIVE状態であり、ストリームセッションが ACTIVE、、CONNECTEDPENDING_CLIENT_RECONNECTION、または のいずれかの状態であることを確認しますRECONNECTING

この問題を解決するには:

  • GetStreamGroup を呼び出してストリームグループの状態を確認します。

  • GetStreamSession を呼び出して、ストリームセッションの状態を確認します。

  • セッションが最近開始した場合は、セッションステータスが に移行するまで待ってACTIVEから、ターミナル接続をリクエストします。

StreamUrl の有効期限が切れています

から返された WebSocket エンドポイントに接続CreateStreamSessionAdminShellし、接続エラーが発生した場合、 StreamUrlは期限切れです。受信後 60 秒間有効です。その期間内に接続を確立しない場合、URL は期限切れになります。

この問題を解決するには:

  • CreateStreamSessionAdminShell を再度呼び出して、新しい StreamUrlSessionId、および を取得しますTokenValue

  • レスポンスを受信してから 60 秒以内に接続を確立します。

Session Manager プラグインがインストールされていない

から返された認証情報を使用して接続しようとCreateStreamSessionAdminShellしたときに接続に失敗し、Session Manager プラグインがないことを示すメッセージが表示された場合は、 CLI の AWS Systems Manager Session Manager AWS プラグインをインストールする必要があります。

この問題を解決するには:

管理者シェルが予期せず閉じます

使用中にターミナル接続が突然切断された場合、次のいずれかの理由でターミナル接続が閉じられた可能性があります。

  • ターミナル接続はストリームセッションのライフサイクルに限定され、ストリームセッションが TERMINATEDまたは ERROR状態に移行したときに終了します。

  • ターミナル接続が最大期間である 30 分を超えました。

  • ターミナル接続がアイドルタイムアウトの 15 分を超えました。

この問題を解決するには:

  • GetStreamSession を呼び出して、ストリームセッションが TERMINATEDまたは ERROR状態にないことを確認します。

  • アイドル時間または最大時間が原因でターミナル接続がタイムアウトした場合は、 CreateStreamSessionAdminShell を再度呼び出して新しいターミナル接続を開きます。

  • ストリームセッションが終了した場合は、新しいストリームセッションを開始して新しいターミナル接続を開きます。