スキーマに対してメッセージを検証する

このドキュメントでは、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

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

ユーザー、グループ、ドメイン、サービス アカウントなどのプリンシパルにロールと権限を付与できます。あるプロジェクトにスキーマを作成し、別のプロジェクトにあるトピックにアタッチできます。プロジェクトごとに必要な権限があることを確認します。

スキーマに対してメッセージを検証する

Console

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

    スキーマに移動

    スキーマのリストが表示されます。

  2. 既存のスキーマの [スキーマ ID] をクリックします。

    スキーマの [スキーマの詳細] ページが開きます。

  3. [リビジョン] セクションで、メッセージを検証するリビジョンをクリックします。

  4. [詳細] セクションで、[メッセージのテスト] をクリックします。

  5. [メッセージのテスト] ウィンドウで、[メッセージ エンコード] のタイプを選択します。

  6. [メッセージ] 本文にテスト メッセージを入力します。

  7. [テスト] をクリックします。

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. メッセージをスキーマに対して検証するには、gcloud pubsub schemas validate-message コマンドを使用します。

    gcloud pubsub schemas validate-message --message=MESSAGE \
        --message-encoding=MESSAGE_ENCODING \
        (--schema-name=SCHEMA_NAME | \
        --type=TYPE \
        (--definition=DEFINITION | \
        --definition-file=DEFINITION_FILE))
    

    以下を置き換えます。

    • MESSAGE: スキーマに対して検証するメッセージ

    • MESSAGE_ENCODING: メッセージのエンコード。binary または json のいずれかの値を指定します。

    • SCHEMA_NAME: 既存のスキーマの名前またはフルパス。

    • TYPE: インライン スキーマのタイプ。avro または protocol-buffer のいずれかの値を指定します。

    • DEFINITION: インライン スキーマの定義。

    • DEFINITION_FILE: スキーマ定義を含むファイル。

次のステップ