Communitygithub.com

dautovri/cloud-cost-agent

为 AWS、GCP 和 Azure 提供原生 FinOps 智能体技能,在 Claude Code、Cursor、Gemini 及任何支持 SKILL.md 的智能体内发现云成本节约机会。

cloud-cost-agent 是什么?

Cloud Cost Agent 是一款面向开发者的 FinOps 技能,可直接在流行的 AI 编码助手(如 Claude Code、Cursor 和 Gemini)中实现云成本优化。它支持 AWS、GCP 和 Azure 三大主流云提供商,利用各平台原生 CLI 和推荐引擎(如 AWS Cost Optimization Hub、Compute Optimizer、GCP Recommender 和 Azure Advisor)提供只读的成本分析和优化建议。技能内置安全最佳实践,包括只读优先、分页处理、敏感操作需显式批准等,确保安全合规。它提供全面的审计流程指南,涵盖预检认证、成本与使用分析、资源调整、承诺折扣等多个环节,并输出按优先级的行动列表,帮助用户快速高效地节省云成本。

兼容平台✓Claude Code~Codex CLI✓Cursor✓Gemini CLI
npx skills add dautovri/cloud-cost-agent

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Cloud Cost Agent (AWS + GCP + Azure)

统一智能体技能,用于原生云成本优化,覆盖三大主流云提供商。

要求:已配置 AWS CLI v2、gcloud 和/或 Azure CLI,并对账单/建议程序/顾问服务具有读取权限。部分数据源需要一次性启用:AWS Compute Optimizer 和 Cost Optimization Hub(需注册),GCP Recommender(需启用 API,约需 24-48 小时数据)。jq 用于部分 GCP 过滤器。

核心规则:始终使用各提供商官方的 CLI 和推荐引擎。禁止使用第三方工具。

安全与最佳实践(所有提供商)

  • 只读优先。 未经明确向用户引用准确命令并获得批准,切勿运行任何变更命令(aws ec2 terminate-instances/stop-instances、gcloud compute instances delete、az vm delete/deallocate、任何 purchase/create/modify)。
  • 始终使用提供商认证(--profile、gcloud --project、az account set)。
  • 使用 --query / --format json / -o json 获得整洁的输出。
  • 处理分页。 这些 API 会对结果进行分页。在报告总数之前,务必将每一页聚合起来——跟踪 NextToken/nextPageToken,或谨慎使用 --no-paginate/--max-items(AWS)和 --page-size/--limit(gcloud)。单页读取会导致总数错误。
  • 对所有源自云的值进行引号/转义处理。 来自 API 输出的资源名称、标签和 ID 可能包含 shell 元字符。切勿在没有引号的情况下将它们插入到另一个 shell 命令中。
  • 注意 API 成本和循环。 aws ce(Cost Explorer)每次请求收费约 $0.01。不要循环调用 Cost Explorer;在会话中缓存结果,每次审计限制在几次调用。
  • 优先级:最高预估节省 → 最低工作量。
  • 优先选择快速成果(删除闲置资源、降级到更小的规格、在明确情况下启用承诺使用)。

便携日期辅助

BSD/macOS 和 GNU/Linux 的 date 命令不同。一次性、可移植地计算时间窗口,然后重用 $START/$END:

START=$(date -u -d '30 days ago' +%Y-%m-%d 2>/dev/null || date -u -v-30d +%Y-%m-%d)
END=$(date -u +%Y-%m-%d)

(或者直接让智能体插入字面上的 YYYY-MM-DD 日期。)

使用方法

告诉智能体提供商和目标。示例:

  • audit AWS last 30 days
  • find quick wins on GCP and Azure
  • rightsizing recommendations for all clouds

1. 预检与认证

AWS

aws sts get-caller-identity
aws ce get-cost-and-usage \
  --time-period Start=$START,End=$END \
  --granularity MONTHLY --metrics "UnblendedCost"

一次性注册(第 2 节和第 4 节需要):

aws compute-optimizer get-enrollment-status
aws compute-optimizer update-enrollment-status --status Active      # 选择加入
aws cost-optimization-hub list-enrollment-statuses --region us-east-1
aws cost-optimization-hub update-enrollment-status --status Active --region us-east-1

GCP

gcloud auth list
gcloud config set project YOUR_PROJECT
gcloud billing accounts list

Azure

az account show
az account set --subscription "SUB_ID"

2. 集中/高影响推荐

AWS — Cost Optimization Hub(最佳聚合器)

COH 是一个全局服务,仅在 us-east-1 区域可访问,并且需要注册(参见预检)。

aws cost-optimization-hub list-recommendations \
  --region us-east-1 \
  --filter '{"implementationEfforts":["VeryLow","Low"]}' \
  --query 'items[?estimatedMonthlySavings > `10`] | sort_by(@, &estimatedMonthlySavings) | reverse(@)' \
  --output json

有效的 implementationEfforts 值:VeryLow | Low | Medium | High | VeryHigh。

GCP — Recommender(主要来源)

--location 是必需的。VM/闲置推荐程序是区域性的(例如 us-central1-a);需要枚举你使用的可用区。基于支出的承诺推荐程序是**global** 的,并限定在账单账户范围内。

# VM 大小调整(区域性 — 每个可用区重复执行)
gcloud recommender recommendations list \
  --recommender=google.compute.instance.MachineTypeRecommender \
  --project=YOUR_PROJECT --location=us-central1-a --format=json

# 闲置 VM(区域性 — 每个可用区重复执行)
gcloud recommender recommendations list \
  --recommender=google.compute.instance.IdleResourceRecommender \
  --project=YOUR_PROJECT --location=us-central1-a \
  --format="table(description, primaryImpact.costProjection.cost.units, stateInfo.state)"

# 承诺使用折扣(全局,限定账单账户)
gcloud recommender recommendations list \
  --recommender=google.cloudbilling.commitment.SpendBasedCommitmentRecommender \
  --billing-account=BILLING_ACCOUNT_ID --location=global --format=json

其他成本推荐程序:google.compute.disk.IdleResourceRecommender(闲置磁盘),google.compute.address.IdleResourceRecommender(闲置 IP),google.compute.image.IdleResourceRecommender(闲置镜像),google.compute.commitment.UsageCommitmentRecommender(基于资源的 CUD)。

Azure — Advisor 成本类别

az advisor recommendation list \
  --category Cost \
  --query "[].{Resource: shortDescription.problem, Impact: impact, AnnualSavings: extendedProperties.annualSavingsAmount, Currency: extendedProperties.savingsCurrency}" \
  -o table

# 仅高影响
az advisor recommendation list --category Cost \
  --query "[?impact=='High'].{Id:id, Resource:resourceMetadata.resourceId, Savings:extendedProperties.annualSavingsAmount}" -o json

extendedProperties 字段因推荐类型而异——请处理 null 值。

3. 成本与使用分析

AWS(记住每调用约 $0.01 的成本——不要循环):

aws ce get-cost-and-usage \
  --time-period Start=$START,End=$END \
  --granularity DAILY --metrics "UnblendedCost" \
  --group-by Type=DIMENSION,Key=SERVICE

GCP——详细的成本/使用数据来自 BigQuery 账单导出(没有用于获取细粒度成本行的 gcloud 命令)。启用账单 → BigQuery 导出,然后查询 gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>。

注意:截至 2026-01-21,导出架构已更改——CUD 折扣已从 credits 数组移至新的 consumption_model 字段,并增加了 price.list_price / price.effective_price_default 字段。请相应地更新 CUD/信用逻辑。

Azure——对于详细数据,优先使用 Cost Management 导出(或 Cost Details API);az consumption 位于微软的弃用路径上(仅保留作为快速查看的备选方案):

# 主要:安排/运行导出到存储(一次性只需 5 个必需参数)
az costmanagement export create \
  --name AdhocExport --type Usage \
  --scope "/subscriptions/SUB_ID" \
  --storage-account-id "/subscriptions/.../storageAccounts/ACCT" \
  --storage-container exports --timeframe MonthToDate

# 备选快速查看(已弃用的 API):
az consumption usage list --start-date $START --end-date $END \
  --query "[].{Resource:instanceName, Service:consumedService, Cost:pretaxCost}" -o table

对于无需存储的临时聚合,请通过 az rest 调用成本管理 Query REST API(没有 az costmanagement query 子命令)。

4. 资源调整与计算推荐

AWS — Compute Optimizer(需要注册;参见预检)。深度资源调整 + 闲置检测:

aws compute-optimizer get-ec2-instance-recommendations
aws compute-optimizer get-auto-scaling-group-recommendations
aws compute-optimizer get-ebs-volume-recommendations
aws compute-optimizer get-lambda-function-recommendations
aws compute-optimizer get-rds-database-recommendations
aws compute-optimizer get-idle-recommendations

Cost Explorer 也提供 EC2 资源调整(--service 是必需的,仅 "AmazonEC2" 有效):

aws ce get-rightsizing-recommendation --service "AmazonEC2"

GCP——机器类型推荐程序(注意 tonumber:GCP 将 cost.units 返回为字符串):

gcloud recommender recommendations list \
  --recommender=google.compute.instance.MachineTypeRecommender \
  --project=YOUR_PROJECT --location=us-central1-a --format=json \
  | jq '.[] | select((.primaryImpact.costProjection.cost.units|tonumber) < 0)'

Azure——Advisor 成本推荐已包含 VM 资源调整/未充分利用的资源(第 2 节)。

5. 承诺与折扣

AWS——Savings Plans 购买推荐。所有四个参数都是必需的:

aws ce get-savings-plans-purchase-recommendation \
  --savings-plans-type COMPUTE_SP \
  --term-in-years ONE_YEAR \
  --payment-option NO_UPFRONT \
  --lookback-period-in-days THIRTY_DAYS

(savings-plans-type:COMPUTE_SP|EC2_INSTANCE_SP|SAGEMAKER_SP;term-in-years:ONE_YEAR|THREE_YEARS;payment-option:NO_UPFRONT|PARTIAL_UPFRONT|ALL_UPFRONT;lookback-period-in-days:SEVEN_DAYS|THIRTY_DAYS|SIXTY_DAYS。)

GCP——通过基于支出的承诺推荐程序(第 2 节)提供承诺使用折扣。

Azure——预留/节省计划建议通过 Advisor(按订阅)提供;对于账单账户范围,请通过 az rest 使用消耗预留推荐 REST API:

az advisor recommendation list --category Cost \
  --query "[?contains(shortDescription.problem, 'reserved') || contains(shortDescription.problem, 'reservation')]"

6. 优先排序模板(适用于任何提供商)

总结时:

  1. 每月/每年预估节省总额。
  2. 快速成果桶(工作量非常低/低)或等效。
  3. 前 5-8 项:资源、当前状态、建议操作、节省金额、工作量/风险。
  4. 针对首要项目给出具体下一步命令。
提供商:GCP
潜在每月节省总额:$2,340

快速成果:
- 删除闲置 VM ... : $180/月(工作量非常低)
- 降级 n1-standard-8 → n2-standard-4 : $420/月

下一条命令:
gcloud recommender recommendations list --recommender=google.compute.instance.IdleResourceRecommender --project=... --location=us-central1-a

提供商特定快速参考

AWS

  • Cost Optimization Hub(us-east-1,已注册)用于广泛的聚合视图。
  • Compute Optimizer(已注册)用于深度资源调整 + 闲置。
  • Cost Explorer(aws ce)用于支出明细、资源调整、Savings Plans——注意每次调用的成本。

GCP

始终传递 --location。关键推荐程序:

  • MachineTypeRecommender(资源调整,区域性)
  • IdleResourceRecommender 用于 VM/磁盘/IP/镜像(区域性/地区性)
  • SpendBasedCommitmentRecommender(CUD,全局,限定账单账户)

Azure

  • Advisor 是成本推荐的主要来源。
  • 对于原始用量,使用成本管理导出(或 Cost Details API);az consumption 仅作为已弃用的备选方案。

完整审计流程(推荐)

  1. 认证;确认注册状态(Compute Optimizer, COH)。
  2. 拉取时间窗口内的高层级成本摘要。
  3. 拉取推荐(Hub / Recommender / Advisor),聚合所有页面。
  4. 筛选出节省超过阈值且工作量低的项。
  5. 如有需要,与原始用量交叉检查。
  6. 生成优先列表 + 3 个具体的下一步操作(只读;标记任何变更操作以待批准)。 7.(可选)对其他提供商重复上述步骤。

参考资料

AWS

GCP

Azure


可针对特定提供商或跨所有三家运行。保持原生。保持高效。

相关技能