Excluir um assunto

Este documento descreve como excluir um assunto de um registro de esquema. Há duas maneiras de excluir um assunto:

  • Exclusão reversível. Marca o assunto como excluído, mas as informações dele são mantidas e podem ser recuperadas. Todas as versões do assunto também são excluídas de maneira reversível.

  • Exclusão permanente. Remove permanentemente o assunto e os dados associados a ele.

Também é possível excluir uma versão específica de um esquema de um assunto. Para mais informações, consulte Excluir uma versão de assunto do esquema.

Papéis e permissões necessárias

Para receber as permissões necessárias para excluir um assunto, peça ao administrador para conceder a você o papel do IAM de Editor do Managed Kafka Schema Registry (roles/managedkafka.schemaRegistryEditor) no assunto. 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 excluir um assunto. Para acessar 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 excluir um assunto:

  • Conceda a seguinte permissão ao assunto a ser excluído: managedkafka.subjects.delete
  • Se você estiver excluindo no console, conceda a seguinte permissão para ver o assunto: managedkafka.subjects.list

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

A função Administrador do registro de esquema do Managed Kafka (roles/managedkafka.schemaRegistryAdmin) também permite excluir assuntos.

Para mais informações sobre papéis predefinidos, consulte os papéis predefinidos do Managed Service para Apache Kafka.

Fazer a exclusão reversível de um assunto

Verifique se as seguintes condições são atendidas:

  • O assunto que você vai excluir não é referenciado por outros esquemas. Uma solicitação de exclusão falha se qualquer versão no assunto for referenciada por outros esquemas.

  • O registro de esquema a que o assunto pertence ou o próprio assunto não pode estar no modo Read-only.

Para fazer uma exclusão temporária de um assunto, siga estas etapas.

Console

  1. No console do Google Cloud , acesse a página Registros de esquema.

    Acessar "Registros de esquema"

  2. Clique no nome do registro de esquema que contém o assunto a ser excluído.

  3. Em Assuntos neste registro de esquema, clique no nome do assunto.

  4. Na página Detalhes do assunto, clique em Excluir.

  5. Selecione Exclusão reversível.

  6. Na caixa de diálogo Excluir assunto do esquema, digite delete no campo.

  7. Clique em Excluir. Essa ação exclui o assunto de forma reversível antes da exclusão permanente.

REST

A solicitação precisa ser autenticada com um token de acesso no cabeçalho Authorization. Para conseguir um token de acesso para o Application Default Credentials: gcloud auth application-default print-access-token.

Para excluir um assunto de forma reversível usando a API REST, faça uma solicitação DELETE ao URI apropriado usando o 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 excluir um assunto de forma temporária em um contexto específico usando a API REST, faça uma solicitação DELETE ao URI apropriado usando o 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)

Substitua:

  • PROJECT_ID (obrigatório): ID do projeto do Google Cloud.
  • LOCATION (obrigatório): a Google Cloud região em que o registro de esquema está localizado.
  • REGISTRY_ID (obrigatório): o ID do seu registro de esquema.
  • CONTEXT_ID (opcional): o ID ou nome do contexto, se você estiver excluindo um assunto em um contexto específico.
  • SUBJECT_ID (opcional): o ID ou nome do assunto que você quer excluir.

Por exemplo, para excluir temporariamente orders-topic-value do registro de esquema test_registry no projeto test-gcp-project e no local us-central1, faça a seguinte solicitação:

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)

Se a solicitação for bem-sucedida, a API vai retornar um código de status 200 OK. O corpo da resposta contém uma matriz JSON dos números de versão dos esquemas que pertenciam ao assunto excluído.

Excluir permanentemente um assunto

A exclusão permanente de um assunto é irreversível e também exclui todas as versões de esquema associadas.

Verifique se as seguintes condições são atendidas:

  • O assunto que você vai excluir não é referenciado por outros esquemas. Uma solicitação de exclusão falha se qualquer versão no assunto for referenciada por outros esquemas.

  • O registro de esquema a que o assunto pertence ou o próprio assunto não pode estar no modo Read-only.

  • Faça backup das informações de esquema necessárias antes de prosseguir com a exclusão.

  • Nenhum produtor ou consumidor ativo pode depender dos esquemas nesse assunto, já que a exclusão pode causar interrupções.

Console

  1. No console do Google Cloud , acesse a página Registros de esquema.

    Acessar "Registros de esquema"

  2. Clique no nome do registro de esquema que contém o assunto a ser excluído.

  3. Em Assuntos neste registro de esquema, clique no nome do assunto.

  4. Na página Detalhes do assunto, clique em Excluir.

  5. Selecione Exclusão permanente.

  6. Na caixa de diálogo Excluir assunto do esquema, digite delete no campo.

  7. Clique em Excluir. Essa ação exclui o assunto de forma reversível antes da exclusão permanente.

REST

Para excluir permanentemente um assunto usando a API REST, primeiro é preciso fazer uma exclusão temporária. Depois da exclusão temporária, você pode continuar com a exclusão permanente.

A solicitação precisa ser autenticada com um token de acesso no cabeçalho Authorization. Para conseguir um token de acesso para o Application Default Credentials: gcloud auth application-default print-access-token.

Para excluir permanentemente um assunto usando a API REST, faça uma solicitação DELETE para o URI apropriado, incluindo o parâmetro de consulta permanent=true e usando o 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 excluir permanentemente um assunto em um contexto específico usando a API REST, faça uma solicitação DELETE ao URI apropriado, incluindo o parâmetro de consulta permanent=true e usando o 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)

Substitua:

  • PROJECT_ID (obrigatório): ID do projeto do Google Cloud.
  • LOCATION (obrigatório): a Google Cloud região em que o registro de esquema está localizado.
  • REGISTRY_ID (obrigatório): o ID do seu registro de esquema.
  • CONTEXT_ID (opcional): o ID do contexto, se você estiver excluindo um assunto em um contexto específico.
  • SUBJECT_ID (opcional): o ID ou nome do assunto que você quer excluir.

Por exemplo, para excluir de forma irreversível o assunto orders-topic-value excluído de forma reversível do registro de esquema test_registry no projeto test-gcp-project e no local us-central1, faça a seguinte solicitação:

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)

Se a solicitação for bem-sucedida, a API vai retornar um código de status 200 OK. O corpo da resposta contém uma matriz JSON dos números de versão dos esquemas que pertenciam ao assunto excluído.

Para obter mais informações, consulte projects.locations.schemaRegistries.contexts.subjects.delete.

Restaurar um assunto excluído de maneira reversível

Para restaurar um assunto excluído de forma reversível, siga estas etapas.

Console

  1. No console do Google Cloud , acesse a página Registros de esquema.

    Acessar "Registros de esquema"

  2. Clique no nome do registro de esquema que contém o assunto excluído de forma reversível.

  3. Para Filtro, clique em Cancelar para limpar o filtro Excluído temporariamente: Não.

  4. Clique no nome do assunto que você quer restaurar.

  5. Na página Detalhes do assunto, clique em Criar versão para restaurar.

  6. Em Tipo de esquema, selecione Avro ou Buffer de protocolo.

  7. No campo Definição de esquema, insira a definição do esquema. Não inclua informações sensíveis, como informações de identificação pessoal (PII) ou dados de segurança, nos nomes dos campos do esquema.

  8. Se o esquema usar ou depender de estruturas de dados definidas em outros esquemas no registro de esquema, siga estas etapas:

    1. Clique em Adicionar referência de esquema.
    2. No campo Nome de referência, insira o nome de referência do esquema referenciado.
    3. Na lista Assunto, selecione o assunto que contém o esquema referenciado.
    4. Na lista Versão, selecione o número da versão do esquema referenciado.
    5. Clique em OK.

    Repita essas etapas para cada esquema referenciado.

  9. Clique em Criar.

REST

Para restaurar um assunto excluído de forma reversível, use o método schemaRegistries.subjects.versions.create.

Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:

  • PROJECT_ID: o ID do projeto do Google Cloud
  • LOCATION: o local do registro de esquema
  • REGISTRY_ID: o ID do registro de esquema
  • SUBJECT: o nome do assunto
  • SCHEMA_DEFINITION: uma string que contém a definição do esquema

Método HTTP e URL:

POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT/versions

Corpo JSON da solicitação:

{
  "schema": "SCHEMA_DEFINITION"
}

Para enviar a solicitação, expanda uma destas opções:

Você receberá uma resposta JSON semelhante a esta:

{
  "id": SCHEMA_ID
}

A seguir

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