配置 Pub/Sub 通知

您可以使用 Pub/Sub 接收有关 Google Cloud 代码库更改的通知。这些通知会在用户创建新代码库、删除代码库或将更改推送到现有代码库时通知您。您可以选择配置特定代码库或整个 Google Cloud 项目的通知。

要了解有关 Pub/Sub 的更多信息,请参见 什么是 Pub/Sub?

准备工作

创建 Pub/Sub 主题

对于您要为其通知的每个 Cloud Source Repositories 项目或代码库,您需要创建一个 Pub/Sub 主题。您可以创建 使用 Google Cloud 控制台或 gcloud 命令行指定主题 工具。

创建主题时,您需要使用代码库的限定 URI。 限定 URI 的格式如下:

projects/[PROJECT_ID]/topics/[TOPIC_NAME]

其中:

  • [PROJECT_ID] 是您的 Google Cloud 项目 ID。
  • [TOPIC_NAME] 是主题的名称。

若要创建主题,请按照下列步骤操作。

控制台

  1. 在 Google Cloud 控制台中,进入 Pub/Sub 主题页面。

    转到“主题”页面

  2. 点击创建主题

  3. 在主题名称中输入 URI:

    projects/[PROJECT_ID]/topics/[TOPIC_NAME]
    

    其中:

    • [PROJECT_ID] 是您的 Google Cloud 项目 ID。
    • [TOPIC_NAME] 是主题的名称。
  4. 点击创建

    主题详细信息 页面打开。

gcloud

在终端窗口中,运行以下命令:

gcloud pubsub topics create projects/[PROJECT_ID]/topics/[TOPIC_NAME]

其中:

  • [PROJECT_ID] 是您的 Google Cloud 项目 ID。
  • [TOPIC_NAME] 是主题的名称。

如需详细了解 gcloud pubsub topics 命令,请参阅 topics 文档

创建 Pub/Sub 订阅

要接收发布到主题的事件,您需要创建 Pub/Sub 订阅

订阅者应用 接收来自代码库主题的消息订阅者可以通过发送通知或触发构建来响应您的代码库事件。

若要创建订阅,请按照下列步骤操作。

控制台

  1. 在 Google Cloud 控制台中,进入 Pub/Sub 主题页面。

    转到“主题”页面

  2. 点击项目主题的名称。

  3. 点击创建订阅

    将打开 向主题添加订阅 的页面。

  4. 输入订阅名称:

    projects/[PROJECT_ID]/subscriptions/[SUBSCRIPTION_NAME]
    

    其中:

    • [PROJECT_ID] 是您的 Google Cloud 项目 ID。
    • [SUBSCRIPTION_NAME] 是 Pub/Sub 订阅的名称。
  5. “传送类型” 的设置保留为 拉取

  6. 点击创建

gcloud

在终端窗口中,运行以下命令:

gcloud pubsub subscriptions create [SUBSCRIPTION_NAME] --topic=[TOPIC_NAME]

其中:

  • [SUBSCRIPTION_NAME] 是 Pub/Sub 订阅的名称。
  • [TOPIC_NAME] 是主题的名称。

如需详细了解 gcloud pubsub subscriptions 命令,请参阅 subscriptions 文档

添加主题

您可以将 Pub/Sub 主题与 Google Cloud 项目或代码库。

要将主题与整个项目关联,请输入以下命令:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

其中:

  • [TOPIC_NAME]是 Pub/Sub 主题的名称。
  • [SERVICE_ACCOUNT_NAME] 是您的 Cloud Build 服务账号的名称。

要将主题与特定代码库相关联,请输入以下命令:

gcloud source repos update [REPOSITORY_NAME] --add-topic=[TOPIC_NAME] --service-account=[SERVICE_ACCOUNT_NAME]

其中:

  • [REPOSITORY_NAME] 是您的 Google Cloud 代码库的名称。
  • [TOPIC_NAME] 是 Pub/Sub 主题的名称。
  • [SERVICE_ACCOUNT_NAME] 是您的 Cloud Build 服务账号的名称。

服务账号必须与代码库位于同一项目中,并且必须具有 pubsub.topics.publish 权限才能发布有关指定主题的消息。您必须对服务账号拥有 iam.serviceAccounts.actAs 权限。如果未指定服务账号,则默认为 Compute Engine 默认服务账号。

移除主题

您可以移除项目或代码库与 Pub/Sub 主题。

要从整个项目中移除主题,请输入以下命令:

gcloud source project-configs update --remove-topic=[TOPIC_NAME]

要从特定代码库中移除主题,请输入以下命令:

gcloud source repos update [REPOSITORY_NAME] --remove-topic=[TOPIC_NAME]

设置主题格式

Cloud Source Repositories 的通知可以使用 JSON 或 Protocol Buffers 格式。要设置主题的格式,可以在添加主题时使用 --message-format 参数:

gcloud source project-configs update --add-topic=[TOPIC_NAME] --message-format=[json|protobuf]

您也可以使用 set-format 命令:

gcloud source project-configs update --update-topic=[TOPIC_NAME] --message-format=[json|protobuf]

后续步骤