スキーマ サブジェクト バージョンを削除する

このドキュメントでは、スキーマ レジストリからスキーマ サブジェクトの特定のバージョンを削除する方法について説明します。サブジェクト バージョンを削除する方法は 2 つあります。

  • 削除(復元可能)。バージョンを削除済みとしてマークしますが、その情報は保持され、復元できます。

  • 完全に削除。バージョンとその関連データを完全に削除します。

必要なロールと権限

スキーマ サブジェクト バージョンを削除するために必要な権限を取得するには、親サブジェクトに対する Managed Kafka Schema Registry 編集者 roles/managedkafka.schemaRegistryEditor)IAM ロールの付与を管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

この事前定義ロールには、スキーマ サブジェクト バージョンの削除に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。

必要な権限

スキーマ サブジェクト バージョンを削除するには、次の権限が必要です。

  • 親サブジェクトに次の権限を付与します。 managedkafka.googleapis.com/subjectVersions.delete

カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。

事前定義ロールの詳細については、Managed Service for Apache Kafka の事前定義ロールをご覧ください。

スキーマ サブジェクト バージョンを削除(復元可能)する

スキーマ サブジェクト バージョンを削除する際のベスト プラクティスを以下に示します。

  • 削除するスキーマ サブジェクト バージョンを使用しているアクティブなプロデューサーまたはコンシューマーがないことを確認します。

  • スキーマ サブジェクト バージョンを削除したら、アプリケーションをモニタリングして、アプリケーションが引き続き想定どおりに機能することを確認します。

  • 削除済み(復元可能)にすると、削除されたスキーマ サブジェクト バージョンを復元できます。これは、スキーマ サブジェクト バージョンの削除に不安がある場合に便利です。

スキーマ サブジェクトのバージョンを削除する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[スキーマ レジストリ] ページに移動します。

    スキーマ レジストリに移動

  2. サブジェクトが配置されているスキーマ レジストリの名前をクリックします。

  3. [このスキーマ レジストリのサブジェクト] で、サブジェクトの名前をクリックします。

  4. [すべてのバージョン] リストで、削除するバージョンを見つけて [その他の操作] をクリックします。

  5. [バージョンを削除] をクリックします。

  6. [スキーマ バージョンの削除] ウィンドウで、[削除(復元可能)] をクリックします。

  7. 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: 削除するサブジェクトのバージョン(2latest など)。
  • SERVICE_ACCOUNT: サービス アカウント(test-service-account@test-project.iam.gserviceaccount.com など)。

リクエストが成功すると、API は 200 OK ステータス コードと空のレスポンス本文を返します。

詳細については、projects.locations.schemaRegistries.subjects.versions.delete メソッドのドキュメントをご覧ください。

スキーマ サブジェクト バージョンを完全に削除する

スキーマ サブジェクト バージョンを完全に削除する際のベスト プラクティスを以下に示します。

  • 必要に応じて、バックアップまたはスキーマ サブジェクト バージョンを再作成する方法があることを確認します。

  • 削除するスキーマ サブジェクト バージョンを使用しているアクティブなプロデューサーまたはコンシューマーがないことを確認します。

  • 本番環境に変更を適用する前に、開発環境またはステージング環境でスキーマ サブジェクト バージョンの削除を必ずテストしてください。

  • スキーマ サブジェクト バージョンを削除したら、アプリケーションをモニタリングして、アプリケーションが引き続き想定どおりに機能することを確認します。

  • スキーマ サブジェクトのバージョンを完全に削除する必要がある場合は、完全削除を使用します。

スキーマ サブジェクトのバージョンを完全に削除する手順は次のとおりです。

コンソール

  1. Google Cloud コンソールで、[スキーマ レジストリ] ページに移動します。

    スキーマ レジストリに移動

  2. サブジェクトが配置されているスキーマ レジストリの名前をクリックします。

  3. [このスキーマ レジストリのサブジェクト] で、サブジェクトの名前をクリックします。

  4. [すべてのバージョン] リストで、削除するバージョンを見つけて [その他の操作] をクリックします。

  5. [バージョンを削除] をクリックします。

  6. [スキーマ バージョンの削除] ウィンドウで、[完全削除] をクリックします。

  7. 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: 削除するサブジェクトのバージョン(2latest など)。
  • SERVICE_ACCOUNT: サービス アカウント(test-service-account@test-project.iam.gserviceaccount.com など)。

リクエストが成功すると、API は 200 OK ステータス コードと空のレスポンス本文を返します。

詳細については、projects.locations.schemaRegistries.subjects.versions.delete メソッドのドキュメントをご覧ください。

次のステップ

Apache Kafka® は、Apache Software Foundation または米国その他の諸国における関連会社の商標です。