En este documento, se describe cómo borrar un tema de un registro de esquemas. Existen dos formas de borrar un tema:
Borrado de forma no definitiva. Marca al sujeto como borrado, pero se conserva su información y se puede recuperar. También se borran de forma no definitiva todas las versiones del asunto.
Eliminación definitiva. Quita de forma permanente el tema y sus datos asociados.
También puedes borrar una versión de esquema específica de un tema. Para obtener más información, consulta Borra una versión de un tema de esquema.
Roles y permisos requeridos
Para obtener los permisos que
necesitas para borrar un tema,
pídele a tu administrador que te otorgue el rol de IAM
Editor del registro de esquemas de Kafka administrado (roles/managedkafka.schemaRegistryEditor) en tu tema.
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 borrar un asunto. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:
Permisos necesarios
Se requieren los siguientes permisos para borrar un asunto:
-
Otorga el siguiente permiso sobre el sujeto que se borrará:
managedkafka.subjects.delete -
Si borras en la consola, otorga el siguiente permiso para ver el asunto:
managedkafka.subjects.list
También puedes obtener estos permisos con roles personalizados o con otros roles predefinidos.
Borra un asunto de forma no definitiva
Asegúrate de que se cumplan las siguientes condiciones:
El tema que borrarás no se menciona en otros esquemas. Una solicitud de eliminación falla si otros esquemas hacen referencia a alguna versión del tema.
El registro de esquema al que pertenece el asunto o el asunto en sí no deben estar en modo
Read-only.
Para borrar de forma temporal un tema, sigue estos pasos.
Console
En la consola Google Cloud , ve a la página Registros de esquemas.
Haz clic en el nombre del registro de esquemas que contiene el tema que deseas borrar.
En Sujetos en este registro de esquemas, haz clic en el nombre del sujeto.
En la página Detalles del asunto, haz clic en Borrar.
Selecciona Borrar de forma no definitiva.
En el cuadro de diálogo Borrar el tema del esquema, escribe
deleteen el campo.Haz clic en Borrar. Esta acción borra de forma no definitiva el tema antes de borrarlo permanentemente.
REST
La solicitud debe autenticarse con un token de acceso en el encabezado Authorization. Para obtener un token de acceso para las credenciales predeterminadas de la aplicación actuales, usa gcloud auth application-default print-access-token.
Para borrar de forma no definitiva un tema con la API de REST, realiza una solicitud DELETE al URI correspondiente con el método projects.locations.schemaRegistries.contexts.subjects.delete.
DELETE https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT_ID
Authorization: Bearer $(gcloud auth application-default print-access-token)
Para borrar de forma no definitiva un tema en un contexto específico con la API de REST, realiza una solicitud DELETE al URI adecuado con el método projects.locations.schemaRegistries.contexts.subjects.delete.
DELETE https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/contexts/CONTEXT_ID/subjects/SUBJECT_ID
Authorization: Bearer $(gcloud auth application-default print-access-token)
Reemplaza lo siguiente:
- PROJECT_ID (obligatorio): ID del proyecto de Google Cloud.
- LOCATION (obligatorio): Es la región Google Cloud en la que se encuentra el registro de esquemas.
- REGISTRY_ID (obligatorio): Es el ID de tu registro de esquema.
- CONTEXT_ID (opcional): Es el ID o el nombre del contexto si se borra un tema dentro de un contexto específico.
- SUBJECT_ID (opcional): Es el ID o el nombre del tema que deseas borrar.
Por ejemplo, para borrar de forma no definitiva orders-topic-value del registro de esquema test_registry en el proyecto test-gcp-project y la ubicación us-central1, realiza la siguiente solicitud:
DELETE https://managedkafka.googleapis.com/v1/projects/test-gcp-project/locations/us-central1/schemaRegistries/test_registry/subjects/orders-topic-value
Authorization: Bearer $(gcloud auth application-default print-access-token)
Si la solicitud se realiza correctamente, la API devuelve un código de estado 200 OK. El cuerpo de la respuesta contiene un array JSON con los números de versión de los esquemas que pertenecían al tema borrado.
Cómo borrar definitivamente un asunto
La eliminación definitiva de un tema es irreversible y también borra todas las versiones de esquema asociadas.
Asegúrate de que se cumplan las siguientes condiciones:
Otros esquemas no hacen referencia al tema que borrarás. Una solicitud de eliminación falla si otros esquemas hacen referencia a alguna versión del tema.
El registro de esquema al que pertenece el asunto o el asunto en sí no deben estar en el modo
Read-only.Crea una copia de seguridad de la información del esquema necesaria antes de continuar con la eliminación.
Ningún productor o consumidor activo debe depender de los esquemas dentro de este tema, ya que su eliminación puede causar interrupciones.
Console
En la consola Google Cloud , ve a la página Registros de esquemas.
Haz clic en el nombre del registro de esquemas que contiene el tema que deseas borrar.
En Sujetos en este registro de esquemas, haz clic en el nombre del sujeto.
En la página Detalles del asunto, haz clic en Borrar.
Selecciona Borrado definitivo.
En el cuadro de diálogo Borrar el tema del esquema, escribe
deleteen el campo.Haz clic en Borrar. Esta acción borra de forma no definitiva el tema antes de borrarlo permanentemente.
REST
Para borrar de forma definitiva un tema con la API de REST, primero debes borrarlo de forma temporal. Una vez que se borre de forma no definitiva, puedes continuar con el borrado definitivo.
La solicitud debe autenticarse con un token de acceso en el encabezado Authorization. Para obtener un token de acceso para las credenciales predeterminadas de la aplicación actuales, usa gcloud auth application-default print-access-token.
Para borrar de forma permanente un tema con la API de REST, realiza una solicitud DELETE al URI correspondiente, incluido el parámetro de consulta permanent=true y con el método projects.locations.schemaRegistries.subjects.delete.
DELETE https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT_ID?permanent=true
Authorization: Bearer $(gcloud auth application-default print-access-token)
Para borrar de forma permanente un tema en un contexto específico con la API de REST, realiza una solicitud DELETE al URI adecuado, incluido el parámetro de consulta permanent=true y con el método projects.locations.schemaRegistries.contexts.subjects.delete.
DELETE https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/contexts/CONTEXT_ID/subjects/SUBJECT_ID?permanent=true
Authorization: Bearer $(gcloud auth application-default print-access-token)
Reemplaza lo siguiente:
- PROJECT_ID (obligatorio): ID del proyecto de Google Cloud.
- LOCATION (obligatorio): Es la región Google Cloud en la que se encuentra el registro de esquemas.
- REGISTRY_ID (obligatorio): Es el ID de tu registro de esquema.
- CONTEXT_ID (opcional): Es el ID del contexto, si se borra un tema dentro de un contexto específico.
- SUBJECT_ID (opcional): Es el ID o el nombre del tema que deseas borrar.
Por ejemplo, para borrar de forma definitiva el tema orders-topic-value que se borró de forma no definitiva del registro de esquemas test_registry en el proyecto test-gcp-project y la ubicación us-central1, realiza la siguiente solicitud:
DELETE https://managedkafka.googleapis.com/v1/projects/test-gcp-project/locations/us-central1/schemaRegistries/test_registry/subjects/orders-topic-value?permanent=true
Authorization: Bearer $(gcloud auth application-default print-access-token)
Si la solicitud se realiza correctamente, la API devuelve un código de estado 200 OK. El cuerpo de la respuesta contiene un array JSON con los números de versión de los esquemas que pertenecían al tema borrado.
Para obtener más información, consulta projects.locations.schemaRegistries.contexts.subjects.delete
Restablece un asunto borrado de forma no definitiva
Para restablecer un asunto borrado de forma temporal, sigue estos pasos.
Console
En la consola Google Cloud , ve a la página Registros de esquemas.
Haz clic en el nombre del registro de esquema que contiene el tema borrado de forma no definitiva.
En Filtro, haz clic en Cancelar para borrar el filtro Borrado temporal: No.
Haz clic en el nombre del asunto que deseas restablecer.
En la página Detalles del asunto, haz clic en Crear versión para restablecer.
En Tipo de esquema, selecciona Avro o búfer de protocolo.
En el campo Definición del esquema, ingresa la definición del esquema. No incluyas información sensible, como información de identificación personal (PII) ni datos de seguridad en los nombres de los campos del esquema.
Si tu esquema usa o depende de estructuras de datos definidas en otros esquemas del registro de esquemas, sigue estos pasos:
- Haz clic en Agregar referencia de esquema.
- En el campo Reference name, ingresa el nombre de referencia del esquema al que se hace referencia.
- En la lista Asunto, selecciona el asunto que contiene el esquema al que se hace referencia.
- En la lista Versión, selecciona el número de versión del esquema al que se hace referencia.
- Haz clic en Aceptar.
Repite estos pasos para cada esquema al que se haga referencia.
Haz clic en Crear.
REST
Para restablecer un tema borrado de forma no definitiva, usa el método schemaRegistries.subjects.versions.create.
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
-
PROJECT_ID: ID del proyecto de Google Cloud -
LOCATION: la ubicación del registro de esquemas -
REGISTRY_ID: Es el ID del registro de esquema. -
SUBJECT: El nombre del sujeto -
SCHEMA_DEFINITION: Cadena que contiene la definición del esquema
Método HTTP y URL:
POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT/versions
Cuerpo JSON de la solicitud:
{
"schema": "SCHEMA_DEFINITION"
}
Para enviar tu solicitud, expande una de estas opciones:
Deberías recibir una respuesta JSON similar a la que se muestra a continuación:
{
"id": SCHEMA_ID
}
¿Qué sigue?
- Más información sobre el registro de esquemas
- Enumera los asuntos
- Enumera las versiones de un tema
- Cómo borrar una versión de un tema del esquema