Eliminare un gruppo di consumatori Google Cloud Managed Service per Apache Kafka

L'eliminazione di un gruppo di consumer rimuove un gruppo di consumer dal tuo cluster Managed Service per Apache Kafka.

Per eliminare un gruppo di consumatori, puoi utilizzare la console Google Cloud , Google Cloud CLI, le librerie client, l'API Managed Kafka o le API Apache Kafka open source.

Ruoli e autorizzazioni richiesti per eliminare un gruppo di consumer

Per ottenere le autorizzazioni necessarie per eliminare i gruppi di consumatori, chiedi all'amministratore di concederti il ruolo IAM Editor gruppo di consumatori Kafka gestito (roles/managedkafka.consumerGroupEditor) nel progetto. Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Questo ruolo predefinito contiene le autorizzazioni necessarie per eliminare i gruppi di consumatori. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:

Autorizzazioni obbligatorie

Per eliminare i tuoi gruppi di consumatori sono necessarie le seguenti autorizzazioni:

  • Elimina gruppi di consumer: managedkafka.consumerGroups.delete

Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.

Per maggiori informazioni sul ruolo Editor gruppo di consumer Kafka gestito, vedi Ruoli predefiniti di Managed Service per Apache Kafka.

Eliminare un gruppo di consumer

Quando elimini un gruppo di consumer, gli offset dei consumatori che memorizza vengono persi definitivamente. Inoltre, non puoi visualizzare i log e le metriche per i gruppi di consumatori nella console. Tuttavia, le metriche e i log associati al gruppo di consumatori vengono conservati e sono accessibili tramite Esplora log. L'eliminazione di un gruppo di consumer non comporta l'eliminazione dei messaggi che ha consumato. I messaggi sono ancora disponibili negli argomenti a cui erano originariamente associati.

Per eliminare un gruppo di consumer:

Console

  1. Nella console Google Cloud , vai alla pagina Cluster.

    Vai a Cluster

  2. Nell'elenco dei cluster, fai clic sul cluster a cui appartiene il gruppo di consumatori che vuoi eliminare.

    Viene visualizzata la pagina Dettagli cluster.

  3. Fai clic sul gruppo di consumer che vuoi eliminare.
  4. Nella pagina Dettagli gruppo di consumatori, fai clic su Elimina.
  5. Conferma l'operazione.

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. Esegui il comando gcloud managed-kafka consumer-groups delete:

    gcloud managed-kafka consumer-groups delete CONSUMER_GROUP_ID \
        --cluster=CLUSTER_ID \
        --location=LOCATION

    Questo comando rimuove definitivamente un gruppo di consumatori dal tuo cluster Managed Service per Apache Kafka.

    Sostituisci quanto segue:

    • CONSUMER_GROUP_ID: l'ID o il nome del gruppo di consumatori.

    • CLUSTER_ID: l'ID o il nome del cluster.

    • LOCATION: la posizione del cluster.

  3. Go

    import (
    	"context"
    	"fmt"
    	"io"
    
    	"cloud.google.com/go/managedkafka/apiv1/managedkafkapb"
    	"google.golang.org/api/option"
    
    	managedkafka "cloud.google.com/go/managedkafka/apiv1"
    )
    
    func deleteConsumerGroup(w io.Writer, projectID, region, clusterID, consumerGroupID string, opts ...option.ClientOption) error {
    	// projectID := "my-project-id"
    	// region := "us-central1"
    	// clusterID := "my-cluster"
    	// consumerGroupID := "my-consumer-group"
    	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)
    	consumerGroupPath := fmt.Sprintf("%s/consumerGroups/%s", clusterPath, consumerGroupID)
    	req := &managedkafkapb.DeleteConsumerGroupRequest{
    		Name: consumerGroupPath,
    	}
    	if err := client.DeleteConsumerGroup(ctx, req); err != nil {
    		return fmt.Errorf("client.DeleteConsumerGroup got err: %w", err)
    	}
    	fmt.Fprint(w, "Deleted consumer group\n")
    	return nil
    }
    

    Java

    import com.google.api.gax.rpc.ApiException;
    import com.google.cloud.managedkafka.v1.ConsumerGroupName;
    import com.google.cloud.managedkafka.v1.ManagedKafkaClient;
    import java.io.IOException;
    
    public class DeleteConsumerGroup {
    
      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";
        String consumerGroupId = "my-consumer-group";
        deleteConsumerGroup(projectId, region, clusterId, consumerGroupId);
      }
    
      public static void deleteConsumerGroup(
          String projectId, String region, String clusterId, String consumerGroupId) throws Exception {
        try (ManagedKafkaClient managedKafkaClient = ManagedKafkaClient.create()) {
          // This operation is being handled synchronously.
          managedKafkaClient.deleteConsumerGroup(
              ConsumerGroupName.of(projectId, region, clusterId, consumerGroupId));
          System.out.println("Deleted consumer group");
        } catch (IOException | ApiException e) {
          System.err.printf("managedKafkaClient.getConsumerGroup got err: %s", e.getMessage());
        }
      }
    }
    

    Python

    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"
    # consumer_group_id = "my-consumer-group"
    
    client = managedkafka_v1.ManagedKafkaClient()
    
    consumer_group_path = client.consumer_group_path(
        project_id, region, cluster_id, consumer_group_id
    )
    request = managedkafka_v1.DeleteConsumerGroupRequest(
        name=consumer_group_path,
    )
    
    try:
        client.delete_consumer_group(request=request)
        print("Deleted consumer group")
    except NotFound as e:
        print(f"Failed to delete consumer group {consumer_group_id} with error: {e.message}")
    

Passaggi successivi

Apache Kafka® è un marchio registrato di Apache Software Foundation o delle sue affiliate negli Stati Uniti e/o in altri paesi.