通过一台服务器采集所有阿里云账单费用数据
费用
视图预览
安装部署
- 说明:
示例 Linux 版本为:CentOS Linux release 7.8.2003 (Core)
通过一台服务器采集所有阿里云账单费用数据
前置条件
- 服务器 <安装 Datakit>
- 服务器 <安装 Func 携带版>
- 阿里云 RAM 访问控制账号授权
RAM 访问控制
- 登录 RAM 控制台 https://ram.console.aliyun.com/users
- 新建用户:人员管理 - 用户 - 创建用户
- 保存或下载 AccessKeyID 和 AccessKey Secret 的 CSV 文件 (配置文件会用到)
- 用户授权(账单权限)
配置实施
- 登录 Func,地址 http://ip:8088(默认 admin/admin)
- 输入标题/描述信息
- 编辑脚本
import sys, datetime
import time
import json
import urllib
import hmac
from hashlib import sha1
import base64
import random
import requests# 请求中所需要的公共参数(就是调用 API 都需要用到的参数)
D = {'BillingCycle':str(time.strftime("%Y-%m", time.gmtime())),'Action':'QuerySettleBill',# 'PageNum':'5','Format':'JSON','Version':'2017-12-14','AccessKeyId':'<AccessKeyId>','SignatureMethod':'HMAC-SHA1','MaxResults' : '300',# 'NextToken':"", #?'Timestamp':str(time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime())),'SignatureVersion':'1.0'# 'SignatureNonce':str_seed
}
#当前时间
now_time = str(time.strftime("%Y-%m-%d", time.gmtime()))#链接本地 Datakit
datakit = DFF.SRC('datakit')# 使用 python 中的 urllib 库来进行编码
def percentEncode(str):res = urllib.parse.quote(str.encode('utf8'), '')res = res.replace('+', '%20')res = res.replace('*', '%2A')res = res.replace('%7E', '~')return res#获取账单
@DFF.API('getBill')
def getBill():# 账单当前记录位置next_token = ""# 循环获取账单写入 DataKitfor i in range(10000):random.seed()# 唯一随机数,用于防止网络重放攻击。用户在不同请求间要使用不同的随机数值。D["SignatureNonce"] = str(random.random())D["NextToken"] = next_token# 由于签名要求唯一性,包括顺序,所以需要按照参数名称排序sortedD = sorted(D.items(),key=lambda x: x[0])canstring = ''for k,v in sortedD:canstring += '&' + percentEncode(k) + '=' + percentEncode(v)# 生成标准化请求字符串stringToSign = 'GET&%2F&' + percentEncode(canstring[1:])# access_key_secretaccess_key_secret = '<access_key_secret>'# 计算 HMAC 值h = hmac.new((access_key_secret + "&").encode('utf8'), stringToSign.encode('utf8'), sha1)# 计算签名值生成 signature 签名signature = base64.encodestring(h.digest()).strip()# 添加签名D['Signature'] = signature# 最终调用 APIurl = 'http://business.aliyuncs.com/?' + urllib.parse.urlencode(D)# 请求阿里云账单费用response = requests.get(url)billing_cycle = response.json()["Data"]["BillingCycle"]account_id = response.json()["Data"]["AccountID"]next_token = response.json()["Data"]["NextToken"]if next_token is not None:bill = response.json()["Data"]["Items"]["Item"]print(bill)# 写入当天账单到观测云for i in bill:print(i["UsageEndTime"])time = i["UsageEndTime"].split(" ")[0]print(time,now_time)if time == now_time:measurement = "aliyunSettleBill"tags = {"BillingCycle":billing_cycle,"AccountID":account_id}fields = {"ProductName":i["ProductName"],"SubOrderId":i["SubOrderId"],"BillAccountID":i["BillAccountID"],"DeductedByCashCoupons":i["DeductedByCashCoupons"],"PaymentTime":i["PaymentTime"],"PaymentAmount":i["PaymentAmount"],"DeductedByPrepaidCard":i["DeductedByPrepaidCard"],"InvoiceDiscount":i["InvoiceDiscount"],"UsageEndTime":i["UsageEndTime"],"Item":i["Item"],"SubscriptionType":i["SubscriptionType"],"PretaxGrossAmount":i["PretaxGrossAmount"],"Currency":i["Currency"],"CommodityCode":i["CommodityCode"],"UsageStartTime":i["UsageStartTime"],"AdjustAmount":i["AdjustAmount"],"Status":i["Status"],"DeductedByCoupons":i["DeductedByCoupons"],"RoundDownDiscount":i["RoundDownDiscount"],"ProductDetail":i["ProductDetail"],"ProductCode":i["ProductCode"],"ProductType":i["ProductType"],"OutstandingAmount":i["OutstandingAmount"],"BizType":i["BizType"], "PipCode":i["PipCode"],"PretaxAmount":i["PretaxAmount"],"OwnerID":i["OwnerID"],"BillAccountName":i["BillAccountName"],"RecordID":i["RecordID"],"CashAmount":i["CashAmount"],}try:status_code, result = datakit.write_logging(measurement=measurement, tags=tags, fields=fields)print(status_code,result)except:print("插入失败!")else:breakelse:continuebreakelse:break
- **保存 **配置并 发布
- 添加自动触发任务,管理 - 自动触发配置 - 新建任务
由于账单为每日账单,所以采集频率设置每天一次就可以了
- 日志预览
链路分析
暂无
场景视图
暂无
查看器
异常检测
暂无
最佳实践
暂无
故障排查
- Func 日志路径:/usr/local/dataflux-func/data/logs/dataflux-func.log
- 代码调试,选择主函数,直接运行 (可以看到脚本输出)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/942355.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!相关文章
2025 油烟机厂家最新推荐榜:五大实力厂商技术与服务口碑评测权威发布滑轨/易清洁/免清洗/智能油烟机厂家推荐
引言
油烟机作为守护厨房健康的核心电器,其性能直接决定烹饪体验与家居环境质量。但当前市场乱象突出:2025 年省级抽查显示多批次产品存在噪声超标、吸力不足等问题,部分产品清洁困难、设计反人类,让消费者陷入选择…
VUE---打印功能
在开发系统的时候,经常会需要将系统里面的报表进行打印,主要是要实现局部打印的功能:
插件:npm install vue-print-nb --save具体示例代码:<template><div><button v-print="#printArea"…
编程语言变量的引用共享问题
编程语言变量的引用共享问题//基本数据类型赋值是开辟新的内存空间。
//修改后面的变量的值不会修改原始变量的值。
var a =1
var b=a
b=3
console.log(b) // 3
//引用数据类型赋值时,后面的变量的值修改会改变原始变…
分析一下url的格式和windows与Linux共享文件的格式
分析一下url的格式和windows与Linux共享文件的格式
讲解这些URL和连接格式:
## 1. MSYS2 网址格式分析
`https://www.msys2.org/` 分解:
```https:// - 协议类型(加密的HTTP)www.msys2.org - 完整域名 …
高效管理超多传感器?SHxxx 集线器实现精准切换与零混淆 告别通道混乱,内置校验
高效管理超多传感器?SHxxx 集线器实现精准切换与零混淆 告别通道混乱,内置校验SHxxx 传感器集线器是一款专为高密度传感场景设计的智能切换设备。它支持将最多200路传感器轮转切换至单一接口,彻底解决测试现场因传感…
[ACTF2020 新生赛]Include 1 文件包含
题目界面查看源码以及点击链接从题目include推断是文件包含题目
需要使用php伪协议或者hackbar中模板
?file=php://filter/read=convet.base64-encode/resource=flag.php将flag.php代码编码成base64编码,然后输出使用…
鸿蒙NEXT网络管理:从“能用”到“智能”的架构演进 - 指南
pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …
PostgreSQL可观测性完整方案
PostgreSQL可观测性完整方案软件简述
PostgreSQL 是一种开源的关系型数据库管理系统 (RDBMS),它提供了许多可观测性选项,以确保数据库的稳定性和可靠性。
Observability
可观测性是指对数据库状态和操作进行监控和记…
2025 年通风天窗源头厂家最新推荐:品牌定制能力、售后体系及综合实力深度测评榜单
引言
在工业与民用建筑通风系统中,通风天窗的品质直接决定室内空气质量、能耗成本与安全保障,然而当前市场厂家良莠不齐,部分产品存在防水性能差、通风效率低等问题,且定制服务缺失、售后响应滞后,给企业与建筑方…
2025年唐卡装饰权威深度解析:家装行业新格局与品质承诺
引言
本文聚焦“核心业务与服务优势”这一核心维度,结合公开资料与第三方调研,为正在筛选装修服务商的消费者提供一份可验证、可落地的客观参考。
背景与概况
重庆唐卡装饰2009年成立,历时16年得到100万精英用户的口…
钡铼技术全新APC系列工业边缘可视化平板电脑即将重磅发布!
在智能制造与能源系统快速发展的今天,“边缘可视化” 正成为连接人、设备与数据的关键一环。
如何让操作界面在强光下依然清晰可见?
如何在高温、低温、震动、潮湿等极端环境下依旧稳定运行?
如何让数据在“边缘”完…
2025年大连甘井子区优质养老机构推荐:从社区到自然的暖心之选
随着人口老龄化进程加快,选择合适的养老机构成为许多家庭关心的话题。在大连甘井子区,一批设施完善、服务专业的养老机构,为长者们构筑了温馨的晚年家园。以下结合机构服务特色、环境配套及社会评价,整理出五家优质…
2025 MIM 加工优质厂家推荐榜:精密零部件/金属件/金属零件/金属/金属成型MIM 加工厂家,聚焦精密制造的实力派之选
在金属注射成型(MIM)领域,工艺精度、技术储备与服务能力共同决定了企业的核心竞争力。为助力行业伙伴精准选型,结合技术实力、应用案例与市场口碑,筛选出 5 家各具优势的 MIM 加工厂家,供消费电子、汽车、医疗等…
2025年AI营销公司推荐:广东AI营销公司/广州AI营销公司如何以模块化服务破解企业增长困局
2025 年 AI 营销赛道持续升温,企业对精准获客、高效转化的需求日益迫切,但传统解决方案门槛高、适配性不足的问题凸显。深圳市复禹信息科技有限公司作为深圳本土 AI 营销公司的代表,其推出的模块化智能营销服务近期…
2025年越南货架厂家推荐榜:立体/高位/仓储/托盘/重型/流利式/贯通式/穿梭车/模具/货架厂家,多维度解析行业实力派
在物流仓储与零售业高速发展的当下,货架作为空间利用与效率提升的核心装备,其品质与适配性直接影响企业运营成本。经过市场口碑调研、技术实力评估及场景适配性分析,以下为大家推荐五家在货架制造领域表现突出的企业…
2025年主轴维修厂家企业推荐: 电/高速/精密/磨床/进口磨床/加工中心电/数控机床/高速电主轴维修厂家,服务商助力制造企业降本增效
在精密制造领域,主轴作为机床的 "心脏",其性能直接决定加工精度与生产效率。当主轴出现故障时,选择专业维修服务商成为企业减少停机损失的关键。经过市场调研与行业口碑梳理,以下五家主轴维修企业凭借技…
2025年磨床电主轴先升级推荐榜:国产/进口/内圆/外圆/无心/平面/来图定制磨床电主轴厂家,聚焦精密制造核心
高端制造升级的浪潮中,磨床主轴作为精密加工的 "核心引擎",其性能直接决定了加工精度与生产效率。经过对技术实力、场景适配性及行业口碑的综合考量,以下为大家盘点五家在磨床主轴领域表现突出的企业。德…
在写left join的时候 是大表在左侧 还是小表在左侧(二)
在 SQL 中使用 LEFT JOIN 时,左表(左侧的表)的选择不仅影响结果集的完整性,还直接决定了查询性能。核心原则是:在满足业务逻辑的前提下,优先让小表作为左表,大表作为右表。但需注意,这一结论的前提是 “业务逻…
在写left join的时候 是大表在左侧 还是小表在左侧(一)
好——这个问题既是面试高频点,也是写生产 SQL 时必须搞清楚的性能细节。下面把概念 + 引擎实现 + 左连接(LEFT JOIN)语义影响 + 实际优化建议与排查清单都讲清楚,你能直接在面试里条理化回答,也能在工程中落地排…
使用POI-TL组件按模板导出word文档
使用POI-TL组件按模板导出word文档效果展示:以及更多的效果,可以访问官方文档示例 > https://deepoove.com/poi-tl/示例
依赖引入:<dependencies><!-- poi-tl 核心依赖 --><dependency><gr…