Un tema de importación de Confluent Cloud te permite transferir datos de forma continua desde Confluent Cloud como una fuente externa a Pub/Sub. Luego, puedes transmitir los datos a cualquiera de los destinos que admite Pub/Sub.
En este documento, se muestra cómo crear y administrar temas de importación de Confluent Cloud. Para crear un tema estándar, consulta Crea un tema estándar.
Para obtener más información sobre los temas de importación, consulta Acerca de los temas de importación.
Antes de comenzar
Obtén más información sobre el proceso de publicación de Pub/Sub.
Configura los roles y permisos necesarios para administrar los temas de importación de Confluent Cloud, incluidos los siguientes:
Configura la federación de identidades de cargas de trabajo para que Google Cloud pueda acceder al servicio de transmisión externo.
Roles y permisos requeridos
Para obtener los permisos que necesitas para crear y administrar temas de importación de Confluent Cloud, pídele a tu administrador que te otorgue el rol de IAM de editor de Pub/Sub (roles/pubsub.editor
) en tu tema o proyecto.
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para crear y administrar temas de importación de Confluent Cloud. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para crear y administrar temas de importación de Confluent Cloud:
-
Crea un tema de importación:
pubsub.topics.create
-
Borrar un tema de importación:
pubsub.topics.delete
-
Obtén un tema de importación:
pubsub.topics.get
-
Enumera un tema de importación:
pubsub.topics.list
-
Publicar en un tema de importación:
pubsub.topics.publish
-
Actualiza un tema de importación:
pubsub.topics.update
-
Obtén la política de IAM de un tema de importación:
pubsub.topics.getIamPolicy
-
Configura la política de IAM para un tema de importación:
pubsub.topics.setIamPolicy
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Puedes configurar el control de acceso a nivel del proyecto y a nivel de los recursos individuales.
Configura la identidad federada para acceder a Confluent Cloud
La federación de Workload Identity permite que los servicios de Google Cloud accedan a las cargas de trabajo que se ejecutan fuera de Google Cloud. Con la federación de identidades, no es necesario que mantengas ni pases credenciales a Google Cloud para acceder a tus recursos en otras nubes. En su lugar, puedes usar las identidades de las cargas de trabajo para autenticarte en Google Cloud y acceder a los recursos.
Crea una cuenta de servicio en Google Cloud
Este paso es opcional. Si ya tienes una cuenta de servicio, puedes usarla en este procedimiento en lugar de crear una nueva. Si usas una cuenta de servicio existente, ve a Registra el ID único de la cuenta de servicio para ver el paso siguiente.
En el caso de los temas de importación de Confluent Cloud, Pub/Sub usa la cuenta de servicio como la identidad para acceder a los recursos de Confluent Cloud.
Para obtener más información sobre cómo crear una cuenta de servicio, incluidos los requisitos previos, los roles y los permisos necesarios, y los lineamientos de nombres, consulta Cómo crear cuentas de servicio. Después de crear una cuenta de servicio, es posible que debas esperar 60 segundos o más antes de usarla. Este comportamiento sucede porque las operaciones de lectura tienen coherencia eventual. Es posible que la nueva cuenta de servicio tarde un poco más en ser visible.
Registra el ID único de la cuenta de servicio
Necesitas un ID único de la cuenta de servicio para configurar el proveedor de identidad y el grupo en la consola de Confluent Cloud.
En la consola de Google Cloud, ve a la página de detalles de la cuenta de servicio.
Haz clic en la cuenta de servicio que acabas de crear o en la que planeas usar.
En la página Detalles de la cuenta de servicio, registra el número de ID único.
Necesitas el ID como parte del flujo de trabajo para configurar el proveedor y el grupo de identidad en la consola de Confluent Cloud.
Agrega el rol de creador de tokens de cuenta de servicio a la cuenta de servicio de Pub/Sub
El rol de creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator
) permite que las principales creen credenciales de corta duración para una cuenta de servicio. Estos tokens o credenciales se usan para suplantar la identidad de la cuenta de servicio.
Para obtener más información sobre el uso de la identidad de cuentas de servicio, consulta Uso de la identidad de cuentas de servicio.
También puedes agregar el rol de publicador de Pub/Sub (roles/pubsub.publisher
) durante este procedimiento. Para obtener más información sobre el rol y por qué lo agregas, consulta Cómo agregar el rol de publicador de Pub/Sub a la cuenta de servicio de Pub/Sub.
En la consola de Google Cloud, ve a la página IAM.
Haz clic en la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.
Busca la cuenta de servicio que tiene el formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.En esta cuenta de servicio, haz clic en el botón Editar principal.
Si es necesario, haz clic en Agregar otro rol.
Busca y haz clic en el rol de creador de tokens de cuenta de servicio (
roles/iam.serviceAccountTokenCreator
).Haz clic en Guardar.
Crea un proveedor de identidad en Confluent Cloud
Para autenticarse en Confluent Cloud, la cuenta de servicio de Google Cloud necesita un grupo de identidades. Primero, debes crear un proveedor de identidad en Confluent Cloud.
Para obtener más información sobre cómo crear un proveedor de identidad en Confluent Cloud, consulta la página Cómo agregar un proveedor de identidad de OAuth/OIDC.
Accede a la consola de Confluent Cloud.
En el menú, haz clic en Cuentas y acceso.
Haz clic en Identidades de carga de trabajo.
Haz clic en Agregar proveedor.
Haz clic en OAuth/OIDC y, luego, en Siguiente.
Haz clic en Otro proveedor de OIDC y, luego, en Siguiente.
Proporciona un nombre y una descripción del propósito del proveedor de identidad.
Haz clic en Mostrar configuración avanzada.
En el campo URI del emisor, ingresa
https://accounts.google.com
.En el campo JWKS URI, ingresa
https://www.googleapis.com/oauth2/v3/certs
.Haz clic en Validar y guardar.
Crea un grupo de identidades y otorga los roles adecuados en Confluent Cloud
Debes crear un grupo de identidades en tu perfil de identidad y otorgar los roles necesarios para permitir que la cuenta de servicio de Pub/Sub autentique y lea los temas de Kafka de Confluent Cloud.
Asegúrate de que tu clúster se haya creado en Confluent Cloud antes de continuar con la creación de un grupo de identidades.
Para obtener más información sobre cómo crear un grupo de identidades, consulta la página Cómo usar grupos de identidades con tu proveedor de identidad de OAuth/OIDC.
Accede a la consola de Confluent Cloud.
En el menú, haz clic en Cuentas y acceso.
Haz clic en Identidades de carga de trabajo.
Haz clic en el proveedor de identidad que creaste en Crea un proveedor de identidad en Confluent Cloud.
Haz clic en Agregar grupo.
Proporciona un nombre y una descripción para tu grupo de identidad.
Establece el derecho de identidad en
claims
.En Establecer filtros, haz clic en la pestaña Configuración avanzada. Ingresa este código:
claims.iss=='https://accounts.google.com' && claims.sub=='<SERVICE_ACCOUNT_UNIQUE_ID>'
Reemplaza
<SERVICE_ACCOUNT_UNIQUE_ID>
por el ID único de tu cuenta de servicio que se encuentra en Cómo registrar el ID único de la cuenta de servicio.Haz clic en Siguiente.
Haz clic en Agregar permiso nuevo. Luego, haz clic en Siguiente.
En el clúster correspondiente, haz clic en Agregar asignación de roles.
Haz clic en el rol Operador y, luego, en Agregar.
Este rol otorga Pub/Sub. Acceso de la cuenta de servicio al clúster que contiene el tema de Confluent Kafka que deseas transferir a Pub/Sub
En el clúster, haz clic en Temas. Luego, haz clic en Agregar asignación de rol.
Selecciona el rol DeveloperRead.
Haz clic en la opción adecuada y especifica el tema o el prefijo. Por ejemplo, Tema específico, Regla de prefijo o Todos los temas.
Haz clic en Agregar.
Haz clic en Siguiente.
Haz clic en Validar y guardar.
Agrega el rol de publicador de Pub/Sub al principal de Pub/Sub
Para habilitar la publicación, debes asignar un rol de publicador a la cuenta de servicio de Pub/Sub para que Pub/Sub pueda publicar en el tema de importación de Confluent Cloud.
Habilita la publicación desde todos los temas
Usa este método si no creaste ningún tema de importación de Confluent Cloud.
En la consola de Google Cloud, ve a la página IAM.
Haz clic en la casilla de verificación Incluir asignaciones de roles proporcionadas por Google.
Busca la cuenta de servicio que tiene el formato
service-{PROJECT_NUMBER}@gcp-sa-pubsub.iam.gserviceaccount.com
.En esta cuenta de servicio, haz clic en el botón Editar principal.
Si es necesario, haz clic en Agregar otro rol.
Busca y haz clic en el rol de publicador de Pub/Sub (
roles/pubsub.publisher
).Haz clic en Guardar.
Habilita la publicación desde un solo tema
Usa este método solo si ya existe el tema de importación de Confluent Cloud.
In the Google Cloud console, 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.
Ejecuta el 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.iam.gserviceaccount.com" \ --role="roles/pubsub.publisher"
Reemplaza lo siguiente:
TOPIC_ID
: Es el ID del tema de importación de Confluent Cloud.PROJECT_NUMBER
: Número del proyecto Para ver el número del proyecto, consulta Identifica proyectos.
Agrega el rol de usuario de la cuenta de servicio a la cuenta de servicio
El rol de usuario de cuenta de servicio (roles/iam.serviceAccountUser
) incluye el permiso iam.serviceAccounts.actAs
que permite que una principal adjunte una cuenta de servicio a la configuración de transferencia del tema de importación de Confluent Cloud y use esa cuenta de servicio para la identidad federada.
En la consola de Google Cloud, ve a la página IAM.
En el principal que emite las llamadas para crear o actualizar temas, haz clic en el botón Editar principal.
Si es necesario, haz clic en Agregar otro rol.
Busca y haz clic en el Rol de usuario de cuenta de servicio (
roles/iam.serviceAccountUser
).Haz clic en Guardar.
Usa temas de importación de Confluent Cloud
Puedes crear un tema de importación nuevo o editar uno existente.
Consideraciones
Crear el tema y la suscripción por separado, incluso si se hace de forma rápida, puede provocar la pérdida de datos. Hay un período breve en el que el tema existe sin una suscripción. Si se envían datos al tema durante este tiempo, se pierden. Si primero creas el tema, creas la suscripción y, luego, lo conviertes en un tema de importación, garantizas que no se pierdan mensajes durante el proceso de importación.
Si necesitas volver a crear el tema de Kafka de un tema de importación existente con el mismo nombre, no puedes solo borrar el tema de Kafka y volver a crearlo. Esta acción puede invalidar la administración de compensaciones de Pub/Sub, lo que puede provocar la pérdida de datos. Para mitigar este problema, sigue estos pasos:
- Borra el tema de importación de Pub/Sub.
- Borra el tema de Kafka.
- Crea el tema de Kafka.
- Crea el tema de importación de Pub/Sub.
Los datos de un tema de Kafka de Confluent Cloud siempre se leen desde el desplazamiento más antiguo.
Crea un tema de importación de Confluent Cloud
Para obtener más información sobre las propiedades asociadas con un tema, consulta Propiedades de un tema.
Asegúrate de haber completado los siguientes procedimientos:
Configura la identidad federada para acceder a Confluent Cloud
Agrega el rol de publicador de Pub/Sub a la cuenta de servicio de Pub/Sub
Agrega el rol de usuario de la cuenta de servicio a la cuenta de servicio
Para crear un tema de importación de Confluent Cloud, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Temas.
Haz clic en Crear un tema.
En el campo ID de tema, ingresa un ID para tu tema de importación.
Para obtener más información sobre cómo asignar nombres a los temas, consulta los lineamientos de nombres.
Selecciona Agregar una suscripción predeterminada.
Selecciona Habilitar transferencia.
En Fuente de transferencia, selecciona Confluent Cloud.
Ingresa los siguientes detalles:
Servidor de arranque: Es el servidor de arranque de tu clúster que contiene el tema de Kafka que transfieres a Pub/Sub. El formato es el siguiente:
hostname:port
.ID del clúster: Es el ID de tu clúster que contiene el tema de Kafka que transfieres a Pub/Sub.
Tema: Es el nombre del tema de Kafka que transfieres a Pub/Sub.
ID del grupo de identidades: Es el ID del grupo de identidades que se usa para autenticarse con Confluent Cloud.
Cuenta de servicio: Es la cuenta de servicio que creaste en Crea una cuenta de servicio en Google Cloud.
Haz clic en Crear un tema.
gcloud
-
In the Google Cloud console, 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.
Ejecuta el 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_ACCOUNT
Reemplaza lo siguiente:
TOPIC_ID
: El nombre o el ID de tu tema de Pub/Sub.CONFLUENT_BOOTSTRAP_SERVER
: Es el servidor de arranque de tu clúster que contiene el tema de Kafka que transfieres a Pub/Sub. El formato es el siguiente:hostname:port
.CONFLUENT_CLUSTER_ID
: Es el ID de tu clúster que contiene el tema de Kafka que transfieres a Pub/Sub.CONFLUENT_TOPIC
: Es el nombre del tema de Kafka que transfieres a Pub/Sub.CONFLUENT_IDENTITY_POOL_ID
: El ID del grupo de identidades que se usa para autenticarse con Confluent Cloud.PUBSUB_SERVICE_ACCOUNT
: Es la cuenta de servicio que creaste en Crea una cuenta de servicio en Google Cloud.
Go
Antes de probar esta muestra, sigue las instrucciones de configuración de Go que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Go de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Java
Antes de probar esta muestra, sigue las instrucciones de configuración de Java que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Java de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Node.js de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Python
Antes de probar esta muestra, sigue las instrucciones de configuración de Python que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Python de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
C++
Antes de probar esta muestra, sigue las instrucciones de configuración de C++ que encontrarás en la guía de inicio rápido de Pub/Sub con bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de C++ de Pub/Sub.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Node.js (TypeScript)
Antes de probar esta muestra, sigue las instrucciones de configuración de Node.js en la guía de inicio rápido de Pub/Sub mediante bibliotecas cliente. Si quieres obtener más información, consulta la documentación de referencia de la API de Pub/Sub para Node.js.
Para autenticarte en Pub/Sub, configura las credenciales predeterminadas de la aplicación. Si deseas obtener más información, consulta Configura la autenticación para un entorno de desarrollo local.
Si tienes problemas, consulta Cómo solucionar problemas relacionados con un tema de importación de Confluent Cloud.
Cómo editar un tema de importación de Confluent Cloud Hubs
Para editar la configuración de la fuente de datos de transferencia de un tema de importación de Confluent Cloud, sigue estos pasos:
Console
En la consola de Google Cloud, ve a la página Temas.
Haz clic en el tema de importación de Confluent Cloud.
En la página de detalles del tema, haz clic en Editar.
Actualiza los campos que deseas cambiar.
Haz clic en Actualizar.
gcloud
-
In the Google Cloud console, 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.
Para evitar perder la configuración del tema de importación, asegúrate de incluirlos todos cada vez que lo actualices. Si omites algo, Pub/Sub restablece la configuración a su valor predeterminado original.
Ejecuta el comando
gcloud pubsub topics update
con todas las marcas mencionadas en el siguiente ejemplo: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
Reemplaza lo siguiente:
TOPIC_ID
: El nombre o el ID de tu tema de Pub/Sub.CONFLUENT_BOOTSTRAP_SERVER
: Es el servidor de arranque de tu clúster que contiene el tema de Kafka que transfieres a Pub/Sub. El formato es el siguiente:hostname:port
.CONFLUENT_CLUSTER_ID
: Es el ID de tu clúster que contiene el tema de Kafka que transfieres a Pub/Sub.CONFLUENT_TOPIC
: Es el nombre del tema de Kafka que transfieres a Pub/Sub.CONFLUENT_IDENTITY_POOL_ID
: El ID del grupo de identidades que se usa para autenticarse con Confluent Cloud.CONFLUENT_IDENTITY_POOL_ID
: Es la cuenta de servicio que creaste en Crea una cuenta de servicio en Google Cloud.
Cuotas y límites
La capacidad de procesamiento del publicador para los temas de importación está limitada por la cuota de publicación del tema. Para obtener más información, consulta Cuotas y límites de Pub/Sub.
¿Qué sigue?
Elige el tipo de suscripción para tu tema.
Obtén información para publicar un mensaje en un tema.
Crea o modifica un tema con gcloud CLI, las APIs de REST o las bibliotecas cliente.
Soluciona problemas relacionados con un tema de importación de Confluent Cloud.