En este documento, se describe cómo borrar un asunto de un registro de esquema. Hay dos formas de borrar un sujeto:
Eliminación no definitiva. Marca el asunto 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.
Borrar de forma definitiva. Quita de forma permanente el asunto 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.
El rol de Administrador del registro de esquemas de Kafka administrado (roles/managedkafka.schemaRegistryAdmin) también te permite borrar temas.
Para obtener más información sobre los roles predefinidos, consulta los roles predefinidos de Managed Service para Apache Kafka.
Borra un asunto de forma no definitiva
Asegúrate de que se cumplan las siguientes condiciones:
El tema que vas a borrar no se referencia en otros esquemas. Una solicitud de eliminación falla si otros esquemas hacen referencia a alguna versión del asunto.
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 asunto, 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 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 actuales de la aplicación, usa el siguiente comando: 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 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/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): La Google Cloud región 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 asunto 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.
Borra definitivamente un asunto
El borrado definitivo 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 Borrar de forma permanente.
En el cuadro de diálogo Borrar 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 actuales de la aplicación, usa el siguiente comando: gcloud auth application-default print-access-token.
Para borrar de forma permanente un asunto 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.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 correspondiente, 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 Google Cloud región 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 asunto que deseas borrar.
Por ejemplo, para borrar de forma definitiva el tema orders-topic-value que se borró de forma no definitiva anteriormente 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 Nombre de referencia, 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: El ID de tu 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: Una 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 del asunto
- Cómo borrar una versión de un tema del esquema