Pub/Sub 通知

完成 Storage Transfer Service 转移后,您可能需要启动另一项任务,处理转移过程中遇到的错误,或记录发生了转移。Pub/Sub 提供了一个队列,可供您的程序订阅以便在转移完成时接收消息。这样,您就可以重复使用代码,并根据转移状态对后续步骤进行编程。

如需详细了解 Pub/Sub,请参阅什么是 Cloud Pub/Sub

前提条件

在使用此功能之前,请先执行以下操作:

  1. 启用 Pub/Sub API,以便项目接收 Pub/Sub 通知。

    启用该 API

  2. 存在要向其发送通知的 Pub/Sub 主题

  3. 获取与您的 Storage Transfer Service 存储分区所属项目关联的服务账号的电子邮件地址

    1. 向服务账号授予所需 Pub/Sub 主题的 IAM 角色 roles.pubsub.publisher

配置通知设置

要配置 Storage Transfer Service Pub/Sub 通知设置,请使用 Storage Transfer Service transferJobs API 来创建 NotificationConfig 消息。主题会在配置的 Pub/Sub 渠道上接收通知。

NotificationConfig 消息中指定以下内容:

  • 要向其发送通知的 Pub/Sub 主题
  • 消息的格式,"JSON""NONE"
  • 所需的事件类型,对应于已完成的 TransferOperation.Statuses

    • "TRANSFER_OPERATION_SUCCESS"
    • "TRANSFER_OPERATION_FAILED"
    • "TRANSFER_OPERATION_ABORTED"

以下是 NotificationConfig 消息示例:

{
   ...
   "notificationConfig": {
     "pubsubTopic": "projects/project-id/topics/topic-id",
     "eventTypes": ["TRANSFER_OPERATION_SUCCESS"],
     "payloadFormat": "JSON"
   },
   ...
}

替换以下内容:

  • project-id:转移作业的 Google Cloud 项目 ID
  • topic-id:Pub/Sub 主题名称

如需了解详情,请参阅 Storage Transfer Service Pub Sub REST 规范

通知格式

发送到 Pub/Sub 主题的通知由以下两部分组成:

  • 特性:一组键值对,用于描述事件。
  • 载荷:包含已更改对象的元数据的字符串。

特性

特性是指 Storage Transfer Service 发送到 Pub/Sub 主题的所有通知中包含的键值对。无论通知的载荷如何,通知始终包含下列键值对:

如需详细了解 Pub/Sub 消息格式,请参阅 PubsubMessage

属性名称 示例 说明
eventType TRANSFER_OPERATION_SUCCESS TransferOperation 的状态,来自 NotificationConfig.EventType
payloadFormat "JSON" 消息的格式,"JSON""NONE"。来自 NotificationConfig.PayloadFormat
projectId project-3 转移托管项目的 ID。
transferJobName transferJobs/123 转移作业的名称。