Google Cloud Managed Service for Apache Kafka コンシューマー グループを削除する

コンシューマ グループを削除すると、Managed Service for Apache Kafka クラスタからコンシューマ グループが削除されます。

コンシューマ グループを削除するには、 Google Cloud コンソール、 Google Cloud CLI、クライアント ライブラリ、Managed Kafka API、または オープンソースの Apache Kafka API を使用します。

コンシューマ グループを削除するために必要なロールと権限

コンシューマ グループを削除するために必要な権限を取得するには、プロジェクトに対するManaged Kafka コンシューマ グループ編集者 roles/managedkafka.consumerGroupEditor)IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには コンシューマ グループを削除するために必要な権限が含まれています。必要とされる正確な権限については、必要な権限セクションを開いてご確認ください。

必要な権限

コンシューマ グループを削除するには、次の権限が必要です。

  • コンシューマ グループを削除する: managedkafka.consumerGroups.delete

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

コンシューマ グループを削除する

コンシューマ グループを削除すると、保存されているコンシューマ オフセットは完全に失われます。また、コンソールでコンシューマ グループのログと指標を確認することもできません。ただし、コンシューマ グループに関連付けられた指標とログは保持され、 ログ エクスプローラを使用してアクセスできます。 コンシューマ グループを削除しても、使用したメッセージは削除されません。メッセージは、元々関連付けられていたトピックで引き続き使用できます。

コンシューマ グループを削除する方法は次のとおりです。

コンソール

  1. コンソールで、[クラスタ] ページに移動します。 Google Cloud

    クラスタに移動

  2. クラスタのリストで、削除するコンシューマ グループが属するクラスタをクリックします。

    [クラスタの詳細] ページが開きます。

  3. 削除するコンシューマ グループをクリックします。
  4. [コンシューマ グループの詳細] ページで、[削除] をクリックします。
  5. 操作を確認します。

gcloud

  1. コンソールで Cloud Shell をアクティブにします。 Google Cloud

    Cloud Shell をアクティブにする

    コンソールの下部にある Google Cloud Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

  2. gcloud managed-kafka consumer-groups delete コマンドを実行します。

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

    このコマンドを実行すると、Managed Service for Apache Kafka クラスタからコンシューマ グループが完全に削除されます。

    次のように置き換えます。

    • CONSUMER_GROUP_ID: コンシューマ グループの ID または名前。

    • CLUSTER_ID: クラスタの ID または名前。

    • LOCATION: クラスタのロケーション。

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}")

次のステップ

Apache Kafka® は、Apache Software Foundation または米国その他の諸国における関連会社の商標です。