驗證結構定義的訊息

本文說明如何驗證 Pub/Sub 主題的結構定義。

您可以在建立結構定義資源之前或之後,驗證訊息是否符合特定結構定義。這個步驟可確保在套用結構定義之前,您透過與結構定義相關聯的主題傳送的訊息確實相符。

事前準備

必要角色和權限

如要取得驗證及管理結構定義訊息所需的權限,請要求管理員為您授予專案的 Pub/Sub 編輯者 (roles/pubsub.editor) 身分與存取權管理角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色包含驗證和管理結構定義訊息所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要驗證及管理結構定義訊息,您必須具備下列權限:

  • 建立結構定義: pubsub.schemas.create
  • 將結構定義附加至主題: pubsub.schemas.attach
  • 提交結構定義修訂版本: pubsub.schemas.commit
  • 刪除結構定義或結構定義修訂版本: pubsub.schemas.delete
  • 取得結構定義或結構定義修訂版本: pubsub.schemas.get
  • 清單結構定義: pubsub.schemas.list
  • 列出結構定義修訂版本: pubsub.schemas.listRevisions
  • 回退結構定義: pubsub.schemas.rollback
  • 驗證訊息: pubsub.schemas.validate
  • 取得結構定義的身分與存取權管理政策: pubsub.schemas.getIamPolicy
  • 設定結構定義的 IAM 政策 pubsub.schemas.setIamPolicy

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

您可以將角色和權限授予主體,例如使用者、群組、網域或服務帳戶。您可以在一個專案中建立結構定義,並將其附加至位於其他專案的主題。請確認您具備每個專案的必要權限。

驗證結構定義的訊息

控制台

  1. 在 Google Cloud 控制台中,前往「Pub/Sub 結構定義」頁面。

    前往「結構定義」

    畫面上會顯示結構定義清單。

  2. 按一下現有結構定義的「結構定義 ID」

    結構定義的「Schema details」(結構定義詳細資料) 頁面隨即開啟。

  3. 在「修訂版本」部分,按一下要驗證訊息的修訂版本。

  4. 在「詳細資料」部分,按一下「測試訊息」

  5. 在「Test message」視窗中,選取「Message encoding」類型。

  6. 在「訊息」內文中輸入測試訊息。

  7. 按一下「Test」

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:訊息編碼。請指定下列任一值:binaryjson

    • SCHEMA_NAME:現有結構定義的名稱或完整路徑。

    • TYPE:內嵌結構定義的類型。請指定下列其中一個值:avroprotocol-buffer

    • DEFINITION:內嵌結構定義。

    • DEFINITION_FILE:包含結構定義的檔案。

後續步驟