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

本文涉及的产品
资源编排,不限时长
无影云电脑企业版,4核8GB 120小时 1个月
无影云电脑个人版,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,你可以根据自己的情况进行代码微调。


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

相关文章
|
1月前
|
自然语言处理 安全 API
API First:模型驱动的阿里云API保障体系
本文介绍了阿里云在API设计和管理方面的最佳实践。首先,通过API First和模型驱动的方式确保API的安全、稳定和效率。其次,分享了阿里云内部如何使用CloudSpec IDL语言及配套工具保障API质量,并实现自动化生成多语言SDK等工具。接着,描述了API从设计到上线的完整生命周期,包括规范校验、企业级能力接入、测试和发布等环节。最后,展望了未来,强调了持续提升API质量和开源CloudSpec IDL的重要性,以促进社区共建更好的API生态。
|
8天前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 1 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
阿里云微服务引擎 MSE 及 云原生 API 网关 2025 年 1 月产品动态
|
1月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 12 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
150 12
|
2月前
|
存储 人工智能 API
(Elasticsearch)使用阿里云 infererence API 及 semantic text 进行向量搜索
本文展示了如何使用阿里云 infererence API 及 semantic text 进行向量搜索。
119 8
|
2月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 11 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
3月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 10 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
3月前
|
弹性计算 负载均衡 监控
阿里云slb的slb-api介绍
【10月更文挑战第17天】
201 1
|
5天前
|
API PHP 开发者
速卖通商品详情接口(速卖通API系列)
速卖通(AliExpress)是阿里巴巴旗下的跨境电商平台,提供丰富的商品数据。通过速卖通开放平台(AliExpress Open API),开发者可获取商品详情、订单管理等数据。主要功能包括商品搜索、商品详情、订单管理和数据报告。商品详情接口aliexpress.affiliate.productdetail.get用于获取商品标题、价格、图片等详细信息。开发者需注册账号并创建应用以获取App Key和App Secret,使用PHP等语言调用API。该接口支持多种请求参数和返回字段,方便集成到各类电商应用中。
|
11天前
|
JSON API 数据格式
微店商品列表接口(微店 API 系列)
微店商品列表接口是微店API系列的一部分,帮助开发者获取店铺中的商品信息。首先需注册微店开发者账号并完成实名认证,选择合适的开发工具如PyCharm或VS Code,并确保熟悉HTTP协议和JSON格式。该接口支持GET/POST请求,主要参数包括店铺ID、页码、每页数量和商品状态等。响应数据为JSON格式,包含商品详细信息及状态码。Python示例代码展示了如何调用此接口。应用场景包括商品管理系统集成、数据分析、多平台数据同步及商品展示推广。
|
3天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
24 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡

热门文章

最新文章