删除大区

本页面介绍了如何删除 Game Servers 大区。

准备工作

开始之前,我们建议您先了解 Game Servers 概览中的关键概念。请确保您已执行以下任务:

  • 确保您已启用 Game Services API。
  • 启用 Game Services API
  • 选择安装了 Cloud SDK 的 shell,或使用 API 客户端:
  • Cloud Shell

    如需启动 Cloud Shell,请执行以下步骤:

    1. 转到 Google Cloud Console。

      Google Cloud Console

    2. 在控制台的右上角,点击激活 Cloud Shell 按钮:

    控制台下方的框架内会打开一个 Cloud Shell 会话。您可以使用此 shell 运行 gcloud 命令。

    本地 shell

    如需安装 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 文件的路径。 此变量仅适用于当前的 shell 会话,因此,如果您打开新的会话,请重新设置该变量。

    客户端库

    您可以使用客户端库以编程方式控制 Google Cloud Game Servers。如需了解库和身份验证的使用说明,请参阅客户端库概览

删除大区

控制台

  1. 在 Cloud Console 中,转到大区和集群页面。

    转到 Game Servers

  2. 您可以使用过滤条件框,按不同属性过滤大区列表。

  3. 在表格的最后一列中,点击省略号 并选择移除大区

gcloud

您可以使用 gcloud 命令行工具删除全球性大区或地区级大区。

如需删除全球性大区,请运行以下命令,并将 realmID 替换为您之前创建的大区的标识符:

gcloud game servers realms delete realmID

如需删除地区级大区,请运行以下命令,并将占位符值(如 realmID)替换为适当的值:

gcloud game servers realms delete realmID --location=region

变量占位符对应于以下说明:

  • realmID 是大区的唯一标识符。
  • region 是大区(如果存在)的地区

REST 和命令行

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_IDIAM 设置中列出的 Google Cloud 项目 ID
  • LOCATION:大区的区域或 global
  • REALM_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",
    "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"
)

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

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

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

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

Java

如需了解如何安装和使用 Game Servers 客户端库,请参阅 Game Servers 客户端库


import com.google.api.gax.longrunning.OperationFuture;
import com.google.cloud.gaming.v1.OperationMetadata;
import com.google.cloud.gaming.v1.RealmsServiceClient;
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 DeleteRealm {
  public static void deleteRealm(String projectId, String regionId, String realmId)
      throws InterruptedException, ExecutionException, TimeoutException, IOException {
    // String projectId = "your-project-id";
    // String regionId = "us-central1-f";
    // String realmId = "your-realm-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 (RealmsServiceClient client = RealmsServiceClient.create()) {
      String parent = String.format("projects/%s/locations/%s", projectId, regionId);
      String realmName = String.format("%s/realms/%s", parent, realmId);

      OperationFuture<Empty, OperationMetadata> call = client.deleteRealmAsync(realmName);

      call.get(1, TimeUnit.MINUTES);
      System.out.println("Realm deleted: " + realmName);
    }
  }
}

Node.js

如需了解如何安装和使用 Game Servers 客户端库,请参阅 Game Servers 客户端库

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

const client = new RealmsServiceClient();

async function deleteRealm() {
  /**
   * 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 = 'Unique identifier of the realm';
  const request = {
    // Realm name is the full resource name including project ID,location,
    // and the realm ID.
    name: client.realmPath(projectId, location, realmId),
  };

  const [operation] = await client.deleteRealm(request);
  await operation.promise();
  console.log(`Realm with ID ${realmId} deleted.`);
}

deleteRealm();

Python

如需了解如何安装和使用 Game Servers 客户端库,请参阅 Game Servers 客户端库

def delete_realm(project_id, location, realm_id):
    """Deletes a realm."""

    client = gaming.RealmsServiceClient()

    request = realms.DeleteRealmRequest(
        name=f"projects/{project_id}/locations/{location}/realms/{realm_id}",
    )

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

验证您的大区是否已删除

如需验证您是否成功删除大区,请使用 gcloud 命令行工具列出您的全球性大区或地区级大区。

要列出所有全球性大区,请运行以下命令:

gcloud game servers realms list

如需列出某个地区中的大区,请运行以下命令,并将 region 替换为您要列出的地区

gcloud game servers realms list --location=region

您删除的大区不会再出现在命令的输出中。

后续步骤

了解审核日志记录