Com um tópico de importação do Confluent Cloud, é possível ingerir dados continuamente do Confluent Cloud como uma fonte externa e no Pub/Sub. Em seguida, é possível transmitir os dados para qualquer um dos destinos compatíveis com o Pub/Sub.
Este documento mostra como criar e gerenciar tópicos de imposição do Confluent Cloud. Para criar um tópico padrão, consulte Criar um tópico padrão.
Para mais informações sobre tópicos de importação, consulte Sobre tópicos de importação.
Antes de começar
Saiba mais sobre o processo de publicação do Pub/Sub.
Configure os papéis e permissões necessários para gerenciar os tópicos de importação do Confluent Cloud, incluindo o seguinte:
Configure a federação de identidade da carga de trabalho para que Trusted Cloud possa acessar o serviço de streaming externo.
Papéis e permissões necessárias
Para receber as permissões necessárias para criar e gerenciar tópicos de importação do Confluent Cloud,
peça ao administrador para conceder a você o
papel do IAM de Editor do Pub/Sub (roles/pubsub.editor
)
no seu tópico ou 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 criar e gerenciar tópicos de importação do Confluent Cloud. Para conferir 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 criar e gerenciar tópicos de importação do Confluent Cloud:
-
Crie um tópico de importação:
pubsub.topics.create
-
Excluir um tema de importação:
pubsub.topics.delete
-
Receber um tópico de importação:
pubsub.topics.get
-
Liste um tema de importação:
pubsub.topics.list
-
Publicar em um tópico de importação:
pubsub.topics.publish and pubsub.serviceAgent
-
Atualizar um tema de importação:
pubsub.topics.update
-
Receba a política do IAM para um tópico de importação:
pubsub.topics.getIamPolicy
-
Configure a política do IAM para um tópico de importação:
pubsub.topics.setIamPolicy
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
É possível configurar o controle de acesso no nível do projeto e no nível do recurso individual.
Configurar a identidade federada para acessar o Confluent Cloud
A federação de identidade da carga de trabalho permite que os serviços do Trusted Cloud acessem cargas de trabalho executadas fora do Trusted Cloud. Com a federação de identidade, não é necessário manter ou transmitir credenciais para Trusted Cloud acessar seus recursos em outras nuvens. Em vez disso, é possível usar as identidades das próprias cargas de trabalho para autenticar no Trusted Cloud e acessar recursos.
Criar uma conta de serviço em Trusted Cloud
Essa é uma etapa opcional. Se você já tiver uma conta de serviço, use-a neste procedimento em vez de criar uma nova. Se você estiver usando uma conta de serviço, acesse Registrar o ID exclusivo da conta de serviço para a próxima etapa.
Para importar tópicos do Confluent Cloud, o Pub/Sub usa a conta de serviço como identidade para acessar recursos do Confluent Cloud.
Para mais informações sobre como criar uma conta de serviço, incluindo pré-requisitos, papéis e permissões obrigatórios e diretrizes de nomenclatura, consulte Criar contas de serviço. Depois de criar uma conta de serviço, talvez seja necessário aguardar 60 segundos ou mais para usá-la. Esse comportamento ocorre porque as operações de leitura têm consistência eventual e pode levar algum tempo para a nova conta de serviço ficar visível.
Registre o ID exclusivo da conta de serviço
Você precisa de um ID exclusivo da conta de serviço para configurar o provedor de identidade e o pool no console do Confluent Cloud.
No console Trusted Cloud , acesse a página de detalhes da conta de serviço.
Clique na conta de serviço que você acabou de criar ou na que você planeja usar.
Na página Detalhes da conta de serviço, anote o número do ID exclusivo.
Você precisa do ID como parte do fluxo de trabalho para configurar o provedor de identidade e o pool no console do Confluent Cloud.
Adicionar o papel de criador de token da conta de serviço à conta de serviço do Pub/Sub
O papel de criador de token da conta de serviço (roles/iam.serviceAccountTokenCreator
)
permite que os principais criem credenciais de curta duração
para uma conta de serviço. Esses tokens ou credenciais são usados para representar a conta de serviço.
Para mais informações sobre representação da conta de serviço, consulte Representação da conta de serviço.
Você também pode adicionar o papel de editor do Pub/Sub (roles/pubsub.publisher
)
durante esse procedimento. Para mais informações sobre a função e por que você está adicionando ela, consulte Adicionar a função de editor do Pub/Sub à conta de serviço do Pub/Sub.
No console Trusted Cloud , acesse a página IAM.
Clique na caixa de seleção Incluir concessões de papel fornecidas pelo S3NS.
Procure a conta de serviço que tem o formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
.Na conta de serviço, clique no botão Editar principal.
Se necessário, clique em Adicionar outro papel.
Pesquise e clique no papel Criador de token da conta de serviço (
roles/iam.serviceAccountTokenCreator
).Clique em Salvar.
Criar um provedor de identidade no Confluent Cloud
Para autenticar no Confluent Cloud, a conta de serviço do Google Cloud precisa de um pool de identidades. Primeiro, crie um provedor de identidade no Confluent Cloud.
Para mais informações sobre como criar um provedor de identidade no Confluent Cloud, acesse a página Adicionar um provedor de identidade OAuth/OIDC.
Faça login no console do Confluent Cloud.
No menu, clique em Contas e acesso.
Clique em Identidades da carga de trabalho.
Clique em Adicionar provedor.
Clique em OAuth/OIDC e em Próxima.
Clique em Outro provedor OIDC e em Próxima.
Forneça um nome e uma descrição da finalidade do provedor de identidade.
Clique em Mostrar configuração avançada.
No campo URI do emissor, insira
https://accounts.google.com
.No campo URI JWKS, insira
https://www.googleapis.com/oauth2/v3/certs
.Clique em Validar e salvar.
Crie um pool de identidades e conceda as funções adequadas no Confluent Cloud
Você precisa criar um pool de identidades no seu perfil de identidade e conceder as funções necessárias para permitir que a conta de serviço do Pub/Sub se autentique e leia os tópicos do Confluent Cloud Kafka.
Verifique se o cluster foi criado no Confluent Cloud antes de criar um pool de identidades.
Para mais informações sobre como criar um pool de identidades, acesse a página Usar pools de identidades com seu provedor de identidade OAuth/OIDC.
Faça login no console do Confluent Cloud.
No menu, clique em Contas e acesso.
Clique em Identidades da carga de trabalho.
Clique no provedor de identidade que você criou em Criar um provedor de identidade no Confluent Cloud.
Clique em Adicionar pool.
Forneça um nome e uma descrição para o pool de identidades.
Defina Declaração de identidade como
claims
.Em Definir filtros, clique na guia Avançado. Insira o seguinte código:
claims.iss=='https://accounts.google.com' && claims.sub=='<SERVICE_ACCOUNT_UNIQUE_ID>'
Substitua
<SERVICE_ACCOUNT_UNIQUE_ID>
pelo ID exclusivo da conta de serviço encontrado em Registrar o ID exclusivo da conta de serviço.Clique em Próxima.
Clique em Adicionar nova permissão. Em seguida, clique em Próxima.
No cluster relevante, clique em Adicionar atribuição de função.
Clique no papel Operador e em Adicionar.
Esse papel concede acesso ao Pub/Sub. Acesso da conta de serviço ao cluster que contém o tópico do Confluent Kafka que você quer ingerir no Pub/Sub.
Abaixo do cluster, clique em Tópicos. Em seguida, clique em Adicionar atribuição de função.
Selecione a função DeveloperRead.
Clique na opção adequada e especifique o tema ou prefixo. Por exemplo, Assunto específico, Regra de prefixo ou Todos os assuntos.
Clique em Adicionar.
Clique em Próxima.
Clique em Validar e salvar.
Adicione o papel de editor do Pub/Sub ao principal do Pub/Sub.
Para ativar a publicação, atribua um papel de editor à conta de serviço do Pub/Sub para que ele possa publicar no tópico de importação do Confluent Cloud.
Adicione o papel de agente de serviço do Pub/Sub à conta de serviço do Pub/Sub
Para permitir que o Pub/Sub use a cota de publicação do projeto do tópico de importação, o agente de serviço do Pub/Sub precisa da permissão serviceusage.services.use
no projeto do tópico de importação.
Para conceder essa permissão, recomendamos que você adicione o papel de agente de serviço do Pub/Sub à conta de serviço do Pub/Sub.
Se a conta de serviço do Pub/Sub não tiver o papel de agente de serviço do Pub/Sub, ela poderá ser concedida da seguinte maneira:
No console Trusted Cloud , acesse a página IAM.
Clique na caixa de seleção Incluir concessões de papel fornecidas pelo S3NS.
Procure a conta de serviço que tem o formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
.Clique no botão Editar principal.
Se necessário, clique em Adicionar outro papel.
Pesquise e clique no papel de agente de serviço do Pub/Sub (
roles/pubsub.serviceAgent
).Clique em Salvar.
Ativar a publicação de todos os tópicos
Use esse método se você não tiver criado nenhum tópico de importação do Confluent Cloud.
No console Trusted Cloud , acesse a página IAM.
Clique na caixa de seleção Incluir concessões de papel fornecidas pelo S3NS.
Procure a conta de serviço que tem o formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com
.Clique no botão Editar principal.
Se necessário, clique em Adicionar outro papel.
Pesquise e clique no papel de editor do Pub/Sub (
roles/pubsub.publisher
).Clique em Salvar.
Ativar a publicação de um único tópico
Use esse método somente se o tópico de importação do Confluent Cloud já existir.
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
Execute o comando
gcloud pubsub topics add-iam-policy-binding
:gcloud pubsub topics add-iam-policy-binding TOPIC_ID \ --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.s3ns-system.iam.gserviceaccount.com" \ --role="roles/pubsub.publisher"
Substitua:
TOPIC_ID
: o ID do tópico de importação do Confluent Cloud.PROJECT_NUMBER
: o número do projeto. Para conferir o número do projeto, consulte Identificar projetos.
No console Trusted Cloud , acesse a página IAM.
Para o principal que está emitindo as chamadas de criação ou atualização de tópico, clique no botão Editar principal.
Se necessário, clique em Adicionar outro papel.
Pesquise e clique no papel de usuário da conta de serviço (
roles/iam.serviceAccountUser
).Clique em Salvar.
Criar o tópico e a assinatura separadamente, mesmo que em rápida sucessão, pode levar à perda de dados. Há um período curto em que o tema existe sem uma assinatura. Se algum dado for enviado ao tópico durante esse período, ele será perdido. Ao criar primeiro o tópico, depois a assinatura e, por fim, converter o tópico em um tópico de importação, você garante que nenhuma mensagem seja perdida durante o processo de importação.
Se você precisar recriar o tópico do Kafka de um tópico de importação com o mesmo nome, não será possível apenas excluir e recriar o tópico do Kafka. Essa ação pode invalidar o gerenciamento de deslocamento do Pub/Sub, o que pode levar à perda de dados. Para evitar isso, siga estas etapas:
- Exclua o tópico de importação do Pub/Sub.
- Exclua o tópico do Kafka.
- Crie o tópico do Kafka.
- Crie o tópico de importação do Pub/Sub.
Os dados de um tópico do Confluent Cloud Kafka são sempre lidos do deslocamento mais antigo.
Configurar a identidade federada para acessar o Confluent Cloud
Adicione o papel de editor do Pub/Sub à conta de serviço do Pub/Sub
Adicionar o função do usuário da conta de serviço à conta de serviço
-
No console do Google Cloud, acesse a página Tópicos.
- Selecione Criar tópico.
- No campo ID do tópico, insira um ID para o tópico de importação. Para mais informações sobre como nomear tópicos, consulte as diretrizes de nomenclatura.
- Selecione Adicionar uma assinatura padrão.
- Selecione Ativar ingestão.
- Para a origem da ingestão, selecione Confluent Cloud.
- Digite os seguintes detalhes:
- Servidor de inicialização: o servidor de inicialização do cluster que contém
o tópico do Kafka que você está ingerindo no Pub/Sub.
O formato é o seguinte:
hostname:port
. - ID do cluster: o ID do cluster que contém o tópico do Kafka que você está ingerindo no Pub/Sub.
- Tópico: o nome do tópico do Kafka que você está ingerindo no Pub/Sub.
- ID do pool de identidades: o ID do pool de identidades usado para autenticar com o Confluent Cloud.
- Conta de serviço:a conta de serviço que você criou em Criar uma conta de serviço no Google Cloud.
- Servidor de inicialização: o servidor de inicialização do cluster que contém
o tópico do Kafka que você está ingerindo no Pub/Sub.
O formato é o seguinte:
- Selecione Criar tópico.
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
- Execute o comando
gcloud pubsub topics create
:gcloud pubsub topics create TOPIC_ID
--confluent-cloud-ingestion-bootstrap-server CONFLUENT_BOOTSTRAP_SERVER
--confluent-cloud-ingestion-cluster-id CONFLUENT_CLUSTER_ID
--confluent-cloud-ingestion-topic CONFLUENT_TOPIC
--confluent-cloud-ingestion-identity-pool-id CONFLUENT_IDENTITY_POOL_ID
--confluent-cloud-ingestion-service-account PUBSUB_SERVICE_ACCOUNTSubstitua:
-
TOPIC_ID
: o nome ou ID do tópico do Pub/Sub. -
CONFLUENT_BOOTSTRAP_SERVER
: o servidor de inicialização do cluster que contém o tópico do Kafka ingerido no Pub/Sub. O formato é o seguinte:hostname:port
. -
CONFLUENT_CLUSTER_ID
: o ID do cluster que contém o tópico do Kafka ingerido no Pub/Sub. -
CONFLUENT_TOPIC
: o nome do tópico do Kafka que você está ingerindo no Pub/Sub. -
CONFLUENT_IDENTITY_POOL_ID
: o ID do pool de identidade usado para autenticar com o Confluent Cloud. -
PUBSUB_SERVICE_ACCOUNT
: a conta de serviço que você criou em Criar uma conta de serviço no Google Cloud.
-
No console Trusted Cloud , acesse a página Tópicos.
Clique no tópico de importação do Confluent Cloud.
Na página de detalhes do tópico, clique em Editar.
Atualize os campos que você quer mudar.
Clique em Atualizar.
-
In the Trusted Cloud console, activate Cloud Shell.
At the bottom of the Trusted 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.
Para não perder as configurações do tópico de importação, inclua todas elas sempre que atualizar o tópico. Se você deixar algo de fora, o Pub/Sub vai redefinir a configuração para o valor padrão original.
Execute o comando
gcloud pubsub topics update
com todas as flags mencionadas no exemplo a seguir:gcloud pubsub topics update TOPIC_ID \ --confluent-cloud-ingestion-bootstrap-server CONFLUENT_BOOTSTRAP_SERVER \ --confluent-cloud-ingestion-cluster-id CONFLUENT_CLUSTER_ID \ --confluent-cloud-ingestion-topic CONFLUENT_TOPIC \ --confluent-cloud-ingestion-identity-pool-id CONFLUENT_IDENTITY_POOL_ID \ --confluent-cloud-ingestion-service-account PUBSUB_SERVICE_ACCOUNT
Substitua:
TOPIC_ID
: o nome ou ID do seu tópico do Pub/Sub.CONFLUENT_BOOTSTRAP_SERVER
: o servidor de inicialização do cluster que contém o tópico do Kafka ingerido no Pub/Sub. O formato é o seguinte:hostname:port
.CONFLUENT_CLUSTER_ID
: o ID do cluster que contém o tópico do Kafka que você está ingerindo no Pub/SubCONFLUENT_TOPIC
: o nome do tópico do Kafka que você está ingerindo no Pub/Sub.CONFLUENT_IDENTITY_POOL_ID
: o ID do pool de identidade usado para autenticar com o Confluent Cloud.CONFLUENT_IDENTITY_POOL_ID
: a conta de serviço que você criou em Criar uma conta de serviço no Google Cloud.
Escolha o tipo de assinatura para seu tópico.
Saiba como publicar uma mensagem em um tópico.
Crie ou modifique um tópico com a CLI gcloud, as APIs REST ou as bibliotecas de cliente.
Resolver problemas com um tópico de importação do Confluent Cloud.
Adicione o função do usuário da conta de serviço à conta de serviço
O papel de usuário da conta de serviço (roles/iam.serviceAccountUser
) inclui a
permissão iam.serviceAccounts.actAs
, que permite que um principal anexe uma conta
de serviço às configurações de ingestão do tópico de importação do Confluent Cloud e
use essa conta de serviço para identidade federada.
Usar tópicos de importação do Confluent Cloud
Você pode criar ou editar um tópico de importação.
Considerações
Criar um tópico de importação do Confluent Cloud
Para saber mais sobre as propriedades associadas a um tópico, consulte Propriedades de um tópico.
Verifique se você concluiu os seguintes procedimentos:
Para criar um tópico de importação do Confluent Cloud, siga estas etapas:
Console
gcloud
C++
Antes de tentar esse exemplo, siga as instruções de configuração do C++ em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C++.
Go
O exemplo a seguir usa a versão principal da biblioteca de cliente do Go Pub/Sub (v2). Se você ainda estiver usando a biblioteca v1, consulte o guia de migração para a v2. Para conferir uma lista de exemplos de código da v1, consulte os exemplos de código descontinuados.
Antes de tentar esse exemplo, siga as instruções de configuração do Go em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Go.
Java
Antes de tentar essa amostra, siga as instruções de configuração do Java em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Java.
Node.js
Antes de tentar essa amostra, siga as instruções de configuração do Node.js em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Node.js.
Node.ts
Antes de tentar essa amostra, siga as instruções de configuração do Node.js em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Node.js.
Python
Antes de tentar esse exemplo, siga as instruções de configuração do Python em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Python.
Se você tiver problemas, consulte Solução de problemas de um tópico de importação do Confluent Cloud.
Editar um tópico de importação do Confluent Cloud Hubs
Para editar as configurações da fonte de dados de ingestão de um tópico de importação do Confluent Cloud, siga estas etapas:
Console
gcloud
Cotas e limites
A taxa de transferência do editor para tópicos de importação é limitada pela cota de publicação do tópico. Para mais informações, consulte Cotas e limites do Pub/Sub.