验证消息是否符合架构要求

本文档介绍了如何验证 Pub/Sub 主题的架构。

您可以在创建架构资源之前或之后,验证消息是否符合特定架构。此步骤可确保在应用架构之前,您打算通过与架构关联的主题发送的消息确实会匹配。

准备工作

所需的角色和权限

如需获得验证架构消息和管理架构消息所需的权限,请让您的管理员为您授予项目的 Pub/Sub Editor (roles/pubsub.editor) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含验证架构消息和管理架构消息所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需验证架构消息并进行管理,您需要具备以下权限:

  • 创建架构: 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
  • 获取架构的 IAM 政策: pubsub.schemas.getIamPolicy
  • 为架构配置 IAM 政策 pubsub.schemas.setIamPolicy

您也可以使用自定义角色或其他预定义角色来获取这些权限。

您可以向主账号(例如用户、群组、网域或服务账号)授予角色和权限。您可以在一个项目中创建架构,并将其附加到位于其他项目中的主题。确保您对每个项目拥有所需的权限。

验证消息是否符合架构要求

控制台

  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:消息的编码。请指定以下某个值:binaryjson

    • SCHEMA_NAME:现有架构的名称或完整路径。

    • TYPE:内嵌架构的类型。指定以下某个值:avroprotocol-buffer

    • DEFINITION:内嵌架构定义。

    • DEFINITION_FILE:包含架构定义的文件。

后续步骤