このドキュメントでは、スキーマ レジストリからスキーマ サブジェクトの特定のバージョンを削除する方法について説明します。サブジェクト バージョンを削除する方法は 2 つあります。
削除(復元可能)。バージョンを削除済みとしてマークしますが、その情報は保持され、復元できます。
完全に削除。バージョンとその関連データを完全に削除します。
必要なロールと権限
スキーマ サブジェクト バージョンを削除するために必要な権限を取得するには、親サブジェクトに対する Managed Kafka Schema Registry 編集者 (roles/managedkafka.schemaRegistryEditor)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
この事前定義ロールには、スキーマ サブジェクト バージョンの削除に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
スキーマ サブジェクト バージョンを削除するには、次の権限が必要です。
-
親サブジェクトに次の権限を付与します。
managedkafka.googleapis.com/subjectVersions.delete
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
事前定義ロールの詳細については、Managed Service for Apache Kafka の事前定義ロールをご覧ください。
スキーマ サブジェクト バージョンを削除(復元可能)する
スキーマ サブジェクト バージョンを削除する際のベスト プラクティスを以下に示します。
削除するスキーマ サブジェクト バージョンを使用しているアクティブなプロデューサーまたはコンシューマーがないことを確認します。
スキーマ サブジェクト バージョンを削除したら、アプリケーションをモニタリングして、アプリケーションが引き続き想定どおりに機能することを確認します。
削除済み(復元可能)にすると、削除されたスキーマ サブジェクト バージョンを復元できます。これは、スキーマ サブジェクト バージョンの削除に不安がある場合に便利です。
スキーマ サブジェクトのバージョンを削除する手順は次のとおりです。
コンソール
Google Cloud コンソールで、[スキーマ レジストリ] ページに移動します。
サブジェクトが配置されているスキーマ レジストリの名前をクリックします。
[このスキーマ レジストリのサブジェクト] で、サブジェクトの名前をクリックします。
[すべてのバージョン] リストで、削除するバージョンを見つけて [その他の操作] をクリックします。
[バージョンを削除] をクリックします。
[スキーマ バージョンの削除] ウィンドウで、[削除(復元可能)] をクリックします。
「
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 コンソールで、[スキーマ レジストリ] ページに移動します。
サブジェクトが配置されているスキーマ レジストリの名前をクリックします。
[このスキーマ レジストリのサブジェクト] で、サブジェクトの名前をクリックします。
[すべてのバージョン] リストで、削除するバージョンを見つけて [その他の操作] をクリックします。
[バージョンを削除] をクリックします。
[スキーマ バージョンの削除] ウィンドウで、[完全削除] をクリックします。
「
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 メソッドのドキュメントをご覧ください。