2026-10-12 · 原文发布日
AWS/GCP云费用异常每日检测与审批
免费n8n模板:每天定时从AWS Cost Explorer拉取按服务和区域的日花费(可选叠加BigQuery里的GCP账单导出),用金额、百分比和z-score阈值发现环比异常,并跳过已记录或被忽略的项。对每条异常抓取CloudTrail写事件作上下文,交给gpt-4o-mini推测根因和建议,Slack告警里带“确认正常/忽略7天”按钮,点击经一次性token webhook校验后把决定写回Google Sheets并同步Slack。
原文要点
来源页面将模板列为免费(云服务、模型和消息用量另计),每天9 AM IST运行:从Google Sheets读阈值与既有Anomaly Log;用AWS Cost Explorer GetCostAndUsage取按服务/区域日花费,可选查BigQuery里GCP账单导出并统一结构。按金额、百分比、z-score阈值找环比异常,跳过已见与被ignore抑制的项;先Slack发一条本次汇总。逐异常抓该区域CloudTrail LookupEvents写事件作上下文,交gpt-4o-mini给可能根因和建议;Slack告警含确认正常/忽略7天按钮,点击经一次性token webhook校验后回写Sheets状态与抑制日期,再同步Slack。
这次做成什么
搭一个可审批的费用异常演练:只用AWS合成两天账单验证阈值、去重、按钮回写;GCP分支先关闭,Slack按钮用测试频道,不保证真实节省金额。
准备什么
- AWS凭据需能调用Cost Explorer GetCostAndUsage与CloudTrail LookupEvents;角色信任、资源和区域配置以账号实际策略为准
- Google Sheets含Anomaly Log页和可写OAuth2凭据
- OpenAI凭据gpt-4o-mini与Slack测试频道ID
- 公网可达的cost-anomaly-action webhook base URL
具体怎么做
建日志与阈值
导入原模板,按其注释建立Anomaly Log并配置阈值与测试频道。下方JSON和CSV是本站独立设计的练习结构,不能直接当作原模板配置导入;逐项映射原模板实际字段。先关闭可选GCP分支,选择自己的演练时区。
拉取并统一账单
定时后读取既有异常与抑制记录;AWS Cost Explorer按服务和区域取得日费用,可选GCP分支再读取BigQuery账单导出。把各来源映射到同一练习结构(日期、服务、区域、费用);GCP关闭时不请求BigQuery。
检测与去重
本站金额练习规则为:同服务同区域的日费用增加至少20美元且增幅至少35%时进入候选;实际模板的阈值组合以导入逻辑为准。两天账单仅用于金额和百分比演练,不计算z-score。查既有异常和未到期的忽略记录去重,再核对Slack本轮汇总。
告警、AI解释与审批
按原模板抓该区域CloudTrail写事件,供模型作为可能原因的线索;事件与费用同时发生不证明因果。Slack提供确认正常和忽略7天操作,经一次性token webhook校验后更新Sheets及Slack。验证无效和重复token不会改表;超时策略要单独查看模板实现。
可直接复制的材料
异常检测配置
本站独立设计的练习结构,字段名和组合规则不代表原模板接口;先按模板实际字段映射,勿直接导入。
{
"schedule": "daily 09:00 IST per source; choose your test cron",
"awsEnabled": true,
"gcpEnabled": false,
"currency": "USD",
"minDeltaUsd": 20,
"minPercent": 35,
"ignoreDays": 7,
"slackChannelId": "C0123TEST",
"webhookBaseUrl": "https://n8n.example.invalid/webhook",
"anomalyKeyFormat": "service|region|date"
}Anomaly Log表头CSV
本站合成日志结构;zscore留空表示样本不足,不代表零。列名须与实际模板映射,抑制日期由决策时间计算。
anomaly_key,date,service,region,previous_cost,current_cost,delta_usd,delta_percent,zscore,status,suppress_until,token_used,decided_by,updated_at
AWS Lambda|ap-south-1|2026-10-12,2026-10-12,AWS Lambda,ap-south-1,40.00,78.50,38.50,96.25,,Alerted,,,,
AI根因提示词
本站编写示例;变量表达式需按n8n实际路径调整。
你是云费用值班助手。输入为一条费用异常和CloudTrail写事件。只输出JSON,字段probable_cause、confidence、suggested_actions、evidence_used。只用输入事实;相关事件不证明因果。缺少调用量、账单明细或部署证据时,原因写“尚不能确定”,confidence写low,列出还需核对的资料。建议最多3项,不擅自停止资源。
异常:〈粘贴异常JSON〉
事件:〈粘贴写事件摘要或无事件〉输入与输出示例
本站虚构演示,非真实账单或审批结果;金额仅练习。
输入
本站合成账单:AWS Lambda在ap-south-1由2026-10-11的40.00美元涨到10-12的78.50美元;无既有异常键,只有一次UpdateFunctionConfiguration事件。假定审批时间为10-12,选择忽略7天。对应输出
差额78.50−40.00=38.50美元,增幅38.50÷40.00×100%=96.25%,满足本站练习规则。只有两天数据,z-score不可用。原因仍不能确定;配置写事件只是线索,置信度低,应补查调用量与计费明细。忽略决策的预期记录为Ignored、抑制至2026-10-19;一次性token用后不能再次改表,实际字段名以模板为准。做完检查这些
- 20美元与35%为本站练习阈值,临界值是否入选须与实际模板逻辑核对
- 同一异常重复运行不重复生成告警;被忽略项在配置的抑制期内被跳过
- 两个日费用样本不输出z-score;缺少调用证据时不宣称根因已确定
- 无效或已使用的一次性token不能改动日志;实际超时规则另查模板
容易卡住的地方
- AWS权限缺GetCostAndUsage或LookupEvents会分别失败
- Slack按钮点不通多为webhookBaseUrl非公网
- GCP未启却配置BigQuery表名会引入凭据错误
- z-score样本太少会不稳,阈值是策略不是保证
本站借助AI整理来源事实,独立编写中文操作指南与示例。示例不代表实际运行结果;来源效果尚未由本站独立复现。付费模板与模型、服务费用分别计算。
- 原文标题
- Detect cloud cost anomalies with AWS Cost Explorer, GCP Billing and GPT-4o-mini
- 原作者
- Rahul Joshi
- 原始发布日期
- 2026-10-12T07:36:47.177Z
- 来源
- https://n8n.io/workflows/20793