如何配置Flux并行发送Teams与Slack通知?Power Automate payload设置咨询
问题
需要配置Flux同时向Teams和Slack发送通知:
- 开发者均拥有Teams账号,主要通知推送到名为「FluxCD notifications test/stage」的Teams频道
- 保留Slack通知作为冗余,仅添加少量用户接收
- 已通过Power Automate设置了「收到HTTP请求时」触发器和「在聊天或频道中发布消息」操作,但不确定是否需要配置payload才能正常工作,同时需要获取Teams的webhook端点用于Flux推送
解决方案
一、Teams通知配置(完善Power Automate流程)
必须配置Payload解析
是的,只有配置Payload解析,才能让Flux的通知内容正确映射到Teams消息中。操作步骤:- 打开已创建的Power Automate流程,编辑「收到HTTP请求时」触发器
- 在「请求正文JSON架构」中,导入Flux通知的标准JSON结构(可直接使用官方模板):
{ "type": "object", "properties": { "severity": { "type": "string" }, "reason": { "type": "string" }, "message": { "type": "string" }, "reportURL": { "type": "string" } } } - 保存触发器后,在「在聊天或频道中发布消息」操作里,通过动态内容插入Payload字段,排版成易读格式,示例:
Flux通知({{triggerBody()?['severity']}})
{{triggerBody()?['message']}}
查看详情:{{triggerBody()?['reportURL']}}
获取Teams Webhook端点
保存Power Automate流程后,「收到HTTP请求时」触发器会生成一个HTTP POST URL,这个就是Flux需要的Teams webhook端点,直接复制即可。
二、Slack冗余通知配置
- 创建Slack Webhook
在Slack工作区进入「管理应用」→ 搜索「Incoming Webhooks」→ 添加到目标频道,生成专属Webhook URL。 - 配置接收用户
在Slack频道设置中添加需要接收冗余通知的少量用户,或在Webhook消息模板中通过@用户名指定接收人。
三、Flux统一通知配置
通过Flux的自定义资源同时配置两个通知接收器:
- 定义接收器(Receivers)
apiVersion: notification.toolkit.fluxcd.io/v1beta2 kind: Receiver metadata: name: teams-receiver namespace: flux-system spec: type: generic events: - "*" secretRef: name: teams-webhook --- apiVersion: notification.toolkit.fluxcd.io/v1beta2 kind: Receiver metadata: name: slack-receiver namespace: flux-system spec: type: slack events: - "*" secretRef: name: slack-webhook - 创建Webhook密钥(Secrets)
# 创建Teams Webhook密钥 kubectl create secret generic teams-webhook -n flux-system --from-literal=address="你的Power Automate Webhook URL" # 创建Slack Webhook密钥 kubectl create secret generic slack-webhook -n flux-system --from-literal=address="你的Slack Webhook URL" - 定义通知规则(Alerts)
apiVersion: notification.toolkit.fluxcd.io/v1beta2 kind: Alert metadata: name: flux-teams-notifications namespace: flux-system spec: providerRef: name: teams-receiver eventSeverity: info eventSources: - kind: GitRepository name: "*" - kind: Kustomization name: "*" --- apiVersion: notification.toolkit.fluxcd.io/v1beta2 kind: Alert metadata: name: slack-redundant-alerts namespace: flux-system spec: providerRef: name: slack-receiver eventSeverity: error # 可仅推送错误级通知减少干扰 eventSources: - kind: GitRepository name: "*" - kind: Kustomization name: "*"
内容的提问来源于stack exchange,提问作者woba
相关产品推荐
相关产品推荐

