列出 Google Cloud Managed Service for Apache Kafka 叢集

如要列出叢集,可以使用 Google Cloud 控制台、Google Cloud CLI、用戶端程式庫或 Managed Kafka API。您無法使用開放原始碼 Apache Kafka API 列出叢集。

列出叢集所需的角色和權限

如要取得列出叢集所需的權限,請要求管理員授予您專案的「Managed Kafka 檢視者」 (roles/managedkafka.viewer) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這個預先定義的角色具備列出叢集所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要列出叢集,必須具備下列權限:

  • 列出叢集: managedkafka.clusters.list
  • 取得叢集詳細資料: managedkafka.clusters.get

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

如要進一步瞭解 Managed Kafka Viewer 角色,請參閱「Managed Service for Apache Kafka 預先定義角色」。

列出叢集

如要列出專案中的所有叢集,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Clusters」(叢集) 頁面。

    前往「Clusters」(叢集)

  2. 系統會列出您在專案中建立的叢集。您可以在這個頁面查看下列叢集屬性:

    • 叢集名稱:Managed Service for Apache Kafka 叢集的專屬 ID。您可以在各種作業中參照叢集。
    • 叢集狀態:指出叢集目前的運作狀態,例如「有效」
    • 區域:叢集代管的地理位置。
    • 記憶體:分配給叢集的記憶體總量。這會決定處理訊息流量和儲存空間的容量。
    • vCPU:指派給叢集的 vCPU 數量。這會影響叢集的處理能力,以及處理並行作業的能力。
    • 標籤:可附加至叢集的鍵/值組合,用於整理、篩選及自動化。

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 執行 gcloud managed-service-for-apache-kafka clusters list 指令:

    gcloud managed-kafka clusters list --location=LOCATION \
        --limit=LIMIT
    

    更改下列內容:

    • LOCATION:叢集位置。
    • LIMIT:要列出的叢集數量上限。
  3. REST

    使用任何要求資料之前,請先修改下列項目的值:

    • PROJECT_ID:您的 Google Cloud 專案 ID
    • LOCATION:叢集位置

    HTTP 方法和網址:

    GET https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters

    請展開以下其中一個選項,以傳送要求:

    您應該會收到如下的 JSON 回覆:

    {
      "clusters": [
        {
          "name": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID",
          "createTime": "CREATE_TIME",
          "updateTime": "UPDATE_TIME",
          "capacityConfig": {
            "vcpuCount": "CPU_COUNT",
            "memoryBytes": "MEMORY"
          },
          "rebalanceConfig": {},
          "gcpConfig": {
            "accessConfig": {
              "networkConfigs": [
                {
                  "subnet": "projects/PROJECT_ID/locations/LOCATION/subnetworks/SUBNET_ID"
                }
              ]
            }
          },
          "state": "ACTIVE",
          "satisfiesPzi": false,
          "satisfiesPzs": false,
          "tlsConfig": {
            "trustConfig": {}
          },
          "updateOptions": {}
        }
      ]
    }
    

    Go

    在試用這個範例之前,請先按照「 安裝用戶端程式庫」中的 Go 設定說明操作。詳情請參閱 Managed Service for Apache Kafka Go API 參考說明文件

    如要向 Managed Service for Apache Kafka 進行驗證,請設定應用程式預設憑證(ADC)。 詳情請參閱「為本機開發環境設定 ADC」。

    import (
    	"context"
    	"fmt"
    	"io"
    
    	"cloud.google.com/go/managedkafka/apiv1/managedkafkapb"
    	"google.golang.org/api/iterator"
    	"google.golang.org/api/option"
    
    	managedkafka "cloud.google.com/go/managedkafka/apiv1"
    )
    
    func listClusters(w io.Writer, projectID, region string, opts ...option.ClientOption) error {
    	// projectID := "my-project-id"
    	// region := "us-central1"
    	ctx := context.Background()
    	client, err := managedkafka.NewClient(ctx, opts...)
    	if err != nil {
    		return fmt.Errorf("managedkafka.NewClient got err: %w", err)
    	}
    	defer client.Close()
    
    	locationPath := fmt.Sprintf("projects/%s/locations/%s", projectID, region)
    	req := &managedkafkapb.ListClustersRequest{
    		Parent: locationPath,
    	}
    	clusterIter := client.ListClusters(ctx, req)
    	for {
    		res, err := clusterIter.Next()
    		if err == iterator.Done {
    			break
    		}
    		if err != nil {
    			return fmt.Errorf("clusterIter.Next() got err: %w", err)
    		}
    		fmt.Fprintf(w, "Got cluster: %v", res)
    	}
    	return nil
    }
    

    Java

    在試用這個範例之前,請先按照「 安裝用戶端程式庫」中的 Java 設定操作說明進行操作。詳情請參閱 Managed Service for Apache Kafka Java API 參考說明文件

    如要向 Managed Service for Apache Kafka 進行驗證,請設定應用程式預設憑證。詳情請參閱「 為本機開發環境設定 ADC」。

    import com.google.api.gax.rpc.ApiException;
    import com.google.cloud.managedkafka.v1.Cluster;
    import com.google.cloud.managedkafka.v1.LocationName;
    import com.google.cloud.managedkafka.v1.ManagedKafkaClient;
    import java.io.IOException;
    
    public class ListClusters {
    
      public static void main(String[] args) throws Exception {
        // TODO(developer): Replace these variables before running the example.
        String projectId = "my-project-id";
        String region = "my-region"; // e.g. us-east1
        listClusters(projectId, region);
      }
    
      public static void listClusters(String projectId, String region) throws Exception {
        try (ManagedKafkaClient managedKafkaClient = ManagedKafkaClient.create()) {
          LocationName locationName = LocationName.of(projectId, region);
          // This operation is being handled synchronously.
          for (Cluster cluster : managedKafkaClient.listClusters(locationName).iterateAll()) {
            System.out.println(cluster.getAllFields());
          }
        } catch (IOException | ApiException e) {
          System.err.printf("managedKafkaClient.listClusters got err: %s", e.getMessage());
        }
      }
    }
    

    Python

    在試用這個範例之前,請先按照「 安裝用戶端程式庫」中的 Python 設定說明操作。詳情請參閱 Managed Service for Apache Kafka Python API 參考說明文件

    如要向 Managed Service for Apache Kafka 進行驗證,請設定應用程式預設憑證。詳情請參閱「為本機開發環境設定 ADC」。

    from google.cloud import managedkafka_v1
    
    # TODO(developer)
    # project_id = "my-project-id"
    # region = "us-central1"
    
    client = managedkafka_v1.ManagedKafkaClient()
    
    request = managedkafka_v1.ListClustersRequest(
        parent=client.common_location_path(project_id, region),
    )
    
    response = client.list_clusters(request=request)
    for cluster in response:
        print("Got cluster:", cluster)
    

後續步驟

Apache Kafka® 是 The Apache Software Foundation 或其關聯企業在美國與/或其他國家/地區的註冊商標。