このページでは、デプロイメントで Game Servers の構成ファイルの登録、編集、一覧表示、詳細表示を行う方法について説明します。 この構成ファイルでは、Agones フリート仕様を定義します。この仕様には、Game Servers の数、バッファ、Game Servers バージョンに関する情報が含まれます。この構成はスケーリング構成も定義します。これは、需要を満たすためにフリートを自動的にスケールアップまたはスケールダウンする方法を指定します。
始める前に
始める前に、Game Servers の概要の主なコンセプトを理解しておくことをおすすめします。次のタスクも完了していることを確認してください。
- Game Services API が有効になっていることを確認します。 Game Services API を有効にする
- gcloud CLI がインストールされているシェルを選択するか、API クライアントを使用します。
Google Cloud Console に移動します。
コンソールの右上隅にある [Cloud Shell をアクティブにする] ボタン をクリックします。
- サービス アカウントを作成する。
- 秘密鍵を JSON ファイルとしてダウンロードします。
-
環境変数
GOOGLE_APPLICATION_CREDENTIALS
を、認証情報を含む JSON ファイルのパスに設定します。この変数は現在のシェル セッションにのみ適用されるため、新しいセッションを開く場合は、変数を再度設定する必要があります。
Cloud Shell
Cloud Shell を起動するには、次の手順に従います。
コンソールの下部にあるフレーム内で Cloud Shell セッションが開きます。このシェルで gcloud
コマンドを実行します。
ローカルシェル
gcloud CLI をインストールします。
Google Cloud CLI に必要なデフォルトのプロジェクトが設定されていることを確認します(設定されていない場合、後でコマンドごとに --project
フラグを明示的に指定する必要があります)。
gcloud config list project
デフォルト プロジェクトを設定していない場合は、次のコマンドを実行して、デフォルト プロジェクトを設定します。PROJECT_ID
は、設定するプロジェクト ID に置き換えてください。
gcloud config set project PROJECT_ID
次のコマンドを実行して、Google Cloud CLI のバージョンを確認します。Game Servers には、gcloud CLI のバージョン 306.0.0
以降が必要です。
gcloud version
インストールを更新するには、次のコマンドを実行します。
gcloud components update
curl / PowerShell
REST API を curl
または Windows PowerShell で使用するには、次の操作を行います。
クライアント ライブラリ
Google Cloud Game Servers は、クライアント ライブラリを使用して、プログラムで制御できます。ライブラリと認証の手順については、クライアント ライブラリの概要をご覧ください。
Config を作成する
Game Servers のデプロイメントを作成していることを確認します。
Console
Google Cloud コンソールで、[Game Servers の Deployment] ページに移動します。
テーブルでデプロイメントを見つけます。最後のテーブル列で、省略記号 more_vert をクリックし、[List configs] を選択します。このページで、デプロイメントのアクティブ構成と非アクティブ構成を確認できます。
デプロイの新しい構成を作成するには、[構成の作成] をクリックします。
[Config name] ボックスに、この構成の一意の識別子を入力します。
(省略可)[説明] ボックスに、このデプロイメントの説明を入力します。
[Fleet config name] ボックスに、このフリート構成の一意の識別子を入力します。
[Fleet spec] ボックスに、フリート仕様を入力します。
(省略可)[Scaling config] で、フリートを自動的にスケーリングする構成を 1 つ以上指定できます。[追加] をクリックして、スケーリング構成を追加します。
- [Scaling Config Name] ボックスに、このスケーリング構成の一意の識別子を入力します。
- (省略可)[開始時間] ボックスと [終了時間] ボックスで、このスケーリング構成を有効にする期間のスケジュールを設定します。詳細については、スケーリング スケジュールの作成をご覧ください。
- [Autoscaper spec] ボックスに、スケーリングの仕様を入力します。
gcloud
Google Cloud CLI を使用して、デプロイメントに Game Servers の構成ファイルを作成できます。
Game Servers の構成ファイルを作成するには:
このフリート仕様をファイルにコピーします。
- name: fleet-spec-1 fleetSpec: replicas: 10 scheduling: Packed strategy: type: RollingUpdate rollingUpdate: maxSurge: 25% maxUnavailable: 25% template: metadata: labels: gameName: udp-server spec: ports: - name: default portPolicy: Dynamic containerPort: 7654 protocol: UDP health: initialDelaySeconds: 30 periodSeconds: 60 sdkServer: logLevel: Info grpcPort: 9357 httpPort: 9358 template: spec: containers: - name: dedicated image: gcr.io/agones-images/udp-server:0.21 imagePullPolicy: Always resources: requests: memory: 200Mi cpu: 500m limits: memory: 200Mi cpu: 500m
次のコマンドを実行します。deploymentID や configID などのプレースホルダ値は、適切な値に置き換えます。
gcloud game servers configs create configID --deployment deploymentID --fleet-configs-file fleetSpecFile
変数のプレースホルダは、次の説明のとおりです。
- configID は、この構成ファイルに指定できる一意の ID です。
- deploymentID は、デプロイメントの一意の ID です。
- fleetSpecFile は、Agones フリート仕様を含むファイルへのパスです。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
- DEPLOYMENT_ID: デプロイメントのユーザー定義の識別子。
- CONFIG_ID: 構成のユーザー定義の識別子。
JSON 本文をリクエストします。
{ "fleetConfigs": [ { "name": "fleet-spec-1", "fleetSpec": "{ \"replicas\": 10, \"scheduling\": \"Packed\", \"template\": { \"metadata\": { \"labels\": { \"gameName\": \"udp-server\" } }, \"spec\": { \"ports\": [ { \"name\": \"default\", \"portPolicy\": \"Dynamic\", \"containerPort\": 7654, \"protocol\": \"UDP\" } ], \"health\": { \"periodSeconds\": 60, \"initialDelaySeconds\": 30 }, \"sdkServer\": { \"logLevel\": \"Info\", \"grpcPort\": 9357, \"httpPort\": 9358 }, \"template\": { \"spec\": { \"containers\": [ { \"name\": \"dedicated\", \"image\": \"gcr.io/agones-images/udp-server:0.21\", \"imagePullPolicy\": \"Always\", \"resources\": { \"requests\": { \"memory\": \"200Mi\", \"cpu\": \"500m\" }, \"limits\": { \"memory\": \"200Mi\", \"cpu\": \"500m\" } } } ] } } } } }" } ] }
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/global/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/CONFIG_ID", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
構成の編集
構成は不変であるため、Game Servers の構成は編集できません。構成を編集するには、その構成をコピーし(構成の詳細を表示)、ローカルに編集し、更新版を使用して新しい構成を作成します。
構成ファイルの一覧表示
Console
Google Cloud コンソールで、[Game Servers の Deployment] ページに移動します。
テーブルでデプロイメントを見つけます。最後のテーブル列で、省略記号 more_vert をクリックし、[List configs] を選択します。このページで、デプロイメントのアクティブ構成と非アクティブ構成を確認できます。
gcloud
Google Cloud CLI を使用して、構成ファイルを一覧表示できます。
すべての構成ファイルを一覧表示するには:
gcloud game servers configs list
デプロイメント内のすべての構成ファイルを一覧表示するには、次のコマンドを実行します。deploymentID は、一覧表示する構成ファイルのある親デプロイメントで置き換えます。
gcloud game servers configs list --deployment=deploymentID
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
- DEPLOYMENT_ID: デプロイメントのユーザー定義の識別子。
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "gameServerConfigs": [ { "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/MY-CONFIG-1", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "fleetConfigs": [ { "fleetSpec": ... "name": "MY-CONFIG-1" } ], "description": "Config 1" }, { "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/MY-CONFIG-2", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "fleetConfigs": [ { "fleetSpec": ... "name": "MY-CONFIG-2" } ], "description": "Config 2" }, ] }
構成ファイルの詳細表示
Console
Google Cloud コンソールで、[Game Servers の Deployment] ページに移動します。
テーブルでデプロイメントを見つけます。最後のテーブル列で、省略記号 more_vert をクリックし、[List configs] を選択します。このページで、デプロイメントのアクティブ構成と非アクティブ構成を確認できます。
テーブルで構成を見つけます。最後のテーブル列で、省略記号 more_vert をクリックして、[構成を表示] を選択します。
gcloud
Google Cloud CLI を使用して、作成時間など構成ファイルの詳細を確認できます。
構成ファイルの詳細を表示するには、次のコマンドを実行します。deploymentID や configID などのプレースホルダ値は、適切な値に置き換えます。
gcloud game servers configs describe configID --deployment deploymentID
構成ファイルの詳細が出力に表示されます。
変数のプレースホルダは、次の説明のとおりです。
- configID は、この Game Servers 構成ファイルに指定した一意の ID です。
- deploymentID は、親デプロイメントの一意の ID です。
REST
リクエストのデータを使用する前に、次のように置き換えます。
- PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
- DEPLOYMENT_ID: デプロイメントのユーザー定義の識別子。
- CONFIG_ID: 構成のユーザー定義の識別子。
リクエストを送信するには、次のいずれかのオプションを展開します。
次のような JSON レスポンスが返されます。
{ "name": "projects/PROJECT_ID/locations/global/gameServerDeployments/DEPLOYMENT_ID/configs/CONFIG_ID", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "fleetConfigs": [ { "fleetSpec": ... "name": "CONFIG_ID" } ], "description": "My config" }
次のステップ
クラスタ スケーリング動作の構成方法を学習する。
構成ファイルをロールアウトする方法を学習する。
構成ファイルを削除する方法を学習する。