הצגת אשכול של שירות מנוהל של Google Cloud ל-Apache Kafka

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

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

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

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

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

כדי להציג אשכול, צריך את ההרשאות הבאות:

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

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

הצגת אשכול

כדי להציג אשכול, מבצעים את השלבים הבאים:

המסוף

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

    מעבר אל Clusters

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

  2. כדי לראות קלאסטר ספציפי, לוחצים על שם הקלאסטר.

  3. ייפתח דף הפרטים של האשכול. בדף הזה יש את הכרטיסיות הבאות:

    • משאבים: מוצגת רשימת הנושאים וקבוצות הצרכנים שמשויכים לאשכול.
    • הגדרות: מציג את ההגדרה של האשכול, כולל רשימת רשתות המשנה שמשויכות לאשכול.
    • מעקב: כאן מוצגות ההתראות למעקב שמשויכות לאשכול.
    • יומנים: מוצגים היומנים שקשורים לאשכולות מ-Logs Explorer.

gcloud

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

    הפעלת Cloud Shell

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

  2. מריצים את הפקודה gcloud managed-kafka clusters describe:

    gcloud managed-kafka clusters describe CLUSTER_ID \
        --location=LOCATION \
        --full
    

    מחליפים את מה שכתוב בשדות הבאים:

    • CLUSTER_ID: המזהה או השם של האשכול.
    • LOCATION: המיקום של האשכול.

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

REST

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • PROJECT_ID: מזהה הפרויקט ב- Google Cloud
  • LOCATION: המיקום של האשכול
  • CLUSTER_ID: מזהה האשכול
  • CLUSTER_VIEW: כמות המטא-נתונים שרוצים להחזיר. מציינים אחד מהערכים הבאים:

    • CLUSTER_VIEW_BASIC: מחזירה את המטא-נתונים הבסיסיים של האשכול.
    • CLUSTER_VIEW_FULL: מחזירה את כל המטא-נתונים של האשכול, כולל מידע על הברוקרים של האשכול ומספר הגרסה של Kafka שמופעלת באשכול.

    אם לא מציינים שיטה, ברירת המחדל היא CLUSTER_VIEW_BASIC.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID?view=CLUSTER_VIEW

כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:

אתם אמורים לקבל תגובת JSON שדומה לזו:

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

כדי לבצע אימות לשירות המנוהל ל-Apache Kafka, צריך להגדיר את Application Default Credentials‏(ADC). מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

import (
	"context"
	"fmt"
	"io"

	"cloud.google.com/go/managedkafka/apiv1/managedkafkapb"
	"google.golang.org/api/option"

	managedkafka "cloud.google.com/go/managedkafka/apiv1"
)

func getCluster(w io.Writer, projectID, region, clusterID string, opts ...option.ClientOption) error {
	// projectID := "my-project-id"
	// region := "us-central1"
	// clusterID := "my-cluster"
	ctx := context.Background()
	client, err := managedkafka.NewClient(ctx, opts...)
	if err != nil {
		return fmt.Errorf("managedkafka.NewClient got err: %w", err)
	}
	defer client.Close()

	clusterPath := fmt.Sprintf("projects/%s/locations/%s/clusters/%s", projectID, region, clusterID)
	req := &managedkafkapb.GetClusterRequest{
		Name: clusterPath,
	}
	cluster, err := client.GetCluster(ctx, req)
	if err != nil {
		return fmt.Errorf("client.GetCluster got err: %w", err)
	}
	fmt.Fprintf(w, "Got cluster: %#v\n", cluster)
	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.Cluster;
import com.google.cloud.managedkafka.v1.ClusterName;
import com.google.cloud.managedkafka.v1.ManagedKafkaClient;
import java.io.IOException;

public class GetCluster {

  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
    String clusterId = "my-cluster";
    getCluster(projectId, region, clusterId);
  }

  public static void getCluster(String projectId, String region, String clusterId)
      throws Exception {
    try (ManagedKafkaClient managedKafkaClient = ManagedKafkaClient.create()) {
      // This operation is being handled synchronously.
      Cluster cluster = managedKafkaClient.getCluster(ClusterName.of(projectId, region, clusterId));
      System.out.println(cluster.getAllFields());
    } catch (IOException | ApiException e) {
      System.err.printf("managedKafkaClient.getCluster got err: %s", e.getMessage());
    }
  }
}

Python

לפני שמנסים להריץ את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Python במאמר התקנת ספריות הלקוח. מידע נוסף מופיע ב מאמרי העזרה של ה-API בשפת Python של שירות מנוהל ל-Apache Kafka.

כדי לבצע אימות לשירות המנוהל ל-Apache Kafka, מגדירים את ה-Application Default Credentials. מידע נוסף זמין במאמר הגדרת ADC לסביבת פיתוח מקומית.

from google.api_core.exceptions import NotFound
from google.cloud import managedkafka_v1

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

client = managedkafka_v1.ManagedKafkaClient()

cluster_path = client.cluster_path(project_id, region, cluster_id)
request = managedkafka_v1.GetClusterRequest(
    name=cluster_path,
)

try:
    cluster = client.get_cluster(request=request)
    print("Got cluster:", cluster)
except NotFound as e:
    print(f"Failed to get cluster {cluster_id} with error: {e.message}")

הצגת המאפיינים והמשאבים של האשכול

בקטעים הבאים מוסבר איך מקבלים פרטים על מאפיינים ומשאבים שונים שמשויכים לאשכול של שירות מנוהל ל-Apache Kafka.

כתובת Bootstrap

לקוחות Kafka משתמשים בכתובת ה-bootstrap של האשכול כדי ליצור חיבור לאשכול. כדי לקבל את כתובת ה-bootstrap, מבצעים את השלבים הבאים:

המסוף

  1. עוברים לדף שירות מנוהל ל-Apache Kafka > Clusters (אשכולות).

    מעבר אל Clusters

  2. לוחצים על שם האשכול.

  3. בוחרים בכרטיסייה Configurations.

  4. אם משתמשים ב-SASL לאימות, כתובת ה-URL של האתחול מופיעה בקטע mTLS bootstrap URL.

    אם אתם משתמשים ב-mutual TLS (mTLS) לאימות, כתובת ה-URL של האתחול מופיעה בקטע mTLS bootstrap URL.

    לוחצים על העתקה כדי להעתיק את הערך.

gcloud

כדי לקבל את כתובת ה-URL של האתחול, משתמשים בפקודה managed-kafka clusters describe.

אם אתם משתמשים ב-SASL לאימות, מריצים את הפקודה הבאה:

gcloud managed-kafka clusters describe CLUSTER_ID \
  --location=LOCATION \
  --format="value(bootstrapAddress)"

אם אתם משתמשים בפרוטוקול TLS הדדי (mTLS) לאימות, מריצים את הפקודה הבאה:

gcloud managed-kafka clusters describe CLUSTER_ID \
  --location=LOCATION \
  --format="value(bootstrapAddressMTLS)"

מחליפים את מה שכתוב בשדות הבאים:

  • CLUSTER_ID: המזהה או השם של האשכול.
  • LOCATION: המיקום של האשכול.

מידע נוסף על אימות SASL ו-mTLS זמין במאמר בנושא סוגי אימות לשרתי Kafka.

ברוקרים

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

קבוצות צרכנים

קבוצת צרכנים היא קבוצה של צרכנים שמשתפים פעולה כדי לצרוך נתונים מנושאים שונים. כדי לראות את קבוצות הצרכנים של אשכול מסוים, אפשר לעיין בדפים הבאים:

תת-רשתות

כדי לראות את רשתות המשנה שמחוברות לאשכול, מבצעים את השלבים הבאים:

המסוף

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

    מעבר אל Clusters

  2. לוחצים על שם האשכול.

  3. בדף הפרטים של האשכול, לוחצים על הכרטיסייה Configurations. תת-רשתות מקושרות מפורטות בקטע תת-רשתות.

gcloud

  1. מריצים את הפקודה gcloud managed-kafka clusters describe:

    gcloud managed-kafka clusters describe CLUSTER_ID \
        --location=LOCATION \
        --format="yaml(gcpConfig.accessConfig.networkConfigs)"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • CLUSTER_ID: המזהה או השם של האשכול.
    • LOCATION: המיקום של האשכול.

מידע נוסף זמין במאמר הגדרת רשתות בשירות המנוהל ל-Apache Kafka.

נושאים

כדי לראות את הנושאים באשכול, אפשר לעיין בדפים הבאים:

מה השלב הבא?

Apache Kafka®‎ הוא סימן מסחרי רשום של The Apache Software Foundation או של השותפים העצמאיים שלה בארצות הברית או במדינות אחרות.