Files
aiops/backend/cloud/billing.go
T
Logan.Li 132fe9ba97 feat: 补全多云资产与账单同步
- 接入 AWS、华为云和 Azure 资产及账单 API

- 按原始币种隔离统计并修正账号服务器数

- 修复侧栏菜单展开后的滚动行为
2026-07-29 06:15:00 +08:00

38 lines
1.2 KiB
Go

package cloud
// CloudBillingRecord 云账单同步记录(跨平台统一结构) // Logan.Li
type CloudBillingRecord struct {
BillingDate string `json:"billing_date"`
Provider string `json:"provider"`
Cost float64 `json:"cost"`
Currency string `json:"currency"`
Service string `json:"service"`
Region string `json:"region"`
Description string `json:"description"`
}
// BillingFetcher 云账单拉取接口
type BillingFetcher interface {
FetchDailyBill(billingDate string) ([]CloudBillingRecord, error)
}
// SupportedBillingProviders 已接入账单 API 的云厂商列表。 // Logan.Li
var SupportedBillingProviders = []string{"aliyun", "tencent", "aws", "huawei", "azure"}
// NewBillingFetcher 根据云厂商创建账单拉取器
func NewBillingFetcher(provider, accessKey, secretKey string) BillingFetcher {
switch provider {
case "aliyun":
return NewAliyunProvider(accessKey, secretKey)
case "tencent":
return NewTencentProvider(accessKey, secretKey)
case "aws":
return NewAWSProvider(accessKey, secretKey)
case "huawei":
return NewHuaweiProvider(accessKey, secretKey)
case "azure":
return NewAzureProvider(accessKey, secretKey)
}
return nil
}