在 Flashduty On-call
- 进入 Flashduty 控制台,选择 集成中心 → 变更事件
- 选择 阿里云云效 AppStack,填写集成名称
- 如需把变更分派到指定协作空间,在集成的 路由 中按标签(例如
app、environment)配置规则 - 点击 保存,复制生成的 推送地址
在云效 AppStack 中配置
1
新建 Webhook
- 全局 Webhook(对组织下所有应用生效):进入 AppStack 首页,选择 全局设置 → Webhooks,点击 新建 Webhook
- 应用内 Webhook(仅对当前应用生效):进入目标应用,选择 设置 → Webhooks,点击 新建 Webhook
2
填写地址
将 URL 设为 Flashduty 集成的完整推送地址。Secret Token 可留空,Flashduty 通过推送地址中的
integration_key 鉴权,不校验该令牌。3
选择触发事件
在 触发事件 中勾选 部署单 的 状态更新。其他事件(应用、环境、应用编排、变量组、变更、研发阶段)勾选了也不会生成变更,不必勾选。
一条变更是什么
请求体顶层的
id 是每次推送的事件记录 ID,不是部署单 ID,不参与变更标识。
状态映射
以下推送返回成功但不生成变更:
- 部署单以外的事件:应用(App)、环境(Env)、应用编排(AppOrchestration)、变量组(VariableGroup)、变更(ChangeRequest)、研发阶段(ReleaseStageExecution)。变更是代码分支上的开发流程,研发阶段是流水线的运行状态,二者都不是一次部署;通过流水线触发的部署,会由它自己的部署单记录
InvalidParameter,并在错误信息中给出状态值,该部署单之后的其他状态更新不受影响。
变更内容
标签可用于路由和在变更列表中筛选:
环境名称取自部署单中的作业(jobs)。
常见问题
云效重复推送会重复记录吗?
云效重复推送会重复记录吗?
不会。同一部署单的同一状态、同一时间的推送只记录一次;已经结束的部署单,不会被迟到的较早状态重新打开。
推送返回 InvalidParameter 错误?
推送返回 InvalidParameter 错误?
objectAttributes.sn is required:部署单事件中没有部署单标识,请确认推送来自云效 AppStack 的部署单事件unknown objectAttributes.state:出现了未适配的部署单状态,请联系我们time is required/invalid time:推送中缺少事件时间或格式无法识别
为什么没有流水线或代码变更的记录?
为什么没有流水线或代码变更的记录?
当前只记录部署单。云效流水线(Flow)和代码库(Codeup)有各自的事件,不在本集成范围内;流水线中的 AppStack 部署步骤会生成部署单,会被本集成记录。
为什么部署单暂停(SUSPENDED)时变更仍是 Processing?
为什么部署单暂停(SUSPENDED)时变更仍是 Processing?
暂停的部署单没有结束,也没有被撤回,Flashduty 保持其处理中状态,直到出现成功、失败或取消。