クラスタの削除

このページでは、Game Servers クラスタを削除する方法について説明します。

始める前に

始める前に、Game Servers の概要の主なコンセプトを理解しておくことをおすすめします。次のタスクも完了していることを確認してください。

  • Game Services API が有効になっていることを確認します。
  • Game Services API を有効にする
  • Cloud SDK がインストールされたシェルを選択するか、API クライアントを使用します。
  • Cloud Shell

    Cloud Shell を起動するには、次の手順に従います。

    1. Google Cloud Console に移動します。

      Google Cloud Console

    2. コンソールの右上隅にある [Cloud Shell をアクティブにする] ボタン をクリックします。

    コンソールの下部にあるフレーム内で Cloud Shell セッションが開きます。このシェルで gcloud コマンドを実行します。

    ローカルシェル

    gcloud をインストールするには、Cloud SDK をインストールします。これには、gcloud コマンドライン ツールが含まれています。

    gcloud コマンドライン ツールに必要なデフォルトのプロジェクトが設定されていることを確認します(設定されていない場合、後でコマンドごとに --project フラグを明示的に指定する必要があります)。

    gcloud config list project
    

    デフォルト プロジェクトを設定していない場合は、次のコマンドを実行して、デフォルト プロジェクトを設定します。PROJECT_ID は、設定するプロジェクト ID に置き換えてください。

    gcloud config set project PROJECT_ID
    

    次のコマンドを実行して、Google Cloud SDK のバージョンを確認します。Game Servers では、バージョン 306.0.0 以降の SDK が必要です。

    gcloud version
    

    インストールを更新するには、次のコマンドを実行します。

    gcloud components update
    

    curl / PowerShell

    REST API を curl または Windows PowerShell で使用するには、次の操作を行います。

    1. サービス アカウントを作成する。
    2. 秘密鍵を JSON ファイルとしてダウンロードします。
    3. 環境変数 GOOGLE_APPLICATION_CREDENTIALS を、サービス アカウント キーが含まれる JSON ファイルのパスに設定します。 この変数は現在のシェル セッションにのみ適用されるため、新しいセッションを開く場合は、変数を再度設定します。

    クライアント ライブラリ

    Google Cloud Game Servers は、クライアント ライブラリを使用して、プログラムで制御できます。ライブラリと認証の手順については、クライアント ライブラリの概要をご覧ください。

クラスタの削除

Game Servers クラスタを削除しても、クラスタ内のリソースは削除されません。

Console

  1. Cloud Console で、[レルムとクラスタ] ページに移動します。

    Game Servers に移動

  2. レルムを展開して、レルムに所属するゲームサーバー クラスタを確認します。

  3. クラスタの最後のテーブル列で、省略記号 をクリックし、[ゲームサーバー クラスタを削除] を選択します。

gcloud

Game Servers のグローバル クラスタまたはリージョン クラスタを削除するには、gcloud コマンドライン ツールを使用します。

グローバル クラスタを削除するには:

  1. 次のコマンドを実行します。clusterIDrealmID などのプレースホルダ値は、適切な値に置き換えます。

    gcloud game servers clusters delete clusterID --realm=realmID --dry-run
    

    クラスタを削除する前にオペレーションをプレビューできるように、出力では targetState が返されます。

  2. クラスタを削除するには、次のコマンドを実行します。

    gcloud game servers clusters delete clusterID --realm=realmID --no-dry-run
    

リージョン クラスタを削除するには:

  1. 次のコマンドを実行します。clusterID などのプレースホルダの値は、適切な値に置き換えます。

    gcloud game servers clusters delete clusterID --realm=realmID --location=region --dry-run
    

    クラスタを削除する前にオペレーションをプレビューできるように、出力では targetState が返されます。

  2. クラスタを削除するには、次のコマンドを実行します。

    gcloud game servers clusters delete clusterID --realm=realmID --location=region --no-dry-run
    

変数のプレースホルダは、次の説明のとおりです。

  • clusterID は、このクラスタに指定した一意の ID です。
  • realmID は、このクラスタの親レルムに指定した一意の ID です。
  • region は、クラスタのリージョンです(該当する場合)。親のレルムと同じ場所を選択します。

REST とコマンドライン

リクエストのデータを使用する前に、次のように置き換えます。

  • PROJECT_ID: IAM 設定に載っている Google Cloud プロジェクト ID。
  • REALM_LOCATION: レルムのリージョンまたは global
  • REALM_ID: レルムのユーザー定義の識別子。
  • GS_CLUSTER_ID: クラスタのユーザー定義の識別子。

リクエストを送信するには、次のいずれかのオプションを展開します。

次のような JSON レスポンスが返されます。

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.gaming.v1.OperationMetadata",
    "createTime": CREATE_TIME,
    "target": "projects/PROJECT_ID/locations/LOCATION/realms/REALM_ID/gameServerClusters/GS_CLUSTER_ID",
    "verb": "delete",
    "requestedCancellation": false,
    "apiVersion": "v1"
  },
  "done": false
}

Go

Game Servers のクライアント ライブラリをインストールして使用する方法については、Game Servers クライアント ライブラリをご覧ください。


import (
	"context"
	"fmt"
	"io"

	gaming "cloud.google.com/go/gaming/apiv1"
	gamingpb "google.golang.org/genproto/googleapis/cloud/gaming/v1"
)

// deleteCluster unregisters a game server cluster.
func deleteCluster(w io.Writer, projectID, location, realmID, clusterID string) error {
	// projectID := "my-project"
	// location := "global"
	// realmID := "myrealm"
	// clusterID := "mycluster"
	ctx := context.Background()
	client, err := gaming.NewGameServerClustersClient(ctx)
	if err != nil {
		return fmt.Errorf("NewGameServerClustersClient: %v", err)
	}
	defer client.Close()

	req := &gamingpb.DeleteGameServerClusterRequest{
		Name: fmt.Sprintf("projects/%s/locations/%s/realms/%s/gameServerClusters/%s", projectID, location, realmID, clusterID),
	}

	op, err := client.DeleteGameServerCluster(ctx, req)
	if err != nil {
		return fmt.Errorf("DeleteGameServerCluster: %v", err)
	}
	err = op.Wait(ctx)
	if err != nil {
		return fmt.Errorf("Wait: %v", err)
	}

	fmt.Fprintf(w, "Cluster deleted.")
	return nil
}

Java

Game Servers のクライアント ライブラリをインストールして使用する方法については、Game Servers クライアント ライブラリをご覧ください。


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.gaming.v1.GameServerClustersServiceClient;
import com.google.cloud.gaming.v1.OperationMetadata;
import com.google.protobuf.Empty;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

public class DeleteCluster {

  public static void deleteGameServerCluster(
      String projectId, String regionId, String realmId, String clusterId)
      throws IOException, InterruptedException, ExecutionException, TimeoutException {
    // String projectId = "your-project-id";
    // String regionId = "us-central1-f";
    // String clusterId = "your-game-server-cluster-id";
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests. After completing all of your requests, call
    // the "close" method on the client to safely clean up any remaining background resources.
    try (GameServerClustersServiceClient client = GameServerClustersServiceClient.create()) {
      String parent =
          String.format("projects/%s/locations/%s/realms/%s", projectId, regionId, realmId);
      String clusterName = String.format("%s/gameServerClusters/%s", parent, clusterId);

      OperationFuture<Empty, OperationMetadata> call =
          client.deleteGameServerClusterAsync(clusterName);

      call.get(1, TimeUnit.MINUTES);
      System.out.println("Game Server Cluster deleted: " + clusterName);
    }
  }
}

Node.js

Game Servers のクライアント ライブラリをインストールして使用する方法については、Game Servers クライアント ライブラリをご覧ください。

const {
  GameServerClustersServiceClient,
} = require('@google-cloud/game-servers');

const client = new GameServerClustersServiceClient();

async function deleteGameServerCluster() {
  /**
   * TODO(developer): Uncomment these variables before running the sample.
   */
  // const projectId = 'Your Google Cloud Project ID';
  // const location = 'A Compute Engine region, e.g. "us-central1"';
  // const realmId = 'The ID of the realm to locate this cluster in';
  // const gameClusterId = 'The unique ID for this Game Server Cluster';
  const request = {
    // Provide full resource name of a Game Server Realm
    name: client.gameServerClusterPath(
      projectId,
      location,
      realmId,
      gameClusterId
    ),
  };

  const [operation] = await client.deleteGameServerCluster(request);
  await operation.promise();

  console.log('Game Server cluster deleted');
}

deleteGameServerCluster();

Python

Game Servers のクライアント ライブラリをインストールして使用する方法については、Game Servers クライアント ライブラリをご覧ください。

def delete_cluster(project_id, location, realm_id, cluster_id):
    """Deletes a game server cluster."""

    client = gaming.GameServerClustersServiceClient()

    request = game_server_clusters.DeleteGameServerClusterRequest(
        name=f"projects/{project_id}/locations/{location}/realms/{realm_id}/gameServerClusters/{cluster_id}",
    )

    operation = client.delete_game_server_cluster(request)
    print(f"Delete cluster operation: {operation.operation.name}")
    operation.result(timeout=120)

クラスタが削除されたことを確認する

gcloud コマンドライン ツールを使用して、グローバル クラスタまたはリージョン クラスタを一覧表示し、クラスタが正常に削除されたことを確認します。

すべてのクラスタを一覧表示するには、次のコマンドを実行します。

gcloud game servers clusters list

リージョン内のクラスタを一覧表示するには、次のコマンドを実行します。region は、クラスタを一覧表示するリージョンに置き換えます。

gcloud game servers clusters list --location=region

レルム内のすべてのクラスタを一覧表示するには、次のコマンドを実行します。realmID は親レルムに、region はクラスタのリージョンに置き換えます(該当する場合)。

gcloud game servers clusters list --realm=realmID --location=region

削除したクラスタは、コマンドの出力に表示されなくなります。

次のステップ

Game Servers の概要の主なコンセプトについて学習する。