如何使用阿里云 Billing API 实现资源包余量报警

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
简介: 使用Billing API获取资源包余量信息,自主实现资源包余量报警

场景

在使用阿里云的一些API调用类的服务时,如果用按量付费往往价格会较高,为了节省成本用户往往会选择购买对应的 API 资源包,比如:NLP的模型调用资源包、函数调用资源包、共享流量资源包等等。


image.png

资源包的使用情况在 个人中心>资源实例管理>资源包 中我们可以查看,默认的阿里云会对用户购买的资源包余量进行阈值报警,报警信息将通过邮件和手机短信的方式发送到用户的客户端。这种方式已经很齐全了,但是在当今手机各种短信非常多的情况下,用户可能会漏掉一些短信的查看。因此我的想法是能不能把这种报警单独发到某个企业微信群,这样的话在工作时查看企业微信的实时性比查看手机短信的要高,就可以及时进行资源包补充。

方案

由于阿里云的API接口中并没有直接查余额的接口,只有资源包用量查询,因此我的方法就是通过查询资源包前一天的使用情况来算出当前余量,再进行阈值判断来发报警。

未命名文件.jpg

此处用到的接口为:QueryDPUtilizationDetail,大家可以通过阿里云官方的调试接口进行调试

此处以NLP调用为例,主要代码如下:

<?useAlibabaCloud\SDK\BssOpenApi\V20171214\BssOpenApi;
use\Exception;
useAlibabaCloud\Tea\Exception\TeaError;
useAlibabaCloud\Tea\Utils\Utils;
useDarabonba\OpenApi\Models\Config;
useAlibabaCloud\SDK\BssOpenApi\V20171214\Models\QueryDPUtilizationDetailRequest;
useAlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
classCheckResourceBag{
/*** 获取NLP调用的剩余数量*/privatefunctiongetNlpRestCount($warningNlpCount){
$accessKeyId="your key";
$accessKeySecret="your secret";
$client=$this->createClient($accessKeyId,$accessKeySecret);
$startTime=date("Y-m-d 00:00:00",strtotime("-1 day"));
$queryDPUtilizationDetailRequest=newQueryDPUtilizationDetailRequest([
"startTime"=>$startTime,
"endTime"=>date('Y-m-d H:i:s'),
"includeShare"=>"true",
"prodCode"=>"nlp"        ]);
$runtime=newRuntimeOptions([]);
try {
// 复制代码运行请自行打印 API 的返回值$resultList=$client->queryDPUtilizationDetailWithOptions($queryDPUtilizationDetailRequest, $runtime);
$maxCount=0;//原始数量$totalDeduct=0;//总扣除数量foreach ($resultList->body->data->detailList->detailListas$curItem) {
if ($curItem->deductedCommodityCode!="nlp_automl_post") {
continue;
                }
if ($curItem->deductFactorTotal>$maxCount) {
$maxCount=$curItem->deductFactorTotal;
                }
$totalDeduct+=$curItem->deductQuantity;
            }
$restCount=$maxCount-$totalDeduct;
if ($restCount<$warningNlpCount) {
$messageBody="NLP自学习平台模型调用资源包剩余 $restCount条, 数量已不足 $warningNlpCount条,请尽快购买资源包。";
#发送企业微信代码,此处省略,可参考企业微信的API#用户也可以发送其他类型的消息,比如:钉钉。sendQiyeWeixinMsg($messageBody);
            }
        }
catch (\Exception$error) {
echo$error->getMessage();
        }
    }
}

需要注意的是,上面的API获取资源包消费数据时,默认取20条,最大值为300,你可以根据自己的情况进行代码微调。


最后再为这段代码设置一个定时任务即可,可以每天一次,也可以每小时一次,可根据自身业务进行设置。

相关文章
|
2月前
|
API 微服务
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态。
177 22
|
3月前
|
人工智能 运维 监控
阿里云 API 聚合实战:破解接口碎片化难题,3 类场景方案让业务响应提速 60%
API聚合破解接口碎片化困局,助力开发者降本增效。通过统一中间层整合微服务、第三方接口与AI模型,实现调用次数减少60%、响应提速70%。阿里云实测:APISIX+函数计算+ARMS监控组合,支撑百万级并发,故障定位效率提升90%。
278 0
|
3月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 API 网关 2025 年 9 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要。
466 142
|
3月前
|
人工智能 自然语言处理 安全
探索 API 的无限可能:阿里云的卓越引领
API是数字化时代的“万能钥匙”,阿里云凭借云控制API、API网关、OpenAPI Explorer等产品,构建全方位API生态,助力企业高效集成、安全管控与创新升级,推动电商、制造等行业智能化转型,引领未来科技浪潮。
172 10
|
3月前
|
人工智能 API 监控
告别多接口拼凑!阿里云 API 模型聚合实现技术能力协同跃迁
API聚合整合400+国内外AI模型,统一接口、屏蔽差异,降低开发与维护成本,提升效率与系统稳定性,助力开发者高效应对多API调用困境。
366 0
API 微服务
96 0
|
3月前
|
人工智能 API 开发者
图文教程:阿里云百炼API-KEY获取方法,亲测全流程
本文详细介绍了如何获取阿里云百炼API-KEY,包含完整流程与截图指引。需先开通百炼平台及大模型服务,再通过控制台创建并复制API-KEY。目前平台提供千万tokens免费额度,适合开发者快速上手使用。
2145 5
|
2月前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
2月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
2月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南

热门文章

最新文章