You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取AWS实例过去一个月的运行成本?现有示例无法生效

修复AWS实例月度运行成本查询的PowerShell代码

原代码无法运行的核心问题在于没有正确处理Cost Explorer的返回结构,以及缺少必要的分组/过滤参数。以下是修正后的代码,以及问题说明:

原代码的主要问题

  • 未通过GroupBy参数指定按实例ID分组,导致返回结果中没有直接的ResourceId字段
  • 过滤条件仅限定了服务,未关联目标实例ID
  • 使用了错误的Metric(UsageQuantity是使用量,而非成本)
  • 硬编码的日期不符合"过去一个月"的需求

修正后的代码

# Step 1: 指定目标实例ID(已知ID可直接赋值,无需自动获取)
$targetInstanceId = "i-xxxxxxxxx" # 替换为你的实例ID
# 如需自动获取所有实例ID,保留下面两行:
# $instances = Get-Ec2Instance
# $targetInstanceId = $instances.Instances.InstanceId

# Step 2: 自动计算过去一个月的日期范围
$endDate = Get-Date -Format "yyyy-MM-dd"
$startDate = (Get-Date).AddMonths(-1).ToString("yyyy-MM-dd")

# Step 3: 构造Cost Explorer查询参数
$costParams = @{
    TimePeriod = @{
        Start = $startDate
        End = $endDate
    }
    Granularity = "MONTHLY" # 按月度汇总,可改为DAILY查看每日明细
    GroupBy = @(
        @{
            Type = "DIMENSION"
            Key = "INSTANCE_ID"
        }
    )
    Filter = @{
        And = @(
            @{
                Dimensions = @{
                    Key = "SERVICE"
                    Values = "Amazon Elastic Compute Cloud - Compute"
                }
            },
            @{
                Dimensions = @{
                    Key = "INSTANCE_ID"
                    Values = $targetInstanceId
                }
            }
        )
    }
    Metrics = "UnblendedCost" # 查询实际产生的未混合成本
}

# Step 4: 获取并解析成本数据
$costData = Get-CECostAndUsage @costParams

foreach ($group in $costData.ResultsByTime.Groups) {
    $instanceId = $group.Keys[0]
    $costAmount = $group.Metrics.UnblendedCost.Amount
    $formattedCost = "{0:C}" -f [double]$costAmount

    Write-Host "实例ID: $instanceId | 过去一个月运行成本: $formattedCost"
}

关键修正说明

  1. 日期自动计算:用Get-Date动态生成过去一个月的起止日期,无需手动修改
  2. 分组与过滤:通过GroupBy = INSTANCE_ID让结果按实例ID分组,同时在Filter中指定目标实例ID,确保只查询指定实例的数据
  3. Metric修正:使用UnblendedCost获取实际成本(而非使用量)
  4. 结果解析:遍历ResultsByTime.Groups数组,从Keys中提取实例ID,从Metrics中提取成本金额

内容的提问来源于stack exchange,提问作者Stuart Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 21:27:20