列出 Connect 叢集

Managed Service for Apache Kafka 可讓您查看所有 Connect 叢集的運作狀態、資源分配和設定詳細資料。這個整合檢視畫面可讓您集中管理 Connect 叢集。

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

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

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

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

所需權限

必須具備下列權限,才能列出 Connect 叢集:

  • 授予指定位置的列出叢集權限: managedkafka.connectClusters.list
  • 授予指定位置的叢集詳細資料取得權限:managedkafka.connectClusters.get

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

查看 Connect 叢集

控制台

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

    前往「Connect Clusters」(連結叢集)

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

    • 名稱:Connect 叢集的專屬 ID。您可以在各種作業中使用這個名稱來參照 Connect 叢集。
    • State:指出 Connect 叢集目前的運作狀態,例如「Active」。
    • 位置:託管 Connect 叢集的地理位置。
    • 更新時間:Connect 叢集的上次更新時間。
    • vCPUs:指派給 Connect 叢集的 vCPU 數量。
    • 記憶體:分配給 Connect 叢集的記憶體總量。
    • 主要 Kafka 叢集:與 Connect 叢集相關聯的 Managed Service for Apache Kafka 叢集。
    • 標籤:可附加至 Connect 叢集的鍵/值組合,用於整理、篩選和自動化。

gcloud

  1. 在 Google Cloud 控制台啟用 Cloud Shell。

    啟用 Cloud Shell

    Google Cloud 控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已設定適用於您目前專案的值。工作階段可能要幾秒鐘的時間才能初始化。

  2. 使用 gcloud managed-kafka connect-clusters list 指令列出 Connect 叢集:

    gcloud managed-kafka connect-clusters list \
        --location=LOCATION
    
  3. 如要進一步縮減 Connect 叢集清單,可以使用其他旗標:

    gcloud managed-kafka connect-clusters list \
        --location=LOCATION \
        [--filter=EXPRESSION] \
        [--limit=LIMIT] \
        [--page-size=PAGE_SIZE] \
        [--sort-by=SORT_BY]
    

    更改下列內容:

    • LOCATION:必填,要列出的 Connect 叢集位置。

    • EXPRESSION:(選用) 要套用至清單的布林值篩選運算式。如果運算式評估結果為 True,系統就會將項目列入清單。如要進一步瞭解並查看範例,請執行 gcloud topic filters。

    • LIMIT:(選用) 要顯示的 Connect 叢集數量上限。如未指定,系統會列出所有 Connect 叢集。

    • PAGE_SIZE:(選用) 每頁顯示的結果數量。如未指定,服務會決定合適的頁面大小。

    • SORT_BY:(選用) 以半形逗號分隔的欄位清單,做為排序依據。預設為遞增排序。如要以遞減順序排序,請在欄位前面加上 ~。

輸出內容範例:

NAME                   VCPU  MEMORY_BYTES  STATE   NETWORK
connect-cluster-alpha  3     3221225472    ACTIVE
connect-cluster-beta   3     3221225472    ACTIVE

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 listConnectClusters(w io.Writer, projectID, region string, opts ...option.ClientOption) error {
	// projectID := "my-project-id"
	// region := "us-central1"
	ctx := context.Background()
	client, err := managedkafka.NewManagedKafkaConnectClient(ctx, opts...)
	if err != nil {
		return fmt.Errorf("managedkafka.NewManagedKafkaConnectClient got err: %w", err)
	}
	defer client.Close()

	locationPath := fmt.Sprintf("projects/%s/locations/%s", projectID, region)
	req := &managedkafkapb.ListConnectClustersRequest{
		Parent: locationPath,
	}
	clusterIter := client.ListConnectClusters(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 connect 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.ConnectCluster;
import com.google.cloud.managedkafka.v1.LocationName;
import com.google.cloud.managedkafka.v1.ManagedKafkaConnectClient;
import java.io.IOException;

public class ListConnectClusters {

  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
    listConnectClusters(projectId, region);
  }

  public static void listConnectClusters(String projectId, String region) throws Exception {
    try (ManagedKafkaConnectClient managedKafkaConnectClient = 
        ManagedKafkaConnectClient.create()) {
      LocationName locationName = LocationName.of(projectId, region);
      // This operation is being handled synchronously.
      for (ConnectCluster connectCluster : managedKafkaConnectClient
          .listConnectClusters(locationName).iterateAll()) {
        System.out.println(connectCluster.getAllFields());
      }
    } catch (IOException | ApiException e) {
      System.err.printf("managedKafkaConnectClient.listConnectClusters got err: %s\n", 
          e.getMessage());
    }
  }
}

Python

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

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

from google.cloud import managedkafka_v1
from google.cloud.managedkafka_v1.services.managed_kafka_connect import (
    ManagedKafkaConnectClient,
)
from google.api_core.exceptions import GoogleAPICallError

# TODO(developer)
# project_id = "my-project-id"
# region = "us-central1"

connect_client = ManagedKafkaConnectClient()

request = managedkafka_v1.ListConnectClustersRequest(
    parent=connect_client.common_location_path(project_id, region),
)

response = connect_client.list_connect_clusters(request=request)
for cluster in response:
    try:
        print("Got Connect cluster:", cluster)
    except GoogleAPICallError as e:
        print(f"Failed to list Connect clusters with error: {e}")

後續步驟

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