Skip to content

Jpridee/aliyun-bill-exporter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aliyun Bill Exporter

通过阿里云 BssOpenApi 自动查询实例账单并导出为 CSV 文件,格式与阿里云控制台手动导出一致。

功能特性

  • 调用 DescribeInstanceBill API,按计费项维度查询实例级别账单
  • 支持 DAILY(按天)和 MONTHLY(按月)两种查询粒度
  • DAILY 模式自动遍历月份内每一天,无需逐日手动查询
  • 自动分页获取全部数据(每页最多 300 条)
  • 输出 39 列 CSV 文件,与阿里云控制台导出格式完全一致
  • CSV 文件采用 UTF-8 with BOM 编码,Excel 可直接打开无乱码
  • 支持按产品、订阅类型、实例 ID 等多维度过滤

前置要求

  • Go 1.18+
  • 阿里云账户及 AccessKey(需具有 BssOpenApi 读取权限)

建议为账单查询创建独立的 RAM 用户,仅授予 AliyunBSSReadOnlyAccess 权限。

快速开始

安装

git clone https://github.com/Jpridee/aliyun-bill-exporter.git
cd aliyun-bill-exporter
go build -o aliyun-bill main.go

配置环境变量

Linux / macOS:

export ALIBABA_CLOUD_ACCESS_KEY_ID=<your-access-key-id>
export ALIBABA_CLOUD_ACCESS_KEY_SECRET=<your-access-key-secret>

Windows PowerShell:

$env:ALIBABA_CLOUD_ACCESS_KEY_ID="<your-access-key-id>"
$env:ALIBABA_CLOUD_ACCESS_KEY_SECRET="<your-access-key-secret>"

使用示例

# 导出当前月份的 DAILY 账单(默认)
./aliyun-bill

# 导出指定月份的账单
./aliyun-bill -cycle 2026-03

# 仅导出 ECS 产品的按量付费账单
./aliyun-bill -cycle 2026-03 -product ecs -sub-type PayAsYouGo

# 导出指定日期的账单
./aliyun-bill -cycle 2026-03 -billing-date 2026-03-15

# 按月粒度导出
./aliyun-bill -cycle 2026-03 -granularity MONTHLY

# 查询指定实例的账单
./aliyun-bill -instance i-xxx -cycle 2026-03

# 指定输出文件名
./aliyun-bill -cycle 2026-03 -output march_bill.csv

命令行参数

参数 默认值 说明
-cycle 当前月份(YYYY-MM 账期
-product 空(全部产品) 产品代码,如 ecsrdsoss
-sub-type 空(全部) 订阅类型:Subscription(包年包月)/ PayAsYouGo(按量付费)
-granularity DAILY 查询粒度:MONTHLY / DAILY
-billing-date 指定账单日期(YYYY-MM-DD),仅 DAILY 粒度时有效
-instance 实例 ID,用于查询单个实例的账单
-output bill_YYYYMMDDHHmmss.csv 输出 CSV 文件路径
-billing-item true 是否按计费项维度查询

输出格式

  • 编码:UTF-8 with BOM(EF BB BF),可直接用 Excel 打开无乱码
  • 列数:39 列,与阿里云控制台"按计费项"导出格式一致
  • 默认文件名bill_YYYYMMDDHHmmss.csv

CSV 列说明

包含以下维度信息:账号信息、账期日期、费用类型、产品/商品信息、实例信息(ID/名称/配置/规格/IP)、地域可用区、计费项、用量、价格(目录价/优惠/应付/代金券抵扣等)。

注意事项

  • 阿里云账单数据存在延迟:一般为 24 小时,部分产品可达 48 小时
  • 当月账单数据仅供参考,最终以出账后数据为准
  • API 存在频率限制(QPS),大量查询时注意控制请求频率,避免被限流
  • DAILY 粒度查询当月时,会自动截止到当天日期

技术实现

  • 基于阿里云 BssOpenApi DescribeInstanceBill 接口
  • 优惠后金额计算方式:PretaxGrossAmount(目录总价) - InvoiceDiscount(优惠金额)
  • 使用 Token 分页机制(NextToken)自动获取全部数据
  • SDK 版本:alibabacloud-go/bssopenapi-20171214/v2 v2.0.6

License

MIT

About

通过阿里云 BssOpenApi SDK 实现的账单导出工具 / 程序 | Alibaba Cloud Bill Exporter via BssOpenApi SDK

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages