このドキュメントでは、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
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
ユーザー、グループ、ドメイン、サービス アカウントなどのプリンシパルにロールと権限を付与できます。あるプロジェクトにスキーマを作成し、別のプロジェクトにあるトピックにアタッチできます。プロジェクトごとに必要な権限があることを確認します。
スキーマ リビジョンをロールバックする
スキーマをロールバックするには、Google Cloud コンソール、gcloud CLI、Pub/Sub API、または Cloud クライアント ライブラリを使用します。手順は次のとおりです。
Console
Google Cloud コンソールで、[Pub/Sub スキーマ] ページに移動します。
既存のスキーマの名前をクリックします。
スキーマの [スキーマの詳細] ページが開きます。
[Roll back] をクリックします。
[Roll back schema] ダイアログが開きます。
スキーマをロールバックするリビジョンを選択します。
[確認] をクリックして、ロールバック オペレーションを保存します。
新しいリビジョンは、ロールバック オペレーションで指定されたスキーマを使用して作成されます。
[スキーマの詳細] ページで、スキーマの最新バージョンと、ロールバック オペレーションのソースとして選択したバージョンを選択します。
[差分を表示] をクリックします。
2 つのスキーマが同一であることを確認できます。
[使用可能な最後のリビジョン] フィールドを更新すると、トピックを検証するための最後のリビジョンとして作成したスキーマ リビジョンを使用できます。
gcloud
gcloud pubsub schemas rollback SCHEMA_ID \ --revision-id=REVISION_ID
ここで
- REVISION_ID は、ロールバックするリビジョンです。
REST
スキーマをロールバックするには、次のような POST リクエストを送信します。
POST https://pubsub.googleapis.com/v1/projects/PROJECT_ID/schemas/SCHEMA_ID:rollback Authorization: Bearer $(gcloud auth application-default print-access-token) Content-Type: application/json --data @response-body.json
リクエスト本文に次のフィールドを指定します。
{ "revisionId": REVISION_KD }
ここで
- REVISION_KD は、ロールバックするリビジョンの ID です。
レスポンスの本文には、スキーマ リソースの 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 リファレンス ドキュメントをご覧ください。