接入教程
1. 在AWS控制台启用成本浏览器功能
2. 通过IAM配置API访问权限和凭证
3. 调用GetCostAndUsage接口查询数据
4. 使用筛选条件细化查询范围
5. 解析返回的JSON数据进行分析
6. 定期调用API生成成本报告
使用Python查询月度成本
python
import boto3
from datetime import datetime, timedelta
client = boto3.client('ce',
aws_access_key_id='YOUR_API_KEY',
aws_secret_access_key='YOUR_API_KEY',
region_name='us-east-1'
)
end_date = datetime.utcnow().date()
start_date = end_date - timedelta(days=30)
response = client.get_cost_and_usage(
TimePeriod={
'Start': start_date.isoformat(),
'End': end_date.isoformat()
},
Granularity='MONTHLY',
Metrics=['UnblendedCost']
)
print(response)
使用PHP获取每日用量数据
php
<?php
require 'vendor/autoload.php';
use Aws\CostExplorer\CostExplorerClient;
use Aws\Exception\AwsException;
$client = new CostExplorerClient([
'version' => 'latest',
'region' => 'us-east-1',
'credentials' => [
'key' => 'YOUR_API_KEY',
'secret' => 'YOUR_API_KEY'
]
]);
$end = date('Y-m-d');
$start = date('Y-m-d', strtotime('-7 days'));
try {
$result = $client->getCostAndUsage([
'TimePeriod' => [
'Start' => $start,
'End' => $end
],
'Granularity' => 'DAILY',
'Metrics' => ['UsageQuantity']
]);
print_r($result);
} catch (AwsException $e) {
echo $e->getMessage();
}
?>
使用JavaScript查询服务成本
javascript
const AWS = require('aws-sdk');
const ce = new AWS.CostExplorer({
region: 'us-east-1',
accessKeyId: 'YOUR_API_KEY',
secretAccessKey: 'YOUR_API_KEY'
});
const params = {
TimePeriod: {
Start: '2024-01-01',
End: '2024-01-31'
},
Granularity: 'MONTHLY',
Metrics: ['BlendedCost'],
GroupBy: [
{
Type: 'DIMENSION',
Key: 'SERVICE'
}
]
};
ce.getCostAndUsage(params, (err, data) => {
if (err) console.log(err);
else console.log(data);
});
常见问题
API调用是否需要特殊权限?
是的,调用AWS成本浏览器API需要IAM用户具有相应的权限策略,例如'ce:GetCostAndUsage'权限。建议在AWS控制台中配置最小权限原则。
数据更新频率如何?
成本和使用数据通常会在AWS处理后24-48小时内可用。请注意,最终数据可能需要更长时间才能完全聚合。
可以查询多久之前的历史数据?
AWS成本浏览器服务通常提供过去12个月的数据。更早的数据可能需要联系AWS支持或使用其他数据导出服务。
Aitishiku.com