本文說明如何從結構定義登錄中刪除特定版本的結構定義主體。刪除主體版本的方式有兩種:
虛刪除。將版本標示為已刪除,但會保留版本資訊,且可復原。
永久刪除。永久移除版本和相關資料。
必要角色和權限
如要取得刪除結構定義主體版本所需的權限,請要求管理員授予您父項主體的「Managed Kafka Schema Registry 編輯者 」(roles/managedkafka.schemaRegistryEditor) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
這個預先定義的角色具備刪除結構定義主體版本所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:
所需權限
如要刪除結構定義主體版本,您必須具備下列權限:
-
在父項主體上授予下列權限:
managedkafka.googleapis.com/subjectVersions.delete
如要進一步瞭解預先定義的角色,請參閱「Managed Service for Apache Kafka 預先定義的角色」。
虛刪除結構定義主體版本
以下是軟刪除結構定義主體版本的最佳做法:
確認沒有任何有效製作人或消費者使用您要刪除的結構定義主體版本。
刪除結構定義主體版本後,請監控應用程式,確保應用程式繼續正常運作。
虛刪除功能可讓您復原已刪除的結構定義主體版本,如果您不確定是否要刪除結構定義主體版本,這項功能就非常實用。
如要軟刪除結構定義主體版本,請按照下列步驟操作。
控制台
前往 Google Cloud 控制台的「Schema registries」頁面。
按一下主體所在的結構定義登錄名稱。
在「Subjects in this schema registry」(這個結構定義儲存庫中的主體) 下方,按一下主體名稱。
在「所有版本」清單中,找出要刪除的版本,然後按一下「更多動作」。
按一下「刪除版本」。
在「Delete schema version」(刪除結構定義版本) 視窗中,按一下「Soft delete」(軟刪除)。
輸入
delete確認刪除,然後按一下「Delete」(刪除)。
REST
如要軟刪除結構定義主體版本,請對 projects.locations.schemaRegistries.subjects.versions.delete 方法發出 DELETE 要求。
要求必須使用 Authorization 標頭中的存取權杖進行驗證。如要取得目前應用程式預設憑證的存取權杖,請執行下列指令:
gcloud auth application-default print-access-token。
如要軟刪除結構定義主體版本,請按照下列步驟操作:
如要使用預設環境,請執行下列指令:
DELETE https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT_ID/versions/VERSION_ID Authorization: Bearer $(gcloud auth application-default print-access-token)如要指定情境,請使用下列指令:
DELETE https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/contexts/CONTEXT_ID/subjects/SUBJECT_ID/versions/VERSION_ID Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)
更改下列內容:
- PROJECT_ID:您的 Google Cloud 專案 ID,例如
test-project。 - LOCATION:結構定義登錄所在的 Google Cloud 區域,例如
us-central1。 - REGISTRY_ID:結構定義登錄檔的 ID,例如
test_registry。 - CONTEXT_ID:環境 ID,例如
test_context。 - SUBJECT_ID:主體的 ID,例如
test_subject。 - VERSION_ID:要刪除的主體版本,例如
2或latest。 - SERVICE_ACCOUNT:服務帳戶,例如
test-service-account@test-project.iam.gserviceaccount.com。
如果要求成功,API 會傳回 200 OK 狀態碼和空白的回應本文。
詳情請參閱 projects.locations.schemaRegistries.subjects.versions.delete 方法的說明文件。
實刪除結構定義主體版本
以下是硬性刪除結構定義主體版本的最佳做法:
請確認您有備份或可重新建立結構定義主體版本。
確認沒有任何有效製作人或消費者使用您要刪除的結構定義主體版本。
請務必先在開發或暫存環境中測試刪除結構定義主體版本,再將變更套用至正式環境。
刪除結構定義主體版本後,請監控應用程式,確保應用程式繼續正常運作。
如要永久移除結構定義主體版本,請使用硬刪除。
如要強制刪除結構定義主體版本,請按照下列步驟操作。
控制台
前往 Google Cloud 控制台的「Schema registries」頁面。
按一下主體所在的結構定義登錄名稱。
在「Subjects in this schema registry」(這個結構定義儲存庫中的主體) 下方,按一下主體名稱。
在「所有版本」清單中,找出要刪除的版本,然後按一下「更多動作」。
按一下「刪除版本」。
在「刪除結構定義版本」視窗中,按一下「強制刪除」。
輸入
delete,然後按一下「Delete」(刪除),確認刪除。這項操作會先虛刪除主體版本,再永久刪除。
REST
如要使用 REST API 永久刪除結構定義主體版本,請先軟刪除該版本。軟刪除後,即可進行硬刪除。
如要強制刪除結構定義主體版本,請對 projects.locations.schemaRegistries.subjects.versions.delete 方法發出 DELETE 要求。如要強制刪除結構定義主體版本,請加入 hardDelete=true 查詢參數。
要求必須使用 Authorization 標頭中的存取權杖進行驗證。如要取得目前應用程式預設憑證的存取權杖,請執行下列指令:
gcloud auth application-default print-access-token。
如要強制刪除結構定義主體版本,請按照下列步驟操作:
如要使用預設環境,請執行下列指令:
DELETE https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/subjects/SUBJECT_ID/versions/VERSION_ID?hardDelete=true Authorization: Bearer $(gcloud auth application-default print-access-token)如要指定情境,請使用下列指令:
DELETE https://managedkafka.googleapis.com/v1main/projects/PROJECT_ID/locations/LOCATION/schemaRegistries/REGISTRY_ID/contexts/CONTEXT_ID/subjects/SUBJECT_ID/versions/VERSION_ID?hardDelete=true Authorization: Bearer $(gcloud auth print-access-token --impersonate-service-account=SERVICE_ACCOUNT)
更改下列內容:
- PROJECT_ID:您的 Google Cloud 專案 ID,例如
test-project。 - LOCATION:結構定義登錄所在的 Google Cloud 區域,例如
us-central1。 - REGISTRY_ID:結構定義登錄檔的 ID,例如
test_registry。 - CONTEXT_ID:環境 ID,例如
test_context。 - SUBJECT_ID:主體的 ID,例如
test_subject。 - VERSION_ID:要刪除的主體版本,例如
2或latest。 - SERVICE_ACCOUNT:服務帳戶,例如
test-service-account@test-project.iam.gserviceaccount.com。
如果要求成功,API 會傳回 200 OK 狀態碼和空白的回應本文。
詳情請參閱 projects.locations.schemaRegistries.subjects.versions.delete 方法的說明文件。