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

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

    スキーマに移動

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

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

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

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

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

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

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

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

gcloud

  1. コンソールで Cloud Shell をアクティブにします。 Cloud de Confiance

    Cloud Shell をアクティブにする

    コンソールの下部にある Cloud de Confiance 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: スキーマ定義を含むファイル。

次のステップ