スキーマのメッセージを検証する

このドキュメントでは、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. Google Cloud コンソールで、[Pub/Sub スキーマ] ページに移動します。

    スキーマに移動

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

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

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

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

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

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

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

  7. [TEST] をクリックします。

gcloud

  1. Google Cloud コンソールで、「Cloud Shell をアクティブにする」をクリックします。

    Cloud Shell をアクティブにする

    Google Cloud コンソールの下部で Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。

  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: スキーマ定義を含むファイル。

次のステップ