Skip to main content
版本要求:此功能需要 On-call 标准版及以上订阅。了解更多
通过云效应用交付 AppStack 的 Webhook,将部署单(ChangeOrder)的状态更新同步到 Flashduty On-call。每个部署单对应一条 Flashduty 变更,随部署单从准备、运行到结束更新状态。部署、扩缩容、回滚、销毁四种类型的部署单都会记录。

在 Flashduty On-call


  1. 进入 Flashduty 控制台,选择 集成中心 → 变更事件
  2. 选择 阿里云云效 AppStack,填写集成名称
  3. 如需把变更分派到指定协作空间,在集成的 路由 中按标签(例如 app、environment)配置规则
  4. 点击 保存,复制生成的 推送地址

在云效 AppStack 中配置


1

新建 Webhook

  • 全局 Webhook(对组织下所有应用生效):进入 AppStack 首页,选择 全局设置 → Webhooks,点击 新建 Webhook
  • 应用内 Webhook(仅对当前应用生效):进入目标应用,选择 设置 → Webhooks,点击 新建 Webhook
2

填写地址

将 URL 设为 Flashduty 集成的完整推送地址。Secret Token 可留空,Flashduty 通过推送地址中的 integration_key 鉴权,不校验该令牌。
3

选择触发事件

在 触发事件 中勾选 部署单 的 状态更新。其他事件(应用、环境、应用编排、变量组、变更、研发阶段)勾选了也不会生成变更,不必勾选。
云效的 测试 Webhook 按钮会发送一条模拟的“新建应用”事件,Flashduty 返回成功但不生成变更,只用于确认地址可达。要看到变更记录,需要实际执行一次部署。

一条变更是什么


请求体顶层的 id 是每次推送的事件记录 ID,不是部署单 ID,不参与变更标识。

状态映射


以下推送返回成功但不生成变更:
  • 部署单以外的事件:应用(App)、环境(Env)、应用编排(AppOrchestration)、变量组(VariableGroup)、变更(ChangeRequest)、研发阶段(ReleaseStageExecution)。变更是代码分支上的开发流程,研发阶段是流水线的运行状态,二者都不是一次部署;通过流水线触发的部署,会由它自己的部署单记录
云效文档列出的部署单状态以上七种。出现其他状态时返回 InvalidParameter,并在错误信息中给出状态值,该部署单之后的其他状态更新不受影响。

变更内容


标签可用于路由和在变更列表中筛选: 环境名称取自部署单中的作业(jobs)。

常见问题


不会。同一部署单的同一状态、同一时间的推送只记录一次;已经结束的部署单,不会被迟到的较早状态重新打开。
  • objectAttributes.sn is required:部署单事件中没有部署单标识,请确认推送来自云效 AppStack 的部署单事件
  • unknown objectAttributes.state:出现了未适配的部署单状态,请联系我们
  • time is required / invalid time:推送中缺少事件时间或格式无法识别
当前只记录部署单。云效流水线(Flow)和代码库(Codeup)有各自的事件,不在本集成范围内;流水线中的 AppStack 部署步骤会生成部署单,会被本集成记录。
暂停的部署单没有结束,也没有被撤回,Flashduty 保持其处理中状态,直到出现成功、失败或取消。