Excluir um grupo de consumidores do serviço gerenciado do Google Cloud para Apache Kafka

A exclusão de um grupo de consumidores remove um grupo do cluster do Serviço gerenciado para Apache Kafka.

Para excluir um grupo de consumidores, use o console Google Cloud , a Google Cloud CLI, as bibliotecas de cliente, a API Managed Kafka ou as APIs Apache Kafka de código aberto.

Papéis e permissões necessários para excluir um grupo de consumidores

Para receber as permissões necessárias para excluir seus grupos de consumidores, peça ao administrador para conceder a você o papel do IAM de Editor de grupo de consumidores gerenciados do Kafka (roles/managedkafka.consumerGroupEditor) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para excluir seus grupos de consumidores. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para excluir seus grupos de consumidores:

  • Exclua grupos de consumidores: managedkafka.consumerGroups.delete

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Para mais informações sobre o papel de editor do grupo de consumidores gerenciados do Kafka, consulte Papéis predefinidos do Managed Service para Apache Kafka.

Excluir um grupo de consumidores

Quando você exclui um grupo de consumidores, os offsets que ele armazena são perdidos permanentemente. Também não é possível ver os registros e as métricas dos grupos de consumidores no console. No entanto, as métricas e os registros associados ao grupo de consumidores são mantidos e podem ser acessados usando a Análise de registros. A exclusão de um grupo de consumidores também não exclui as mensagens que ele consumiu. As mensagens ainda estão disponíveis nos tópicos com que foram associadas originalmente.

Para excluir um grupo de consumidores, siga estas etapas:

Console

  1. No console do Google Cloud , acesse a página Cluster.

    Acessar Clusters

  2. Na lista de clusters, clique no cluster a que o grupo de consumidores que você quer excluir pertence.

    A página Detalhes do cluster é aberta.

  3. Clique no grupo de consumidores que você quer excluir.
  4. Na página Detalhes do grupo de consumidores, clique em Excluir.
  5. Confirme a operação.

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

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

    Esse comando remove permanentemente um grupo de consumidores do seu cluster do Serviço Gerenciado para Apache Kafka.

    Substitua:

    • CONSUMER_GROUP_ID: o ID ou nome do grupo de consumidores.

    • CLUSTER_ID: o ID ou nome do cluster.

    • LOCATION: o local do 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}")
    

A seguir

Apache Kafka® é uma marca registrada da The Apache Software Foundation ou afiliadas nos Estados Unidos e/ou em outros países.