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

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
无影云电脑个人版,1个月黄金款+200核时
简介: 使用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,你可以根据自己的情况进行代码微调。


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

目录
打赏
0
0
2
0
124
分享
相关文章
开发者必备:阿里云百炼 API 调用图文教程
百炼是阿里云推出的大模型服务平台,集成了很多优质的 AI 模型,包括通义千问、DeepSeek 等。
开发者必备:阿里云百炼 API 调用图文教程
阿里云微服务引擎 MSE 及 API 网关 2025 年 5 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
阿里云微服务引擎 MSE 及 API 网关 2025 年 4 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
阿里云微服务引擎 MSE 及 API 网关 2025 年 4 月产品动态
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 3 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 2 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
579 10
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 2 月产品动态
|
4月前
|
零门槛,即刻拥有DeepSeek-R1满血版(阿里云百炼-API)
本文介绍如何使用阿里云百炼部署的满血版DeepSeek-R1进行API调用。通过获取API Key并使用简单代码,可快速体验DeepSeek的强大功能。具体步骤包括获取API Key、编写调用代码及查看返回结果。链接:[解决方案](https://blog.csdn.net/qwe1110/article/details/146020743) 和 [API文档](https://help.aliyun.com/zh/model-studio/developer-reference/deepseek)。
357 17
云原生应用实战:基于阿里云Serverless的API服务开发与部署
随着云计算的发展,Serverless架构日益流行。阿里云函数计算(Function Compute)作为Serverless服务,让开发者无需管理服务器即可运行代码,按需付费,简化开发运维流程。本文从零开始,介绍如何使用阿里云函数计算开发简单的API服务,并探讨其核心优势与最佳实践。通过Python示例,演示创建、部署及优化API的过程,涵盖环境准备、代码实现、性能优化和安全管理等内容,帮助读者快速上手Serverless开发。
淘宝商品评论API接口,json数据示例参考
淘宝开放平台提供了多种API接口来获取商品评论数据,其中taobao.item.reviews.get是一个常用的接口,用于获取指定商品的评论信息。以下是关于该接口的详细介绍和使用方法:
1688API最新指南:商品详情接口接入与应用
本指南介绍1688商品详情接口的接入与应用,该接口可获取商品标题、价格、规格、库存等详细信息,适用于电商平台开发、数据分析等场景。接口通过商品唯一标识查询,支持HTTP GET/POST请求,返回JSON格式数据,助力开发者高效利用1688海量商品资源。
京东API接口最新指南:店铺所有商品接口的接入与使用
本文介绍京东店铺商品数据接口的应用与功能。通过该接口,商家可自动化获取店铺内所有商品的详细信息,包括基本信息、销售数据及库存状态等,为营销策略制定提供数据支持。此接口采用HTTP请求(GET/POST),需携带店铺ID和授权令牌等参数,返回JSON格式数据,便于解析处理。这对于电商运营、数据分析及竞品研究具有重要价值。
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问