Listar todos os conectores

Listar todos os conectores em execução em um cluster do Connect oferece uma visão geral das integrações de dados configuradas. É possível monitorar a integridade e o status dos conectores, identificar possíveis problemas e gerenciar os fluxos de dados com eficiência.

Para listar todos os conectores em um cluster do Connect, use o Google Cloud console, a CLI gcloud, a biblioteca de cliente do Serviço Gerenciado para Apache Kafka ou a API Managed Kafka. Não é possível usar a API Apache Kafka de código aberto para listar os conectores.

Papéis e permissões necessários para listar todos os conectores

Para receber as permissões necessárias para listar todos os conectores, peça ao administrador para conceder o papel do IAM de leitor do Managed Kafka (roles/managedkafka.viewer) no seu 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 listar todos os conectores. Para acessar as permissões exatas que são necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para listar todos os conectores:

  • Conceda a permissão de listar conectores no cluster do Connect pai: managedkafka.connectors.list
  • Conceda a permissão de receber detalhes do conector no cluster do Connect pai: managedkafka.connectors.get

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

Ver todos os conectores

Essa visualização oferece uma maneira rápida de monitorar o status dos conectores e identificar aqueles que exigem atenção. Em seguida, é possível detalhar os conectores individuais para conferir os detalhes e as configurações, se necessário.

Console

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

    Acessar clusters do Connect

  2. Clique no cluster do Connect para o qual você quer listar os conectores.

    A página Detalhes do cluster do Connect é exibida.

  3. A guia Recursos mostra uma lista de todos os conectores em execução no cluster. A lista inclui as seguintes informações para cada conector:

    • Nome: o nome do conector.
    • Estado: o estado operacional do conector. Por exemplo, "Em execução", "Falha".
    • Tipo de conector: o tipo de plug-in do conector.

    Use a opção Filtrar para pesquisar conectores específicos por nome.

gcloud

  1. No Google Cloud console, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte de baixo do Google Cloud console, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  2. Use o gcloud managed-kafka connectors list comando para listar os conectores:

    gcloud managed-kafka connectors list CONNECT_CLUSTER_ID \
        --location=LOCATION
    
  3. Para refinar ainda mais a lista de conectores, use outras flags:

    gcloud managed-kafka connectors list CONNECT_CLUSTER_ID \
        --location=LOCATION \
        [--filter=EXPRESSION] \
        [--limit=LIMIT] \
        [--page-size=PAGE_SIZE] \
        [--sort-by=SORT_BY]
    

    Substitua:

    • CONNECT_CLUSTER_ID: obrigatório. O ID do cluster do Connect que contém os conectores que você quer listar.
    • LOCATION: obrigatório. O local do cluster do Connect que contém os conectores que você quer listar.
    • EXPRESSION: (opcional) uma expressão de filtro booleano a ser aplicada à lista. Se a expressão for avaliada como True, o item será incluído na lista. Para mais detalhes e exemplos, execute gcloud topic filters.

      Exemplos:

      • Para listar apenas os conectores que estão no estado "EM EXECUÇÃO":

        --filter="state=RUNNING"
        
      • Para listar apenas os conectores "Pub/Sub Sink":

        --filter="connector_plugin='Pub/Sub Sink'"
        
      • Para listar conectores com um nome que contenha "prod":

        --filter="name ~ 'prod'"
        
      • Para listar conectores que são "COM FALHA" ou são plug-ins "Fonte do Pub/Sub":

        --filter="state=FAILED OR connector_plugin='Pub/Sub Source'"
        
    • LIMIT: (opcional) o número máximo de conectores a serem exibidos. Se não for especificado, todos os conectores serão listados.

    • PAGE_SIZE: (opcional) o número de resultados a serem exibidos por página. Se não for especificado, o serviço determinará um tamanho de página adequado.

    • SORT_BY: (opcional) uma lista separada por vírgulas de campos para classificar. A ordem de classificação padrão é crescente. Para classificar em ordem decrescente, inclua o prefixo ~ no campo. Os campos aceitos provavelmente são name e state.

Exemplo de comando com classificação:

gcloud managed-kafka connectors list test-connect-cluster \
    --location=us-central1 \
    --sort-by=~state,name

Exemplo de comando com filtragem e limitação:

gcloud managed-kafka connectors list test-connect-cluster \
    --location=us-central1 \
    --filter="state=RUNNING AND connector_plugin='Pub/Sub Sink'" \
    --limit=5

Exemplo de saída:

NAME                                    STATE     CONNECTOR_PLUGIN
pubsub-sink-connector                   RUNNING   Pub/Sub Sink
another-pubsub-sink                     RUNNING   Pub/Sub Sink
prod-pubsub-sink                        RUNNING   Pub/Sub Sink

Go

Antes de testar esta amostra, siga as instruções de configuração para Go em Instalar as bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Go do Serviço Gerenciado para Apache Kafka.

Para autenticar o Serviço Gerenciado para Apache Kafka, configure o Application Default Credentials(ADC). Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.

import (
	"context"
	"fmt"
	"io"

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

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

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

	parent := fmt.Sprintf("projects/%s/locations/%s/connectClusters/%s", projectID, region, connectClusterID)
	req := &managedkafkapb.ListConnectorsRequest{
		Parent: parent,
	}
	connectorIter := client.ListConnectors(ctx, req)
	for {
		connector, err := connectorIter.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("connectorIter.Next() got err: %w", err)
		}
		fmt.Fprintf(w, "Got connector: %v", connector)
	}
	return nil
}

Java

Antes de testar esta amostra, siga as instruções de configuração para Java em Instalar as bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Java do Serviço Gerenciado para Apache Kafka.

Para autenticar o Serviço Gerenciado para Apache Kafka, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.managedkafka.v1.ConnectClusterName;
import com.google.cloud.managedkafka.v1.Connector;
import com.google.cloud.managedkafka.v1.ManagedKafkaConnectClient;
import java.io.IOException;

public class ListConnectors {

  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";
    listConnectors(projectId, region, clusterId);
  }

  public static void listConnectors(String projectId, String region, String clusterId)
      throws IOException {
    try (ManagedKafkaConnectClient managedKafkaConnectClient = ManagedKafkaConnectClient.create()) {
      ConnectClusterName parent = ConnectClusterName.of(projectId, region, clusterId);
      // This operation is handled synchronously.
      for (Connector connector : managedKafkaConnectClient.listConnectors(parent).iterateAll()) {
        System.out.println(connector.getAllFields());
      }
    } catch (IOException | ApiException e) {
      System.err.printf("managedKafkaConnectClient.listConnectors got err: %s\n", e.getMessage());
    }
  }
}

Python

Antes de testar esta amostra, siga as instruções de configuração para Python em Instalar as bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Python do Serviço Gerenciado para Apache Kafka.

Para autenticar o Serviço Gerenciado para Apache Kafka, configure o Application Default Credentials. Para mais informações, consulte Configurar o ADC para um ambiente de desenvolvimento local.

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

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

connect_client = ManagedKafkaConnectClient()

request = managedkafka_v1.ListConnectorsRequest(
    parent=connect_client.connect_cluster_path(project_id, region, connect_cluster_id),
)

try:
    response = connect_client.list_connectors(request=request)
    for connector in response:
        print("Got connector:", connector)
except GoogleAPICallError as e:
    print(f"Failed to list connectors with error: {e}")

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