驗證訊息是否符合結構定義

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

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

事前準備

必要角色和權限

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

這個預先定義的角色具備驗證及管理結構定義訊息所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

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

  • 建立結構定義: 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 schemas」(Pub/Sub 結構定義) 頁面。

    前往「結構定義」

    系統會顯示結構定義清單。

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

    系統會開啟該結構定義的「結構定義詳細資料」頁面。

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

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

  5. 在「測試訊息」視窗中,選取「訊息編碼」類型。

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

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

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

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

    • DEFINITION:內嵌結構定義。

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

後續步驟