このドキュメントでは、Pub/Sub トピックのスキーマ リビジョンを削除する方法について説明します。スキーマの削除オペレーションでは、スキーマに関連付けられているすべてのリビジョンも削除されます。
準備
- Pub/Sub スキーマの仕組みを理解する。
- スキーマの作成
必要なロールと権限
スキーマ リビジョンを削除および管理するために必要な権限を取得するには、管理者にプロジェクトに対する Pub/Sub 編集者 (roles/pubsub.editor
) IAM ロールを付与するよう依頼してください。ロールの付与については、プロジェクト、フォルダ、組織へのアクセスを管理するをご覧ください。
この事前定義ロールには、スキーマのリビジョンの削除と管理に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
スキーマ リビジョンを削除して管理するには、次の権限が必要です。
-
スキーマを作成します:
pubsub.schemas.create
-
スキーマをトピックに添付します:
pubsub.schemas.attach
-
スキーマのリビジョンを commit します:
pubsub.schemas.commit
-
スキーマまたはスキーマ リビジョンを削除します:
pubsub.schemas.delete
-
スキーマまたはスキーマのリビジョンを取得します:
pubsub.schemas.get
-
スキーマを一覧表示します:
pubsub.schemas.list
-
スキーマのリビジョンを一覧表示します:
pubsub.schemas.listRevisions
-
スキーマをロールバックします:
pubsub.schemas.rollback
-
メッセージを検証します:
pubsub.schemas.validate
-
スキーマの IAM ポリシーを取得します:
pubsub.schemas.getIamPolicy
-
スキーマの IAM ポリシーを構成します:
pubsub.schemas.setIamPolicy
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
ユーザー、グループ、ドメイン、サービス アカウントなどのプリンシパルにロールと権限を付与できます。あるプロジェクトにスキーマを作成し、別のプロジェクトにあるトピックにアタッチできます。プロジェクトごとに必要な権限があることを確認します。
スキーマ リビジョンを削除する
スキーマ リビジョンを削除するための重要なガイドラインは次のとおりです。
スキーマから 1 つ以上のスキーマ リビジョンを削除できます。
スキーマのリビジョンが 1 つしかない場合、そのリビジョンを削除することはできません。代わりに、スキーマを削除してください。
スキーマの削除オペレーションでは、スキーマに関連付けられているすべてのリビジョンも削除されます。
スキーマを削除すると、そのスキーマに関連付けられているトピックへのメッセージのパブリッシュ試行は失敗します。
スキーマ リビジョンを削除し、それがトピックの最初のリビジョンとして指定されている場合、代わりに次のリビジョンが検証に使用されます。
削除されたスキーマ リビジョンがトピックの最後のリビジョンとして指定されている場合、代わりに前のスキーマ リビジョンが検証に使用されます。
削除されたスキーマ リビジョンが、検証用に指定されたトピックのリビジョン範囲内にある場合、そのリビジョンはスキップされます。
スキーマのリビジョンを削除するには、Google Cloud コンソール、gcloud CLI、Pub/Sub API、Cloud クライアント ライブラリを使用します。
Console
Google Cloud コンソールで、[Pub/Sub スキーマ] ページに移動します。
既存のスキーマの名前をクリックします。
スキーマの [スキーマの詳細] ページが開きます。
削除するリビジョンを選択します。複数のリビジョンを選択することもできます。
[リビジョンを削除] をクリックします。
削除の操作を確定します。
gcloud
gcloud pubsub schemas delete-revision SCHEMA_NAME@REVISION_ID
ここで
- REVISION_ID は、ロールバックするリビジョンです。
REST
スキーマ リビジョンを削除するには、次のように DELETE リクエストを送信します。
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID@REVISION_ID:deleteRevision Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
レスポンスの本文には、削除されたスキーマ リソースの JSON 表現を含める必要があります。
C++
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の C++ の設定手順を実施してください。詳細については、Pub/Sub C++ API リファレンス ドキュメントをご覧ください。
Go
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Go の設定手順を実施してください。詳細については、Pub/Sub Go API リファレンス ドキュメントをご覧ください。
Java
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Java の設定手順を実施してください。詳細については、Pub/Sub Java API リファレンス ドキュメントをご覧ください。
Python
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Python の設定手順を実施してください。詳細については、Pub/Sub Python API リファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。
Node.js
このサンプルを試す前に、クイックスタート: クライアント ライブラリの使用の Node.js の設定手順を実施してください。詳細については、Pub/Sub Node.js API リファレンス ドキュメントをご覧ください。