完成 Storage Transfer Service 转移后,您可能需要启动另一项任务,处理转移过程中遇到的错误,或记录发生了转移。Pub/Sub 提供了一个队列,可供您的程序订阅以便在转移完成时接收消息。这样,您就可以重复使用代码,并根据转移状态对后续步骤进行编程。
如需详细了解 Pub/Sub,请参阅什么是 Cloud Pub/Sub
前提条件
在使用此功能之前,请先执行以下操作:
启用 Pub/Sub API,以便项目接收 Pub/Sub 通知。
配置通知设置
要配置 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 项目 IDtopic-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 |
转移作业的名称。 |