You need to enable JavaScript to run this app.
文档中心
存储迁移服务

存储迁移服务

复制全文
下载 pdf
任务回调
任务回调概述
复制全文
下载 pdf
任务回调概述
本文介绍如何通过 API 方式使用任务回调能力。如需在控制台开启任务回调功能,请参考创建迁移任务。​
功能说明​
DMS 任务回调用于在迁移任务状态发生变化时,向您指定的 HTTP/HTTPS 地址发送通知。创建迁移任务时配置 CallbackConfig 并指定关注的任务状态后,DMS 会在任务进入相应状态时异步投递回调。​
任务回调适合以下场景:​
  • 在业务系统中同步迁移任务进度或最终结果。​
  • 在任务成功、失败、暂停等状态发生时触发后续自动化流程。​
  • 通过 CustomParams 在回调中携带业务侧的关联标识。​
  • 查询最近一次回调结果,并对投递失败的回调执行人工重试。​
回调投递为异步操作,不阻塞迁移任务本身。回调投递失败不会改变迁移任务的执行状态。​
约束说明​
​
分类​
说明​
配置约束​
  • 回调配置只能在创建迁移任务时设置,任务创建后暂不支持修改回调地址或订阅状态。​
  • 每个迁移任务只能配置一个 CallbackUrl。​
  • CallbackUrl 仅支持 HTTP 和 HTTPS,生产环境建议使用 HTTPS。​
  • CallbackStates 状态名区分大小写,当前版本使用全大写。​
  • CallbackStatus 为服务端只读字段,客户端传入会被忽略。​
  • CallbackHost 仅用于确有自定义 Host 路由需求的场景。​
  • 不在 CustomParams 中传输 AK、SK、长期 Token 等敏感凭证。​
  • 回调能力不支持飞书、钉钉、企业微信等消息模板,需要由您的回调服务自行适配。​
接收端约束​
  • 回调地址必须在任务执行期间保持可访问。​
  • 接收端应支持 HTTP、POST 和 JSON 请求体。​
  • 接收端应快速返回成功响应,耗时业务应转为异步处理。​
  • 接收端必须基于 task_id + status 或自定义业务键实现幂等。​
  • 不应依赖不同任务状态回调之间的严格到达顺序。​
  • 不应将回调作为查询任务状态的唯一依据;必要时通过任务查询接口进行最终确认。​
  • 当前回调请求不包含由 DMS 定义的签名字段。建议使用 HTTPS,并通过不可预测的回调路径、URL Token 或 CustomParams 中的共享标识校验来源。​
重试约束​
  • DMS 对单次状态回调最多尝试 3 次,失败后间隔约 2 秒再次尝试。​
  • 单次投递的超时时间为 30 秒。​
  • 自动重试耗尽后,CallbackStatus 更新为 Failed。​
  • 人工重试只接受 Failed,或持续超过 5 分钟的 Pending 状态。​
  • 人工重试按任务当前状态重新投递;当前状态仍需包含在 CallbackStates 中,否则不会产生新的通知。​
  • Waiting、活跃的 Pending 和 Success 状态不允许人工重试。​
  • 人工重试接口仅表示已受理,实际投递结果需要再次查询任务。​
权限约束​
Callback 配置随创建任务接口使用相同的 DMS OpenAPI 身份认证方式。调用回调重试接口时有如下约束:​
  • 调用方必须具备对应任务的访问权限。​
  • 普通用户只能操作当前账号下的任务。​
  • 推荐按最小权限原则为调用方授予创建、查询任务和回调重试所需权限。​
具体 IAM Action 和策略示例以 DMS IAM 权限文档为准。​
​
使用流程​
  1. 准备一个可从公网或回调服务网络访问的 HTTP/HTTPS 接口。​
  1. 创建迁移任务时,在 CallbackConfig 中配置回调地址和关注的任务状态。​
  1. DMS 在任务状态命中 CallbackStates 时,向 CallbackUrl 发送 JSON 请求。​
  1. 通过任务查询接口读取 CallbackStatus,确认最近一次投递结果。​
  1. 当 CallbackStatus 为 Failed 时,可调用回调重试接口重新投递。​
性能与可靠性​
​
维度​
说明​
时延​
回调在任务状态持久化后异步触发,不阻塞任务推进;回调到达时间受状态同步、网络质量、接收端响应、自动重试等因素影响,不提供实时到达保证。​
投递语义​
同一 task_id + status 可能在网络超时、接收端报错、人工重试或极端并发下重复投递;接收端必须以幂等方式消费。​
可用性边界​
  • 回调投递失败不会导致迁移任务失败。​
  • CallbackStatus 只保留最近一次结果。​
  • 异常导致的 Pending 状态在超过 5 分钟后可通过重试接口恢复。​
  • 当前未承诺独立于 DMS 的 Callback SLA。​
配额​
Callback 不提供独立的客户可配置并发度或 QPS(每秒查询率)。回调数量取决于任务状态变化次数与 CallbackStates 配置;接收端应按峰值任务量预留容量并做限流削峰。​
​
计费说明​
任务回调功能本身不收取费用,仅收取数据迁移任务和回调端资源费用。具体说明如下:​
  • 迁移任务:创建的包含任务回调功能的数据迁移任务,仍按 DMS 数据迁移服务的既有规则计费,收取请求次数费用和流量费用。​
  • 接收端资源:回调接收端使用的计算、存储、公网流量等,由所使用的云产品按其计费规则计费,不计入 DMS 侧账单。​
说明​
后续若计费策略调整,以官网计费说明为准。​
最佳实践​
  • 使用 HTTPS 回调地址,并定期轮换 URL Token。​
  • 只订阅必要状态,最终结果场景通常只需订阅成功和失败状态。​
  • 使用 task_id + status 作为基础幂等键;如同一状态允许多次业务处理,可结合 CustomParams 中的业务 ID。​
  • 持续查询 CallbackStatus,对 Failed 建立告警并按需调用重试接口。​
  • 保存 DMS API 响应中的 RequestId,便于故障排查。​
​
最近更新时间:2026.08.17 15:49:13
这个页面对您有帮助吗?
有用
有用
无用
无用