이 문서에서는 스키마 레지스트리에서 주제를 삭제하는 방법을 설명합니다. 과목을 삭제하는 방법에는 두 가지가 있습니다.
소프트 삭제 주체를 삭제됨으로 표시하지만 정보는 보관되며 복구할 수 있습니다. 주제의 모든 버전도 소프트 삭제됩니다.
완전 삭제 주체와 연결된 데이터를 영구적으로 삭제합니다.
주제에서 특정 스키마 버전을 삭제할 수도 있습니다. 자세한 내용은 스키마 주제 버전 삭제를 참고하세요.
필수 역할 및 권한
주제를 삭제하는 데 필요한 권한을 얻으려면 관리자에게 주제에 대한 관리형 Kafka 스키마 레지스트리 편집자 (roles/managedkafka.schemaRegistryEditor) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
이 사전 정의된 역할에는 주제를 삭제하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.
필수 권한
주체를 삭제하려면 다음 권한이 필요합니다.
-
삭제할 대상에 다음 권한을 부여합니다.
managedkafka.subjects.delete -
콘솔에서 삭제하는 경우 주제를 볼 수 있는 다음 권한을 부여합니다.
managedkafka.subjects.list
커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.
관리형 Kafka 스키마 레지스트리 관리자(roles/managedkafka.schemaRegistryAdmin) 역할을 사용하면 주제를 삭제할 수도 있습니다.
사전 정의된 역할에 대한 자세한 내용은 Apache Kafka용 관리형 서비스 사전 정의된 역할을 참고하세요.
주체 소프트 삭제
다음 조건을 충족하는지 확인합니다.
삭제할 주제가 다른 스키마에 의해 참조되지 않습니다. 주체의 버전이 다른 스키마에서 참조되는 경우 삭제 요청이 실패합니다.
주제가 속한 스키마 레지스트리 또는 주제 자체가
Read-only모드에 있으면 안 됩니다.
주체를 일시삭제하려면 다음 단계를 따르세요.
콘솔
Google Cloud 콘솔에서 스키마 레지스트리 페이지로 이동합니다.
삭제할 주제가 포함된 스키마 레지스트리의 이름을 클릭합니다.
Subjects in this schema registry(이 스키마 레지스트리의 제목)에서 제목 이름을 클릭합니다.
주제 세부정보 페이지에서 삭제를 클릭합니다.
소프트 삭제를 선택합니다.
스키마 주제 삭제 대화상자의 필드에
delete를 입력합니다.삭제를 클릭합니다. 이 작업은 주제를 영구적으로 삭제하기 전에 소프트 삭제합니다.
REST
Authorization 헤더의 액세스 토큰으로 요청을 인증해야 합니다. 현재 애플리케이션 기본 사용자 인증 정보의 액세스 토큰을 얻으려면 gcloud auth application-default print-access-token을 실행합니다.
REST API를 사용하여 주제를 소프트 삭제하려면 projects.locations.schemaRegistries.contexts.subjects.delete 메서드를 사용하여 적절한 URI에 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)
REST API를 사용하여 특정 컨텍스트의 주체를 일시적으로 삭제하려면 projects.locations.schemaRegistries.contexts.subjects.delete 메서드를 사용하여 적절한 URI에 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)
다음을 바꿉니다.
- PROJECT_ID (필수): Google Cloud프로젝트 ID입니다.
- LOCATION (필수 항목): 스키마 레지스트리가 있는 Google Cloud 리전입니다.
- REGISTRY_ID (필수): 스키마 레지스트리의 ID입니다.
- CONTEXT_ID (선택사항): 특정 컨텍스트 내에서 주제를 삭제하는 경우 컨텍스트의 ID 또는 이름입니다.
- SUBJECT_ID (선택사항): 삭제하려는 주제의 ID 또는 이름입니다.
예를 들어 test-gcp-project 프로젝트와 us-central1 위치에 있는 스키마 레지스트리 test_registry에서 orders-topic-value를 소프트 삭제하려면 다음 요청을 실행합니다.
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)
요청이 성공하면 API가 200 OK 상태 코드를 반환합니다. 응답 본문에는 삭제된 주제에 속한 스키마의 버전 번호가 포함된 JSON 배열이 포함됩니다.
주체 완전 삭제
주체를 완전 삭제하면 되돌릴 수 없으며 연결된 모든 스키마 버전도 삭제됩니다.
다음 조건을 충족하는지 확인합니다.
삭제할 주제가 다른 스키마에서 참조되지 않습니다. 주제의 버전이 다른 스키마에서 참조되는 경우 삭제 요청이 실패합니다.
주제가 속한 스키마 레지스트리 또는 주제 자체가
Read-only모드에 있으면 안 됩니다.삭제를 진행하기 전에 필요한 스키마 정보를 백업하세요.
삭제하면 중단이 발생할 수 있으므로 활성 생산자나 소비자가 이 주제 내의 스키마를 사용해서는 안 됩니다.
콘솔
Google Cloud 콘솔에서 스키마 레지스트리 페이지로 이동합니다.
삭제할 주제가 포함된 스키마 레지스트리의 이름을 클릭합니다.
Subjects in this schema registry(이 스키마 레지스트리의 제목)에서 제목 이름을 클릭합니다.
주제 세부정보 페이지에서 삭제를 클릭합니다.
완전 삭제를 선택합니다.
스키마 주제 삭제 대화상자의 필드에
delete를 입력합니다.삭제를 클릭합니다. 이 작업은 주제를 영구적으로 삭제하기 전에 소프트 삭제합니다.
REST
REST API를 사용하여 주체를 완전 삭제하려면 먼저 소프트 삭제해야 합니다. 일시삭제가 완료되면 완전삭제를 진행할 수 있습니다.
Authorization 헤더의 액세스 토큰으로 요청을 인증해야 합니다. 현재 애플리케이션 기본 사용자 인증 정보의 액세스 토큰을 얻으려면 gcloud auth application-default print-access-token을 실행합니다.
REST API를 사용하여 주제를 완전 삭제하려면 permanent=true 쿼리 매개변수를 포함하고 projects.locations.schemaRegistries.subjects.delete 메서드를 사용하여 적절한 URI에 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)
REST API를 사용하여 특정 컨텍스트의 주체를 완전 삭제하려면 permanent=true 쿼리 매개변수를 포함하고 projects.locations.schemaRegistries.contexts.subjects.delete 메서드를 사용하여 적절한 URI에 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)
다음을 바꿉니다.
- PROJECT_ID (필수): Google Cloud프로젝트 ID입니다.
- LOCATION (필수 항목): 스키마 레지스트리가 있는 Google Cloud 리전입니다.
- REGISTRY_ID (필수): 스키마 레지스트리의 ID입니다.
- CONTEXT_ID (선택사항): 특정 컨텍스트 내에서 주제를 삭제하는 경우 컨텍스트의 ID입니다.
- SUBJECT_ID (선택사항): 삭제하려는 주제의 ID 또는 이름입니다.
예를 들어 프로젝트 test-gcp-project 및 위치 us-central1의 스키마 레지스트리 test_registry에서 이전에 소프트 삭제된 주제 orders-topic-value를 하드 삭제하려면 다음 요청을 실행합니다.
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)
요청이 성공하면 API가 200 OK 상태 코드를 반환합니다. 응답 본문에는 삭제된 주제에 속한 스키마의 버전 번호가 포함된 JSON 배열이 포함됩니다.
자세한 내용은 projects.locations.schemaRegistries.contexts.subjects.delete를 참조하세요.
소프트 삭제된 주제 복원
소프트 삭제된 주제를 복원하려면 다음 단계를 따르세요.
콘솔
Google Cloud 콘솔에서 스키마 레지스트리 페이지로 이동합니다.
소프트 삭제된 주제가 포함된 스키마 레지스트리의 이름을 클릭합니다.
필터의 경우 취소를 클릭하여 일시 삭제됨: 아니요 필터를 지웁니다.
복원할 주제의 이름을 클릭합니다.
주체 세부정보 페이지에서 복원할 버전 만들기를 클릭합니다.
스키마 유형에 Avro 또는 프로토콜 버퍼를 선택합니다.
스키마 정의 필드에 스키마 정의를 입력합니다. 스키마 필드 이름에 개인 식별 정보 (PII) 또는 보안 데이터와 같은 민감한 정보를 포함하지 마세요.
스키마가 스키마 레지스트리의 다른 스키마에 정의된 데이터 구조를 사용하거나 이에 종속되는 경우 다음 단계를 실행하세요.
- 스키마 참조 추가를 클릭합니다.
- 참조 이름 필드에 참조된 스키마의 참조 이름을 입력합니다.
- 주제 목록에서 참조된 스키마가 포함된 주제를 선택합니다.
- 버전 목록에서 참조된 스키마의 버전 번호를 선택합니다.
- 확인을 클릭합니다.
참조된 각 스키마에 대해 이 단계를 반복합니다.
만들기를 클릭합니다.
REST
소프트 삭제된 주제를 복원하려면 schemaRegistries.subjects.versions.create 메서드를 사용합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
-
PROJECT_ID: Google Cloud 프로젝트 ID -
LOCATION: 스키마 레지스트리의 위치 -
REGISTRY_ID: 스키마 레지스트리의 ID -
SUBJECT: 주체 이름 -
SCHEMA_DEFINITION: 스키마 정의가 포함된 문자열입니다.
HTTP 메서드 및 URL:
POST https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT/versions
JSON 요청 본문:
{
"schema": "SCHEMA_DEFINITION"
}
요청을 보내려면 다음 옵션 중 하나를 펼칩니다.
다음과 비슷한 JSON 응답이 표시됩니다.
{
"id": SCHEMA_ID
}