מחיקת מחבר

מחיקת מחבר מסירה אותו לתמיד מאשכול Connect. הפעולה הזו תפסיק את זרימת הנתונים בין מערכות המקור והיעד. לפני שמוחקים מחבר, חשוב להבין את ההשלכות על פייפליין הנתונים.

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

תפקידים והרשאות שנדרשים למחיקת מחבר

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

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

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

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

  • צריך להעניק את ההרשאה למחיקת המחבר במחבר המבוקש: managedkafka.connectors.delete
  • נותנים למחברי הרשימה הרשאה באשכול Connect שמכיל את המחבר. הפעולה הזו נדרשת רק למחיקת קונסולה: managedkafka.connectors.list

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

מחיקת מחבר

המסוף

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

    מעבר אל Connect Clusters

  2. לוחצים על Connect cluster (חיבור לאשכול) שבו נמצא המחבר שרוצים למחוק.

    מוצג הדף Connect cluster details.

  3. בכרטיסייה משאבים, מוצאים את המחבר ברשימה ולוחצים על השם שלו.

    תועברו לדף פרטי המחבר.

  4. לוחצים על Delete.

gcloud

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

    הפעלת Cloud Shell

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

  2. משתמשים בפקודה gcloud managed-kafka connectors delete כדי למחוק מחבר:

    gcloud managed-kafka connectors delete CONNECTOR_ID \
        --location=LOCATION \
        --connect-cluster=CONNECT_CLUSTER_ID
    

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

    • ‫CONNECTOR_ID: שדה חובה. המזהה של מחבר הנתונים שרוצים למחוק.
    • ‫LOCATION: שדה חובה. המיקום של אשכול החיבור שמכיל את המחבר.
    • ‫CONNECT_CLUSTER_ID: שדה חובה. המזהה של אשכול Connect שמכיל את המחבר.

    פקודה לדוגמה:

    gcloud managed-kafka connectors delete test-connector \
        --location=us-central1 \
        --connect-cluster=test-connect-cluster
    

המשך

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של 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/option"

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

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

	connectorPath := fmt.Sprintf("projects/%s/locations/%s/connectClusters/%s/connectors/%s", projectID, region, connectClusterID, connectorID)
	req := &managedkafkapb.DeleteConnectorRequest{
		Name: connectorPath,
	}
	err = client.DeleteConnector(ctx, req)
	if err != nil {
		return fmt.Errorf("client.DeleteConnector got err: %w", err)
	}
	fmt.Fprint(w, "Deleted connector\n")
	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.ConnectorName;
import com.google.cloud.managedkafka.v1.ManagedKafkaConnectClient;
import java.io.IOException;

public class DeleteConnector {

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

  public static void deleteConnector(
      String projectId, String region, String clusterId, String connectorId) throws IOException {
    try (ManagedKafkaConnectClient managedKafkaConnectClient = ManagedKafkaConnectClient.create()) {
      ConnectorName name = ConnectorName.of(projectId, region, clusterId, connectorId);
      // This operation is handled synchronously.
      managedKafkaConnectClient.deleteConnector(name);
      System.out.printf("Deleted connector: %s\n", name);
    } catch (IOException | ApiException e) {
      System.err.printf("managedKafkaConnectClient.deleteConnector got err: %s\n", e.getMessage());
    }
  }
}

Python

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

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

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

# TODO(developer)
# project_id = "my-project-id"
# region = "us-central1"
# connect_cluster_id = "my-connect-cluster"
# connector_id = "my-connector"

connect_client = ManagedKafkaConnectClient()

request = managedkafka_v1.DeleteConnectorRequest(
    name=connect_client.connector_path(project_id, region, connect_cluster_id, connector_id),
)

try:
    operation = connect_client.delete_connector(request=request)
    print(f"Waiting for operation {operation.operation.name} to complete...")
    operation.result()
    print("Deleted connector")
except GoogleAPICallError as e:
    print(f"The operation failed with error: {e}")

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