首页/系统与基础设施/自动化运维速查/报表的定时投递与订阅
巡检与自助运维60 条

报表的定时投递与订阅

定时投递的关键是把「生成」与「投递」解耦,用订阅模型描述谁收什么报表、按什么周期、走什么渠道;每次投递要幂等去重、带回执、可单独补发,并且严格按订阅人的数据范围裁剪内容。

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌​​‌​​​‌‌‌​‌​‌​‌‌​‌‌​​​‌‌​​‌​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​‌‌​​​‌‌​‌​​‌​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌​‌​‌​‌‌​​​‌​​‌‌‌​​‌‌​‌‌​​​‌‌​‌‌‌​​‌​​‌‌​‌​​‌​‌‌‌​​​​​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​

投递独立于生成

把投递写进生成脚本会带来两个后果:收件人变化要改脚本,投递失败要整批重跑。正确结构是生成一次成品,订阅层按「订阅人、报表、周期、渠道、格式、数据范围」决定发给谁。投递本身要幂等去重、要求回执,失败可对单个对象补发,并且内容必须按订阅人权限裁剪——多租户场景把全量报表群发出去就是一次数据泄露。

基本信息

订阅要素订阅人、报表、周期、渠道、格式、数据范围
常见渠道邮件、对象存储链接、消息通知、接口回推
关键控制幂等去重、回执确认、重试上限、退订管理
权限裁剪按订阅人可见范围生成切片,不群发全量
留痕要求投递记录可查,支持按对象补发与追责

典型使用场景

  • 周期报表分发:月报按订阅关系在固定时点发出,收件人可自助增减
  • 多租户切片投递:每个租户只收到自身范围的数据切片
  • 大文件分享:成品上传对象存储后发鉴权链接,避免邮件附件超限
  • 失败补发:个别渠道失败时只补发失败对象,不打扰已成功收件人
  • 审计归档:归档投递记录,能回答「某周期谁收到了什么」

投递环节要求与失败表现

环节要求失败表现
订阅解析按数据范围生成个人化版本群发全量数据,形成越权泄露
成品生成同幂等键覆盖,不产生第二版收件人收到两个口径的同一报表
投递执行带回执,失败有限次重试重复投递打扰收件人或静默不达
失败补发按对象粒度补发整批重发,已成功对象被重复打扰
归档审计成品与投递记录留存争议时无法证明发过什么内容

订阅关系定义

订阅关系定义
subscriptions:
  - report_id: res-usage-monthly
    period: monthly
    channel: email          # 渠道可替换,报表本身不感知渠道
    format: pdf
    scope: tenant_self      # 只投递订阅人所属租户切片,禁止全量
    send_at: 每月 3 日 09:00  # 生成完成后再投递,避免发出空报表
    idempotency_key: report_id + period + recipient   # 防止重复投递
    on_failure: retry_3_then_alert                    # 重试有上限,超限转人工
link_policy: 大文件用鉴权链接,有效期与可下载次数受限  # 链接外泄风险可控
投递时间要晚于生成完成时间,并留出余量。把投递挂在固定时刻而不检查成品是否就绪,就会周期性发出空报表或半成品。
收件人范围等同于数据授权范围。多租户平台上按「全部订阅人收到同一份全量报表」实现最省事,但这是最典型的越权泄露路径。

易错点

  • 把投递逻辑写在生成脚本里:收件人变化需改代码,投递失败就整批重跑
  • 按固定时刻投递而不校验成品:周期性发出空报表或半成品
  • 没有幂等键与回执:同一报表重复发送,或者静默未达却无人知晓
  • 群发全量报表给所有订阅人:多租户场景直接构成越权数据泄露

数据来源与参考

  • ITIL 4 服务管理实践:度量和报告
  • NIST SP 800-53 Rev.5 访问控制(AC)与审计与问责(AU)控制族
  • ISO/IEC 27001:2022 信息安全管理体系要求(信息传输)

整理校对:其其网ICT文档中心 · 本页地址:docs.qiqicto.com/automation/report-scheduled-delivery-subscription.html

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌​​‌​‌‌‌‌​‌‌​​​​‌​‌‌‌​‌​‌​‌‌‌​‌​​​‌‌​‌‌‌‌​‌‌​‌‌​‌​‌‌​​​​‌​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌‌​‌‌‌​​‌​​‌‌​​‌​‌​‌‌‌​​​​​‌‌​‌‌‌‌​‌‌‌​​‌​​‌‌‌​‌​​​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌​​​‌‌​‌‌​‌​​​​‌‌​​‌​‌​‌‌​​‌​​​‌‌‌​‌​‌​‌‌​‌‌​​​‌‌​​‌​‌​‌‌​​‌​​​​‌​‌‌​‌​‌‌​​‌​​​‌‌​​‌​‌​‌‌​‌‌​​​‌‌​‌​​‌​‌‌‌​‌‌​​‌‌​​‌​‌​‌‌‌​​‌​​‌‌‌‌​​‌​​‌​‌‌​‌​‌‌‌​​‌‌​‌‌‌​‌​‌​‌‌​​​‌​​‌‌‌​​‌‌​‌‌​​​‌‌​‌‌‌​​‌​​‌‌​‌​​‌​‌‌‌​​​​​‌‌‌​‌​​​‌‌​‌​​‌​‌‌​‌‌‌‌​‌‌​‌‌‌​​​‌​‌‌‌​​‌‌​‌​​​​‌‌‌​‌​​​‌‌​‌‌​‌​‌‌​‌‌​​