הצגת רשימה של אשכולי Connect

בשירות המנוהל ל-Apache Kafka אתם יכולים לראות את סטטוס הפעילות, הקצאת המשאבים ופרטי ההגדרות של כל אשכולות Connect. התצוגה המאוחדת הזו עוזרת לכם לנהל את אשכולות Connect במקום אחד.

כדי להציג את רשימת אשכולות ה-Connect, אתם יכולים להשתמש במסוף Google Cloud , ב-CLI של gcloud, בספריית הלקוח או ב-Managed Kafka API. אי אפשר להשתמש ב-API של Apache Kafka בקוד פתוח כדי להציג רשימה של אשכולות Connect.

התפקידים וההרשאות שנדרשים כדי להציג את אשכולות Connect

כדי לקבל את ההרשאות שנדרשות להצגת רשימה של אשכולות Connect, צריך לבקש מהאדמין להקצות לכם את התפקיד צפייה ב-Kafka מנוהל (roles/managedkafka.viewer) ב-IAM בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

זהו תפקיד שמוגדר מראש וכולל את ההרשאות שנדרשות כדי להציג את רשימת האשכולות של Connect. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:

ההרשאות הנדרשות

כדי להציג את רשימת האשכולות של Connect, נדרשות ההרשאות הבאות:

  • נותנים את ההרשאה list clusters במיקום שצוין: managedkafka.connectClusters.list
  • נותנים את ההרשאה לקבלת פרטי האשכול במיקום שצוין: managedkafka.connectClusters.get

יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.

הצגת האשכולות ב-Connect

המסוף

  1. נכנסים לדף Connect Clusters במסוף Google Cloud .

    מעבר אל Connect Clusters

  2. מוצגת רשימה של האשכולות שיצרתם בפרויקט. בדף הזה אפשר לראות את מאפייני האשכול הבאים:

    • ‫Name: המזהה הייחודי של אשכול Connect. אפשר להשתמש בו כדי להפנות לאשכול Connect בפעולות שונות.
    • ‫State: מציין את סטטוס הפעילות הנוכחי של אשכול Connect, למשל Active.
    • מיקום: המיקום הגיאוגרפי שבו מארחים את אשכול Connect.
    • Update time: הזמן שבו אשכול Connect עודכן לאחרונה.
    • ‫vCPUs: מספר המעבדים הווירטואליים שהוקצו לאשכול Connect.
    • זיכרון: נפח הזיכרון הכולל שהוקצה לאשכול Connect.
    • ‫Primary Kafka cluster: אשכול שירות מנוהל ל-Apache Kafka שמשויך לאשכול Connect.
    • ‫Labels: צמדי מפתח/ערך שאפשר לצרף לאשכול Connect למטרות ארגון, סינון ואוטומציה.

gcloud

  1. מפעילים את Cloud Shell במסוף Google Cloud .

    הפעלת Cloud Shell

    בחלק התחתון של מסוף Google Cloud יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  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 בקטע התקנת ספריות הלקוח. מידע נוסף מופיע ב מאמרי העזרה של ה-API של Go עבור שירות מנוהל ל-Apache Kafka.

כדי לבצע אימות בשירות המנוהל ל-Apache Kafka, צריך להגדיר את Application Default Credentials‏(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.

כדי לבצע אימות בשירות המנוהל ל-Apache Kafka, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת 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 שמפורטות במאמר התקנת ספריות הלקוח. מידע נוסף מופיע ב מאמרי העזרה של ה-API בשפת Python של שירות מנוהל ל-Apache Kafka.

כדי לבצע אימות בשירות המנוהל ל-Apache Kafka, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת 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®‎ הוא סימן מסחרי רשום של The Apache Software Foundation או של השותפים העצמאיים שלה בארצות הברית או במדינות אחרות.