Communitygithub.com

dautovri/cloud-cost-agent

原生優先的 FinOps 代理技能,支援 AWS、GCP 與 Azure — 在 Claude Code、Cursor、Gemini 及任何 SKILL.md 代理中挖掘雲端節省成本機會。

cloud-cost-agent 是什麼?

Cloud Cost Agent 是一個統一的代理技能,專為跨三大頂級雲端供應商(AWS、GCP 與 Azure)進行原生雲端成本優化而設計。它利用供應商官方 CLI 和推薦引擎(如 AWS Cost Optimization Hub、Compute Optimizer、GCP Recommender 及 Azure Advisor)來提供直接、可操作的節省建議。該技能強制執行唯讀優先策略,確保在執行任何變更命令前先得到使用者明確同意,並妥善處理分頁、API 成本和 shell 逸出等問題。Cloud Cost Agent 支援多種平台(Claude Code、Cursor、Gemini 等),並提供完整的稽核流程:從身分驗證、成本摘要,到彙總所有頁面以取得正確總計的建議,最後以優先順序排列並提出具體的下一步行動。此技能特別適合 FinOps 從業人員、雲端工程師和 DevOps 團隊,幫助他們快速找出高影響力的節省項目(如閒置資源刪除、調整大小或承諾使用折扣),且不依賴任何第三方工具。

相容平台✓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 呼叫進行迴圈;將結果快取在 session 中,並將每次稽核的呼叫次數維持在少數幾次。
  • 優先順序:最高預估節省 → 最低工作量。
  • 偏好快速勝利(刪除閒置資源、縮小規模、在清楚時啟用承諾使用)。

可攜式日期輔助工具

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      # opt in
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/credit 邏輯。

Azure — 偏好 Cost Management 匯出(或 Cost Details API)以取得詳細資料;az consumption 處於 Microsoft 的淘汰路徑上(僅保留作為快速查看的備用方案):

# 主要方式:排程/執行一次匯出到儲存體(一次性執行僅需 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 呼叫 Cost Management 查詢 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 使用 Consumption Reservation Recommendations 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 Management 匯出(或 Cost Details API)用於原始使用量;az consumption 僅作為已淘汰的備用方案。

完整稽核流程(建議)

  1. 進行身分驗證;確認註冊狀態(Compute Optimizer、COH)。
  2. 拉取指定時間範圍內的高層級成本摘要。
  3. 拉取建議(Hub / Recommender / Advisor),彙總所有頁面。
  4. 篩選出節省金額超過門檻且工作量較低的項目。
  5. 如有需要,與原始使用量進行交叉比對。
  6. 產生優先排序清單 + 3 項具體的下一步動作(唯讀;任何變更都需標記以取得核准)。 7.(選擇性)對其他供應商重複上述步驟。

參考資料

AWS

GCP

Azure


使用特定供應商或在所有三個供應商上執行。保持原生。保持高效。

相關技能